Bonjour à toutes et à tous.
Débutant en PL/SQL avec une doc assez mince et n'ayant pas d'accès au web si ce n'est limité (très limité), je voudrais vous poser une question.
Voilà à quoi ressemble mon code, pour l'instant :
DECLARE
var1 NUMBER;
SELECT 1 INTO var1 FROM table1 WHERE champ1='toto';
var2 table2.champ2%TYPE;
SELECT champ2 INTO var2 FROM table2;
BEGIN
IF var1 =1 THEN
UPDATE table3 blablabla;
COMMIT;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO table3 blablabla2
COMMIT;
END;
Mon problème vient de l'exception NO_DATA_FOUND. Bon, l'explication du code est la suivante :
- La requête qui impacte table1 va avoir ou non un enregistrement parmi plusieurs répondant à la clause champ1='toto'.
- Le résultat de cette requête est envoyée dans la variable var1.
- L'exception NO_DATA_FOUND va traiter en fait le cas où il n'y aurait pas d'enregistrement répondant à la clause champ1='toto'.
Le truc, c'est que je ne sais pas si l'exception NO_DATA_FOUND va se lever si dans ma deuxième requête, il n'y a pas d'enregistrement ?
En gros, si on définit plusieurs requêtes dans le DECLARE et qu'on lève l'exception NO_DATA_FOUND. Est-ce qu'on va "aller" dans cette exception si n'importe quelle requête ne ramène pas d'enregistrement, ou alors est-ce que je peux clairement affecter cette exception NO_DATA_FOUND à une requête particulière ?
Bahan, compliquééééé X_X

