[erreur] exact fetch returns more than requested number of rows
Bonjour à tous,
J'ai de nouveau un problème. J'obtiens une erreur "ORA-01422: exact fetch returns more than requested number of rows". Je suis sous l'appli Apex.
Il s'agit juste d'un code pour s'exercer, le but étant de multiplier deux valeurs "nombre_a" et "nombre_b" ensemble pour remplir le champ "resultat". Puis d'attribuer une valeur à "avis" en fonction de la valeur de "resultat" (< ou > 10). Puis avec l'aide d'un curseur, d'afficher les multiplications.
Si vous aviez une explication ça m'arrangerait bien ;)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| DECLARE
CURSOR aff_resultat IS SELECT nombre_a,nombre_b,resultat FROM nom_test WHERE RESULTAT IS NOT NULL;
c_resultat number;
c_nombrea number;
c_nombreb number;
c_resultat_temp number;
BEGIN
UPDATE nom_test SET RESULTAT = NOMBRE_A * NOMBRE_B;
SELECT resultat into c_resultat_temp from nom_test;
IF c_resultat_temp < 10 then UPDATE nom_test set avis = 'Not OK';
ELSE update nom_test set avis = 'OK';
END IF;
OPEN aff_resultat;
LOOP
FETCH aff_resultat into c_nombrea,c_nombreb,c_resultat;
EXIT WHEN aff_resultat%NOTFOUND;
DBMS_OUTPUT.put_line(c_nombrea || '*' || c_nombreb || '=' || round(c_resultat,2));
END LOOP;
CLOSE aff_resultat;
EXCEPTION
WHEN TOO_MANY_ROWS THEN
dbms_output.put_line(SQLERRM);
END; |