Bonjour,
J'aimerai faire une boucle sur un delete. J'arrive à la faire marcher mais quand j'essaie d'intéger EXCEPTION cela ne marche plus...
Voici le code. Ce que je comprends pas c'est que si je fais le delete sans la partie EXCEPTION ça marche trés bien et quand je rajoute la partie EXCEPTION il me met l'erreur suivante
- Erreur(479,8): PLS-00103: Encountered the symbol "EXCEPTION" when expecting one of the following: begin case declare end exit for goto if loop mod null pragma raise return select update while with << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 select count(*) into nb_min_apurge FROM table WHERE id_d in (SELECT ID_D FROM tmp_id_d); nb_boucle := CEIL(nb_min_apurge/10); BEGIN For i in 1..nb_boucle LOOP DELETE FROM table WHERE (ID_D IN (SELECT ID_D FROM tmp_id_d)) and (rownum <= 10) ; nbPurge := SQL%ROWCOUNT; DBMS_OUTPUT.PUT_LINE (to_char (i)|| ' NB_LIGNES_PURGEES : ' || SQL%ROWCOUNT); EXCEPTION WHEN OTHERS THEN outMsgErr := SQLERRM; dbms_output.put_line( 'Code erreur : ' || to_char( SQLCODE )) ; dbms_output.put_line( 'libellé erreur : ' || to_char( SQLERRM )) ; ROLLBACK; LogErreur (NOM_TABLE_PURGE, outMsgErr); RETURN -1; End loop ; END;
Quelqu'un sait-il pourquoi j'ai cette erreur?
Merci d'avance.
Partager