oracle中跨数据表空间调用存储过程事务控制
create or replace procedure admin.add()
as
begin
user.add();
commit;
end;
请问这种情况下user.add()的事务是在user用户下控制的,还是说和admin.add()一起控制的? 求详解,小弟感激不尽;
------解决方案--------------------如果 user.add(); 里面有commit等事物,当然是user里面了。
如果没有,就是外面的admin下的commit
------解决方案--------------------SQL> truncate table test;
表被截断。
SQL> create or replace procedure test1
2 as
3 begin
4 insert into test select 1,'test1' from dual;
5 commit;
6 end;
7 /
过程已创建。
SQL> create or replace procedure test2
2 as
3 begin
4 insert into test select 2,'test2' from dual;
5 test1;
6 insert into test select 3,'test3' from dual;
7 rollback;
8 end;
9 /
过程已创建。
SQL> select * from test;
未选定行
SQL> exec test2;
PL/SQL 过程已成功完成。
SQL> select * from test;
ID NAME
---------- --------------------------------------------------
2 test2
1 test1