在存储过程中调用存储过程后, rollback 不起作用
我在存储过程 sp1 中 insert 了几条记录, 接着调用了存储过程 sp2
然后 sp2 触发了异常, 我在 sp1 中拦截了异常, 调用 rollback 后退出
查询数据发现, 在 sp1 中 insert 的几条数据居然没有 rollback 成功
然后 sp2 触发了异常, 我在 sp1 中拦截了异常, 调用 rollback 后退出
查询数据发现, 在 sp1 中 insert 的几条数据居然没有 rollback 成功
insert into t1 values(x, y, z);
insert into t2 values(x, y, z);
begin
r := 0;
sp2(p1, p2);
r := 1;
exception
when others then null;
-- 尝试过在这里 rollback, 也没有成功
end;
if r != 1 then
rollback; -- 这里的 rollback 也没有执行
return;
end if;
...全文
相关推荐
Oracle存储过程及调用
Oracle存储过程语法 Oracle的存储过程语法如下: create procedure 存储过程名称(随便取) is 在这里可以定义常量、变量、游标、复杂数据类型这里可以定义变量、常量 begin 执行部分 end; (2)带参数的存储过程语法: create procedure 存储过程名称(随便取) (变量1 数据类型,变量2 数据类型,...,变量n 数据类型) is 在这里可以定义常量、变量、游标、复杂数据类型这里可以定义变量、常量 begin 执行部分 end; (3)带输入、输出参数的存储过程语法: create procedure
SpringBoot内部调用事务不起作用问题的解决方案
主要介绍了SpringBoot事务不起作用问题的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Sql Server 存储过程调用存储过程接收输出参数返回值
主要介绍了Sql Server 存储过程调用存储过程接收输出参数返回值,需要的朋友可以参考下
SQLServer存储过程调用WebService
SQL Server数据库中直接调用Web Service,不需要通过前台调用
pb调用存储过程
Pb 调用 DECLARE lpro_test PROCEDURE FOR proc_pslx; EXECUTE lpro_test ; 存储过程 CREATE PROCEDURE proc_pslx AS insert into demo(name) values('55566') GO


基础和管理
