oracle - 如何确保所有事务都已提交或回滚?
问题描述
我有一个 PL/SQL 过程,例如:
procedure MyProcedure() is
begin
insert into table1 (field1, Field2) values ('value1','value2');
-- do some staff
insert into table2 (field1, Field2) values ('value1','value2');
-- do some staff
delete from table3 where id = xx;
-- do some staff
end;
一些程序指令可能会失败,我想在所有指令之间保持一些连贯性。这意味着如果一条指令失败,我希望所有其他指令都回滚。所以要么一切都被执行,要么什么都不执行。
请问有谁知道该怎么做?
先感谢您。
干杯,
解决方案
最后做一个COMMIT;
或ROLLBACK;
- 就是这样。当然,只有当您没有任何执行隐式 COMMIT 的命令时,您才会获得预期的行为,例如TRUNCATE TABLE ...
推荐阅读
- javascript - Squarespace 中的 Salesforce 在线潜在客户表单
- c# - 来自搜索或查询字符串的 Gridview 结果?
- mql4 - 如何为包含文件中的结构数组解决 MQL4/MQL5 中未解决的静态变量错误?
- docker - docker swarm 模式是同时启动副本还是等到每个副本完成?
- function - 允许不同类型的 Numba 函数签名
- formatting - 在 C17 中对齐/格式化输出值
- javascript - 将多个数组字段推送到单独的数组中
- php - PHP 循环卡在一个字符上
- swiftui - 共享工作表仅在 iPad 上崩溃
- python - KeyError:'CUDA_VISIBLE_DEVICES'