[PL/SQL][Oracle9] Proc. Stoc. comportement inattendue
Bonjour,
J'ai conscience que l'intitulé de la question est mal formulé, mais je n'ai pas trouvé mieux.
J'ai crée une procédure stockée (le code suit) dans laquelle j'effectue une requête simple qui ne me renvoit pas du tout l'élément attendue.
Code:
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 27 28 29 30 31 32
| PROCEDURE TOTO IS
EXCEPTION_FONCTIONNELLE EXCEPTION;
CODEECT varchar2(3);
CODESTOCKECT number(6) :=0;
BEGIN
dbms_output.put_line('Debut du traitement');
FOR LISTE_CARNET IN
(
SELECT WC.CARNETDEB AS NUMCARNET, WC.ECTNUM AS ECT, WC.RESIDCODE AS RES, WC.AGENTCP AS NUMCP, WL.LIVRDATE AS DATEDEBUT, WC.LIVREF AS NUMBL FROM W_AMN_CARNET WC, W_AMN_LIVRAISON WL
)
LOOP
SELECT E.CODEECT INTO CODEECT FROM TRS_OECT E WHERE E.CODENUM = LISTE_CARNET.ECT;
SELECT T.CODESTOCK INTO CODESTOCKECT FROM TRS_CCSTOCK T WHERE T.CODEECT = CODEECT AND T.CODERESIDENCE IS NULL AND T.NUMCP iS NULL;
END LOOP;
EXCEPTION
WHEN EXCEPTION_FONCTIONNELLE THEN
ROLLBACK;
RAISE;
WHEN TOO_MANY_ROWS THEN
ROLLBACK;
RAISE;
WHEN OTHERS THEN
ROLLBACK;
RAISE;
END TOTO; |
Ceci n'est qu'un extrait de la PS histoire de pas noyer le poisson :aie:
Bon, il s'agit de la requête suivante qui ne renvoie pas le bon résultat
Code:
SELECT T.CODESTOCK INTO CODESTOCKECT FROM TRS_CCSTOCK T WHERE T.CODEECT = CODEECT AND T.CODERESIDENCE IS NULL AND T.NUMCP iS NULL;
Je suis censé récupéré un seul enregistrement (la même requête executée unitairement avec le codeect remplacé par sa valeur supposée 'TOT' fonctionne).
Or, dans la PS, cette requête me renvoie le même résultat que la requête suivante:
Code:
SELECT T.CODESTOCK INTO CODESTOCKECT FROM TRS_CCSTOCK T WHERE T.CODERESIDENCE IS NULL AND T.NUMCP iS NULL;
:?
J'ai beau cherché, je ne vois pas...
Quelqu'un verrait-il ce que je ne vois pas?