Je veux que dans une seule transaction en vouloir supprimer et insérer mais si aucune ligne supprimer alors il devrait augmenter et erreur d'autre insertion (instruction Multiple insert et supprimer). Cette déclaration supprime les données mais ne les insère pas. Ce que j'ai essayé:Supprimer et insérer ne fonctionne pas dans un bloc dans Oracle
J'ai enlevé l'erreur de relance aussi, alors ce supprime mais pas l'insertion des dossiers,
Si j'écrire la déclaration de suppression en bas, alors il est insérait mais pas la suppression.
Si aucune ligne n'est supprimée, je dois déclencher une erreur pour un bloc. Sinon, il devrait fonctionner comme l'instruction donnée. c'est un exemple qu'il contient, 500 (autour) insérer ou supprimer un script dans une transaction. Transaction Transmet également une erreur si la transaction a échoué.
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;
Il serait très utile si vous montrez les commandes réelles que vous avez essayé – Aemyl
J'ai ajouté le code, Pouvez-vous s'il vous plaît vérifier – Ashu
Pourquoi attrapez-vous toutes les exceptions que vous lancez avec «when others» ?? Soit l'enlever complètement, soit au moins ajouter une «relance» à l'intérieur. –