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
je veut ajouter est ce que toujours je suit obligé de faire cette exeception??? merci d'avence pour votre aide
du crétin, point te moquer tu ne dois
Salut
ça fait un bail que j'ai pas fait de PL/SQL
ton erreur ne serait opas de vouloir stocker plusieurs lignes dans une variable (structurée ou non).
si non, dans quel contexte se produit ton erreur ?
sandul
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;
/
Obtenez des réponses à vos questions sur la gestion de données, partagez des astuces et restez à jour avec les dernières avancées technologiques en matière de stockage de données.