oracle - 在 Oracle 中提交和回滚 DML 语句
问题描述
我正在尝试更新一个简单的语句。
我想要的是 :
- 如果是
true
then =>隐式 提交(使用任何子程序); - 如果是
false
=> 它应该隐式回滚(使用任何子程序)。
示例:
Update empcp set sal = sal +1000 where empid = 1;
如果它是回滚,则应该提交;true
解决方案
假设您正在使用 PL/SQL,您可以使用sql%rowcount
来查看最新的 DML 语句是否对任何行产生了影响。
if sql%rowcount > 0 then commit; else rollback; end if;
请记住,您必须将这段代码放在 DML 语句之后,以便sql%rowcount
产生相关的受影响行数。更多关于这里rownum
的伪列。
推荐阅读
- c# - Angular 5 中的 SSR 在部署时失败(使用 ASP.NET Core)
- ios - 如何在 UITableView 中使用拉刷新或任何其他委托方法快速加载更多数据?
- python - 关闭谷歌分析拉中的过滤器指标?
- javascript - 如何将 Google Maps Polygon 链接到另一个网站?
- node.js - 纱线缓存占用大量空间
- java - 项目反应堆:Flux.create() 之后的 subscribeOn() 并没有始终如一地使用调度程序线程
- laravel - 使用 Vue 使用 API 批量更新
- c# - 查找自变量更改以来的时间
- linux-kernel - 为什么在linux内核中声音驱动代码单独放在/sound而不是/driver
- java - 使用带有 swagger2 的 spring 部署我的应用程序时