有关的execute immediate问题

penning 2005-01-10 11:09:14
我有PROCEDURE,执行的顺序为
insert...
v_sql:=....
execute immediate v_sql
insert...
commit;
exception...rollback
调试中发现execute immediate把以前的insert语句commit了,
在v_sql后面的insert发生错误只能回滚到execute immediate
有没有办法execute不commit的,谢谢
...全文
197 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaokeke2004 2005-01-14
  • 打赏
  • 举报
回复
楼上说的正确
baojianjun 2005-01-10
  • 打赏
  • 举报
回复
同意樓上地的
hrui99 2005-01-10
  • 打赏
  • 举报
回复
1,这是oracle系统本身系统设置的事务完整性规则,完成同样的回退功能可以对 “execute immediate v_sql” 操作进行删除或刷新操作。
2,改系统设置自动提交改手动显示提交,这样非常麻烦,不建议使用。
penning 2005-01-10
  • 打赏
  • 举报
回复
你这样我最后insert还得写一个exception
有没有execute不commit的?
luxuezhu 2005-01-10
  • 打赏
  • 举报
回复
insert...
v_sql:=....
execute immediate v_sql
exception...rollback
insert...
commit;
zmgowin 2005-01-10
  • 打赏
  • 举报
回复
动态sql不会自动提交,这里你要看看定义的sql是什么语句,ddl和truncate都会隐式提交,你放到哪里都是一样

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧