OracleTransactionStatementsのドキュメントの引用 :
あなたの場合 、3つの文すべてを1つのトランザクションで囲むことができます:
COMMIT; ''This statement ends any existing transaction in the session.
SET TRANSACTION NAME 'my_crazy_update'; ''This statement begins a transaction
''and names it sal_update (optional).
UPDATE PS_EMAIL_ADDRESSES
SET PREF_EMAIL_FLAG='N'
WHERE EMPLID IN ('K0G004');
DELETE FROM PS_EMAIL_ADDRESSES
WHERE EMPLID='K0G004' AND E_ADDR_TYPE='BUSN';
INSERT INTO PS_EMAIL_ADDRESSES
VALUES('K0G004', 'BUSN', '[email protected]', 'Y');
COMMIT;
これは、要件を満たすための最良のアプローチです「一度にすべての文を実行する」 。