加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle – 每次EXECUTE IMMEDIATE后都需要COMMIT吗?

发布时间:2020-12-12 16:26:13 所属栏目:百科 来源:网络整理
导读:我在一个oracle过程中有多个EXECUTE IMMEDIATE命令. EXECUTE IMMEDIATE 'DELETE FROM tbl1'; EXECUTE IMMEDIATE 'INSERT INTO tbl1...'; COMMIT;EXECUTE IMMEDIATE 'DELETE FROM tbl3'; EXECUTE IMMEDIATE 'INSERT INTO tbl3 ...'; COMMIT;EXECUTE IMMEDIATE
我在一个oracle过程中有多个EXECUTE IMMEDIATE命令.
EXECUTE IMMEDIATE 'DELETE  FROM tbl1'; 
EXECUTE IMMEDIATE 'INSERT INTO tbl1...'; 
COMMIT;
EXECUTE IMMEDIATE 'DELETE  FROM tbl3'; 
EXECUTE IMMEDIATE 'INSERT INTO tbl3 ...'; 
COMMIT;
EXECUTE IMMEDIATE 'DELETE  FROM tbl4'; 
EXECUTE IMMEDIATE 'INSERT INTO tbl4 ...';
COMMIT;

我是否需要所有这些COMMIT,或者只是在程序结束时?

在业务交易结束时,您真正被迫提交的唯一时间是:

>执行DDL时:DDL执行包含在一对隐式提交中.
>直接路径插入后:在提交插入之前无法读取表.

作为评论,正确的提交点是业务交易完成时.否则,您需要自己编写一些代码来检测和修复已经使数据库处于逻辑上不一致状态的部分完成和提交的事务(例如,INVOICE记录存在而没有任何INVOICE_DETAIL记录).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读