我想建立一個存儲過程: 1.截斷表A 2.截斷表B表中列A 4.刀片 3.插入物(批次)(大量)的行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;
TRUNCATE執行一個隱含的承諾,並且不能在最回滾案例(閃回)。 –