小编mpd*_*egn的帖子

存储过程:仅在成功时提交

我想构建一个存储过程:1.截断表A 2.截断表B 3.在表A中插入(大量)行4.在表B中插入(大量)行

存储过程应仅在步骤4之后提交语句,以便表不会被锁定并且不会遇到停机时间.如果发生错误(例如,在步骤4中),则必须回滚所有更改.我自己尝试写这篇文章,但是在每次发言之后都做了.

create or replace PROCEDURE upall as

BEGIN
  execute immediate 'truncate table MAIN.SET';
  insert into MAIN.SET select * from MAIN.SET_STAG;

  execute immediate 'truncate table MAIN.TYPE';
  insert into MAIN.TYPE select * from MAIN.TYPE_STAG;

  COMMIT; 
EXCEPTION WHEN OTHERS THEN
  ROLLBACK;
  RAISE; 
END;
Run Code Online (Sandbox Code Playgroud)

sql oracle stored-procedures commit

-1
推荐指数
1
解决办法
353
查看次数

标签 统计

commit ×1

oracle ×1

sql ×1

stored-procedures ×1