Bonjour,
J'aimerais factoriser le code ci dessous :
en faisant un SELECT sur tous les éléments concernés INTO toutes les variables concernées (rangées dans le même ordre)
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
23
24
25
26 BEGIN SELECT TIERS.VILLE INTO ville_dest FROM TIERS, OL WHERE TIERS.SECTEUR_TIERS = OL.CODE_SECTEUR AND TIERS.MNEMO_TIERS = OL.MNEMO_CLIENT_CDE AND TIERS.RAISON_1_TIERS = OL.RAISON_DEST_1 AND OL.CODE_ADR_DEST = TIERS.CODE_ADRESSE AND OL.NO_OL = var_c.NO_OL; EXCEPTION WHEN NO_DATA_FOUND THEN ville_dest := NULL; WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.put_line('probleme dans select ... into : trop de lignes pour la ville') ; END ; BEGIN SELECT TIERS.NO_TELEPHONE INTO no_telephone FROM TIERS, OL WHERE TIERS.SECTEUR_TIERS = OL.CODE_SECTEUR AND TIERS.MNEMO_TIERS = OL.MNEMO_CLIENT_CDE AND TIERS.RAISON_1_TIERS = OL.RAISON_DEST_1 AND OL.CODE_ADR_DEST = TIERS.CODE_ADRESSE AND OL.NO_OL = var_c.NO_OL; EXCEPTION WHEN NO_DATA_FOUND THEN no_telephone := NULL; WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.put_line('probleme dans select ... into : trop de lignes pour le numero de telephone') ; END ; BEGIN SELECT TIERS.NO_PORTABLE INTO no_portable FROM TIERS, OL WHERE TIERS.SECTEUR_TIERS = OL.CODE_SECTEUR AND TIERS.MNEMO_TIERS = OL.MNEMO_CLIENT_CDE AND TIERS.RAISON_1_TIERS = OL.RAISON_DEST_1 AND OL.CODE_ADR_DEST = TIERS.CODE_ADRESSE AND OL.NO_OL = var_c.NO_OL; EXCEPTION WHEN NO_DATA_FOUND THEN no_portable := NULL; WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.put_line('probleme dans select ... into : trop de lignes pour le numero de portable') ; END ;
Mais comment gérer les exception de NO_DATA_FOUND pour chaque variable (indépendemment des autres) ???
Merci d'avance
Partager