0
我希望在單個事務中想要刪除和插入,但如果沒有行刪除,那麼它應該引發和錯誤else插入(多重插入和刪除語句)。此語句刪除數據但不插入它。 我曾嘗試:刪除和插入不在oracle中的塊中工作
我已刪除了引發錯誤還那麼這是刪除,但不是插入的記錄,
如果我寫delete語句中向下則插入但不刪除。
如果沒有行被刪除,那麼我不得不提出一個塊的錯誤,否則它應該作爲給定的語句運行。這是它包含的示例,500(左右)在事務中插入或刪除腳本。
事務如果事務失敗,也應該拋出錯誤。
BEGIN
DBMS_OUTPUT.put_line (1);
BEGIN
DBMS_OUTPUT.put_line (1);
DELETE FROM CMC_BSDL_DETAILS
WHERE PDBC_PFX = 'CW6F';
COMMIT;
IF SQL%ROWCOUNT = 0
THEN
RAISE_APPLICATION_ERROR (-20101, 'No
record deleted');
END IF;
DELETE FROM CMC_BSTX_SUM_TEXT
WHERE PDBC_PFX = 'CW6F';
COMMIT;
IF SQL%ROWCOUNT = 0
THEN
RAISE_APPLICATION_ERROR (-20101, 'No
record deleted');
END IF;
INSERT INTO CMC_BSDL_DETAILS (PDBC_PFX,
BSDL_TYPE,
BSDL_NTWK_IND,
BSDL_EFF_DT,
BSDL_COPAY_AMT,
BSDL_DEDE_AMT,
BSDL_COIN_PCT,
BSDL_LTLT_AMT,
BSDL_TERM_DT,
BSDL_LT_TYPE,
BSDL_LT_PERIOD,
BSDL_LT_COUNTER,
BSDL_TIER,
BSDL_COV_IND,
BSDL_STOPLOSS_AMT,
BSDL_STOPLOSS_TYPE,
BSDL_BEG_MMDD,
BSDL_USER_LABEL1,
BSDL_USER_DATA1,
BSDL_USER_LABEL2,
BSDL_USER_DATA2,
BSDL_USER_LABEL3,
BSDL_USER_DATA3,
BSDL_USER_LABEL4,
BSDL_USER_DATA4,
BSDL_USER_LABEL5,
BSDL_USER_DATA5,
BSDL_USER_LABEL6,
BSDL_USER_DATA6,
BSDL_LOCK_TOKEN,
ATXR_SOURCE_ID,
SYS_LAST_UPD_DTM,
SYS_USUS_ID,
SYS_DBUSER_ID)
VALUES (
'CW6F',
'AAMB',
'A',
TO_TIMESTAMP ('01/01/1990
00:00:00',
'MM/DD/YYYY
HH24:MI:SS.FF'),
250.00,
0.00,
0.00,
0.00,
TO_TIMESTAMP ('12/31/9999
00:00:00',
'MM/DD/YYYY HH24:MI:SS.FF'),
' ',
' ',
' ',
0,
' ',
0.00,
'
',
0,
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
'
',
1,
TO_TIMESTAMP ('01/01/1753 00:00:00',
'MM/DD/YYYY
HH24:MI:SS.FF'),
TO_TIMESTAMP ('08/17/2017 16:15:10',
'MM/DD/YYYY
HH24:MI:SS.FF'),
'Translator',
'Translator');
COMMIT;
END;
EXCEPTION
WHEN OTHERS
THEN
ROLLBACK;
END;
如果您顯示您嘗試過的實際命令將會非常有幫助 – Aemyl
我已添加代碼,您能否檢查 – Ashu
爲什麼您捕捉到所有使用'when others'的拋出異常?或者完全刪除它,或者至少在其中添加一個'raise'。 –