解决触发器检测到活动的独立的事务处理, 已经回退、表发生了变化, 触发器/函数不能读它
来源:互联网 发布:xcode写c语言 编辑:程序博客网 时间:2024/05/22 00:34
今天在写一个触发器的时候遇到一个问题,因为要用到新插入表中的数据进行查询,所以就遇到了一个问题:
解决办法是在DECLARE中加上一句话:PRAGMA AUTONOMOUS_TRANSACTION
但是这样又会遇到一个问题:
解决办法是在DML语句后面加上COMMIT
附上语句如下:
CREATE OR REPLACE TRIGGER "TR_CMS_MEMBERINFO"
AFTER INSERT OR UPDATE ON MEMBERNAME
FOR EACH ROW
DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
ROWCOUNT INTEGER;
CLTPARENTNO VARCHAR2(30);
BEGIN
SELECT COUNT(*) INTO ROWCOUNT FROM MEMBERNAME WHERE CLTNO = :NEW.CLTNO;
IF ROWCOUNT > 0 THEN
BEGIN
BEGIN
SELECT CLTNO INTO CLTPARENTNO FROM MEMBERNAME WHERE ID = :NEW.PARENT_ID;
EXCEPTION WHEN NO_DATA_FOUND THEN
CLTPARENTNO := NULL;
END;
UPDATE ZKNMEMBER SET PARENTNO = CLTPARENTNO,LASTUPDATETIME = SYSDATE WHERE CLTNO = :NEW.CLTNO;
COMMIT;
END;
ELSE
BEGIN
BEGIN
SELECT CLTNO INTO CLTPARENTNO FROM MEMBERNAME WHERE ID = :NEW.PARENT_ID;
EXCEPTION WHEN NO_DATA_FOUND THEN
CLTPARENTNO := NULL;
END;
INSERT INTO ZKNMEMBER (CLTNO,PARENTNO,FEEMETHOD,FEEDIR1,FEEDIR2,CREATETIME,LASTUPDATETIME) VALUES (:NEW.CLTNO,CLTPARENTNO,1,1,1,SYSDATE,SYSDATE);
COMMIT;
END;
END IF;
END;
另外附上一篇关于触发器详解的博文:http://blog.csdn.net/indexman/article/details/8023740/
- 解决触发器检测到活动的独立的事务处理, 已经回退、表发生了变化, 触发器/函数不能读它
- 执行触发器失败 :-6519:ORA-06519: 检测到活动的自治事务处理, 已经回退
- 表xxx发生了变化,触发器/函数不能读它
- oracle 临时表 解决 "表 *** 发生了变化,触发器/函数不能读"的问题
- oracle 临时表 解决 "表 *** 发生了变化,触发器/函数不能读"的问题
- oracle 临时表 解决 "表 *** 发生了变化,触发器/函数不能读"的问题
- oracle 触发器update 出现ORA-04091: 表 **发生了变化, 触发器/函数不能读它
- 关于触发器中表*发生了变化, 触发器/函数不能读它
- ORA-04091:表XX发生了变化,触发器/函数不能读它
- ora 04091:表XX发生了变化,触发器/函数不能读它(lin49940)
- ORA-04091:表XX发生了变化,触发器/函数不能读它
- 行级触发器对当前表操作,”ORA-04091: 表 XX 发生了变化, 触发器/函数不能读它“,解决方法
- 关于oracle中触发器触发时,报“表发生了变化,触发器或函数不能读它”错误
- Oracle触发器表发生了变化 触发器不能读它解决方法
- 写oracle行级触发器时,不能操作本表,报"表 *** 发生了变化,触发器/函数不能读"的错误的解决办法
- ORA-06519: 检测到活动的自治事务处理,已经回退
- 关于自治事务解决触发器导致"ORA-04091:触发器/函数不能读它"不可行的验证
- [学习笔记]ORA-04091 触发器/函数不能读它 的解决
- ShowWindow不起作用
- 数的计算
- Jquery使用Ajax构建方法返回值
- 进程间通信---------有名管道(named pipe/FIFO)
- Springmvc json 静态过滤
- 解决触发器检测到活动的独立的事务处理, 已经回退、表发生了变化, 触发器/函数不能读它
- Android-异步任务处理
- PHP数字前补0的自带函数sprintf 和number_format的用法
- Linux挂载windows 共享目录
- 开发摩托罗拉PDA MC3100 应用程序
- 黑马程序员——Java面向对象(一)之匿名对象、代码块、static关键字等
- Docker体验 Ubuntu下安装
- web工程调用hadoop集群1.2
- zTtree 技术笔记