1 前言 之前曾经编写过一篇关于多表可更新视图的文章,而事实上,ORACLE并不是要求所有的可更新视图都需要带触发器。
只要要求更新的字段属于同一张数据表(简称“更新表”,而且其它表与“更新表”是正常的关联关系,则此视图就可以更新。
但是一句复杂的SELECT编制的视图,出现错误时,可能的问题点是千奇百怪的,排除错误所需要耗费的时间通常较多。
复杂的问题,仍是由简单的技术来实现
2 技术要点 ORACLE系统表中,有一张视图,记录所有可以更新和不可以更新的视图(和数据表):User_Updateable_Columns
该视图字段如下:
Name Type Nullable Default Comments
----------- ------------ -------- ------- ---------------
OWNER VARCHAR2(30) Table owner
TABLE_NAME VARCHAR2(30) Table name
COLUMN_NAME VARCHAR2(30) Column name
UPDATABLE VARCHAR2(3) Y Is the column updatable?
INSERTABLE VARCHAR2(3) Y Is the column insertable?
DELETABLE VARCHAR2(3) Y Is the column deletable?
使用Select * From user_Updateable_Columns Where Table_name=Upper('YourViewname')
即可查询视图中哪些字段是允许更新的
3 实例参考 点击此处下载armok01134880.rar