9.4 视图的修改

视图的修改比较特殊,不能像表一样修改,更准确地说它没有修改选项,可以覆盖原有视图,但这不会影响视图的使用。因为视图本身不包含数据,所以覆盖原有视图时就不存在数据丢失的问题。

9.4.1 视图结构的修改

对视图进行修改的SQL脚本前面已经接触过,可参见9.1.3小节。从中可以看到OR REPLACE关键词,创建视图时带上它,如果存在同名视图,新视图就可以覆盖,也就等于完成了修改。下面将讲述在PL/SQL Developer中如何修改视图。

1)进入编辑页面。在PL/SQL Developer工具中左边【Objects】透视图的【Views】节点下找到想要编辑的视图。这里选择SIMPLE_PRODUCTINFO_VIEW视图。右击该视图,在弹出的快捷菜单中选择【Edit】项,进入编辑页面,如图9.15所示。

9.4 视图的修改 - 图1

图 9.15 视图编辑页面

2)对视图编辑并执行。在此窗口中对视图进行修改,例如增加QUANTITY字段,并把WITH CHECK OPTION项换成WITH READ ONLY,然后按F8键执行。

3)检验运行结果。我们改动了两处,首先检查第一处。右击该视图,在弹出的快捷菜单中选择【Describe】命令,出现图9.16所示的视图描述对话框。

9.4 视图的修改 - 图2

图 9.16 视图描述对话框

图9.16所示对话框中的第4行是修改视图增加的字段,这说明视图第一处修改成功。假如想在SQL*Plus中查看视图列信息,可以执行如下语句:


DESC SIMPLE_PRODUCTINFO_VIEW;


接下来检查第二处修改。右击该视图,在弹出的快捷菜单中选择【Properties】命令,出现图9.17所示的视图属性对话框。

9.4 视图的修改 - 图3

图 9.17 视图属性对话框

从图9.17中第6行可以看到READ_ONLY的值是Y,即该视图只读,这说明更改视图生效。下面简单说明一下属性窗口中各选项代表的意思。

❑OWNER:视图所有者,这里是SCOTT用户。

❑VIEW_NAME:视图名称。

❑TEXT_LENGTH:下面TEXT的长度。

❑TEXT:视图的查询语句。

❑EDITIONING_VIEW:是否版本视图,Oracle 11.2新特性,表结构经常变动,可利用版本视图消除其对使用者的影响。

❑READ_ONLY:是否只读。