Execption "too many rows"
bouhmid86
Messages postés
30
Statut
Membre
-
bouhmid86 Messages postés 30 Statut Membre -
bouhmid86 Messages postés 30 Statut Membre -
Bonjour, je debute en pl/sql j'ai pas bien comprit comment peut on avoir l'exception "too many rows" il ya plusieurs lignes?? . je veut un exemple simple. merci a tous
Configuration: Windows Vista Safari 532.0
4 réponses
-
Salut,
Un simple exemple:
DROP TABLE aaa; CREATE TABLE aaa ( b NUMBER ); INSERT INTO aaa VALUES (1); DROP PROCEDURE ppp; CREATE OR REPLACE PROCEDURE ppp IS BEGIN DECLARE dummy NUMBER; BEGIN SELECT b INTO dummy FROM aaa; DBMS_OUTPUT.put_line ('value is ' || dummy); END; END; / exec ppp;
==> à la console nous aurons:
Procedure created. PL/SQL procedure successfully completed. 1 row created. value is 1
Donc tout est OK. Rajoutons une valeur et réexécutons:
INSERT INTO aaa VALUES (2); exec ppp;
==> à la console nouas aurons:
1 row created. BEGIN ppp; END; Error at line 4 ORA-01422: l'extraction exacte ramène plus que le nombre de lignes demandé ORA-06512: à "PPP", ligne 7 ORA-06512: à ligne 1
Modifions notre procédure stockée:
CREATE OR REPLACE PROCEDURE ppp IS BEGIN DECLARE dummy NUMBER; BEGIN SELECT b INTO dummy FROM aaa; DBMS_OUTPUT.put_line ('value is ' || dummy); EXCEPTION WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.put_line ('catched error :-)'); END; END; /
Et rebelotte pour une exécution:exec ppp;
==> à la console nous aurons:
catched error :-)
Voilou...
++