我在触发器中使用commit是,出现: commit不能出现在触发器中错误提示?怎么办? 触发器不能commit;你查看相关书籍吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你调用insert或update语句后(执行完触发器)提交不就行了 触发器不能commit,的确是这样数据会自动提交! 如果非要在trigge里面做commit保证操作失败也在数据库中保留数据则请使用 pragmaPRAGMA AUTONOMOUS_TRANSACTION;你在这里之前插入源表然后在下面这块代码里面处理远程表失败就回退但回退不影响前面的源表的操作,难道有什么问题?如下,把匿名pl/sql块换做triggerSQL> select * from test1;A B---------- --------------------1 13 32 2SQL> SQL> CREATE or replace PROCEDURE insert_test 2 as3 PRAGMA AUTONOMOUS_TRANSACTION;4 BEGIN5 insert into test1 values(6,6);6 rollback;7 END;8 /过程已创建。SQL> begin2 insert into test1 values(5,5);3 insert_test;4 commit;5 end;6 /PL/SQL 过程已成功完成。SQL> select * from test1;A B---------- --------------------1 13 32 25 5SQL> 触发器中不用COMMIT,会自动提交 段和相片能导出到word或EXCEL oracle 中解析计算公式 请教一个类型转换的问题 能否用一条sql语句实现下列逻辑? 提问:一个SQL语句怎么写? PL/SQL问题 帮帮忙啊 在线等 如何删除Oracle日志记录 修改表中列的字段 谁能帮我解释一下user_constraints 和user_cons_columns表得作用及其联系? oracle中如何用sql给clob字段中插入值 在建立OBJECT时会出现pls-00103错误!在线等待! 数据记录太多怎么?
数据会自动提交!
保证操作失败也在数据库中保留数据
则请使用 pragmaPRAGMA AUTONOMOUS_TRANSACTION;
你在这里之前插入源表
然后在下面这块代码里面处理远程表
失败就回退
但回退不影响前面的源表的操作,难道有什么问题?如下,把匿名pl/sql块换做triggerSQL> select * from test1;A B
---------- --------------------
1 1
3 3
2 2SQL>
SQL> CREATE or replace PROCEDURE insert_test
2 as
3 PRAGMA AUTONOMOUS_TRANSACTION;
4 BEGIN
5 insert into test1 values(6,6);
6 rollback;
7 END;
8 /过程已创建。SQL> begin
2 insert into test1 values(5,5);
3 insert_test;
4 commit;
5 end;
6 /PL/SQL 过程已成功完成。SQL> select * from test1;A B
---------- --------------------
1 1
3 3
2 2
5 5SQL>