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.15 视图编辑页面
2)对视图编辑并执行。在此窗口中对视图进行修改,例如增加QUANTITY字段,并把WITH CHECK OPTION项换成WITH READ ONLY,然后按F8键执行。
3)检验运行结果。我们改动了两处,首先检查第一处。右击该视图,在弹出的快捷菜单中选择【Describe】命令,出现图9.16所示的视图描述对话框。
图 9.16 视图描述对话框
图9.16所示对话框中的第4行是修改视图增加的字段,这说明视图第一处修改成功。假如想在SQL*Plus中查看视图列信息,可以执行如下语句:
DESC SIMPLE_PRODUCTINFO_VIEW;
接下来检查第二处修改。右击该视图,在弹出的快捷菜单中选择【Properties】命令,出现图9.17所示的视图属性对话框。
图 9.17 视图属性对话框
从图9.17中第6行可以看到READ_ONLY的值是Y,即该视图只读,这说明更改视图生效。下面简单说明一下属性窗口中各选项代表的意思。
❑OWNER:视图所有者,这里是SCOTT用户。
❑VIEW_NAME:视图名称。
❑TEXT_LENGTH:下面TEXT的长度。
❑TEXT:视图的查询语句。
❑EDITIONING_VIEW:是否版本视图,Oracle 11.2新特性,表结构经常变动,可利用版本视图消除其对使用者的影响。
❑READ_ONLY:是否只读。