SQL Error ORA-04092 COMMIT 不能在触发器中

               

author:skate
time:2007/12/28

今天开发同事说,在调用触发器的时候,提示触发器错误,我过去看看确实提示错误,可我开发这个触发器的
时候,测试时没有问题,我于是回到座位上,好好看看问题在哪,我在pl/sql developer中测试运行的时候,提示
下面的错误:

SQL Error: ORA-04092: COMMIT 不能在触发器中
ORA-06512: 在 "MOVO_NEW.TRI_ARTICLE_TEMP_AIUR", line 96
ORA-04088: 触发器 'MOVO_NEW.TRI_ARTICLE_TEMP_AIUR' 执行过程中出错
04092. 00000 -  "cannot %s in a trigger"
*Cause:    A trigger attempted to commit or rollback.
*Action:   Rewrite the trigger so it does not commit or rollback.
SYSDATE   


在触发器中不能运行 ddl语句和commit,rollback语句

ddl语句:DDL语句用语定义和管理数据库中的对象,如Create,Alter,Drop,truncate等;DDL操作是隐性提交的!
         操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger

DML(Data Manipulation Language)数据操纵语言命令使用户能够查询数据库以及操作已有数据库中的数据。
如insert,delete,update,select等都是DML.

 

既然提示这个错误,那肯定是我的触发器里有问题,我看了看我的触发器,发现有一条:
execute immediate ' truncate table ARTICLE_TEMP_LASTROW';
忘记注释掉了,把它注释掉,问题解决。索性我干脆把它删除掉。 

           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值