Oracle触发器-变异表触发器不能访问本表

Posted Talk is cheap. Show me the cod

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle触发器-变异表触发器不能访问本表相关的知识,希望对你有一定的参考价值。


1
CREATE OR REPLACE TRIGGER trgregisterpregroup 2 AFTER UPDATE 3 ON tblregisterusers 4 FOR EACH ROW 5 …… 6 END trgregisterpregroup;

对表tblregisterusers创建了触发器,这属于行级的触发器,可以有:OLD和;NEW数据

但是,不能再对变异表进行select操作,不然就会报异常

原因:

当对一个表创建行级触发器时,有下列两条限制:

1.不能读取或修改任何触发语句的变异表;
2.不能读取或修改触发表的一个约束表的PRIMARY  KEY,UNIQUE 或FOREIGN KEY关键字的列, 但可以修改其他列

 

解决方法:

 但是这样又会遇到一个问题

解决办法,在末尾加上commit;

 

以上是关于Oracle触发器-变异表触发器不能访问本表的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 触发器 - 变异表的问题

AFTER UPDATE 触发器上的变异表错误

仅在 old = new 上进行选择时获取变异表 (ORA-04091)

PL/SQL 触发器得到一个变异表错误

在行触发器中取消插入值

Oracle表的更新触发器问题,更新本表的字段。