调用触发器过程出现提示,说我使用commit,但我并未使用 10

图一是触发器,编译未报错,注释其中调用存储过程的语句单独使用没有问题,图二是存储过程。编译也通过,单独调用也无问题。程序目的是当输入记录时候,触发器调用存储过程产生订单号... 图一是触发器,编译未报错,注释其中调用存储过程的语句单独使用没有问题,图二是存储过程。编译也通过,单独调用也无问题。程序目的是当输入记录时候,触发器调用存储过程产生订单号,但是当我插入语句时候,提示保存说我有commit语句,但是我并没有写任何commit语句,求大神帮忙看看
即使说触发器中不能使用DLL语句,但是我的create语句是在调用的存储过程,并不在触发器中,为什么会报错呢。该如何解决呢?
展开
 我来答
一个小咸鱼
2016-06-21 · TA获得超过369个赞
知道小有建树答主
回答量:415
采纳率:0%
帮助的人:282万
展开全部
就是因为存在ddl语句,因为ddl语句是隐式提交的,并且不可rollback
trigger中由于是影响dml语句的过程,其中不允许存在事务处理操作。
可以把存储过程写成自治事务就ok了,
例如:
PROCEDURE XXXX IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
XXXXXXX;
COMMIT;
END XXXX;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式