A voir également:
- No data found oracle
- Logiciel sql - Télécharger - Bases de données
- Sql replace plusieurs valeurs - Forum Programmation
- Récupération serveur sql - Télécharger - Gestion de données
- Requête sql date supérieure à ✓ - Forum Programmation
- Excel case when ✓ - Forum Excel
3 réponses
Utilisateur anonyme
13 mars 2008 à 14:53
13 mars 2008 à 14:53
Change la condition de l'exception en : EXCEPTION WHEN OTHERS THEN et cela fonctionne
Utilisateur anonyme
13 mars 2008 à 15:06
13 mars 2008 à 15:06
Bizarre car sous TOAD cela fonctionne avec le WHEN OTHERS et pas le NO_DATA_FOUND. J'ai l'impression que les éditeurs interprètent différents les codes d'erreurs :-S
Juste initialiser le g_result
DECLARE
v_id_oi oi.oi_id_oi%type;
g_result number := 0; --ici avant de l'utiliser
BEGIN
select oi_id_oi into v_id_oi from oi where oi_id_oi = 19;
:g_result := 1;
DBMS_OUTPUT.PUT_LINE('g_result1 = ' || :g_result);
EXCEPTION
WHEN NO_DATA_FOUND THEN
begin
:g_result := 2;
DBMS_OUTPUT.PUT_LINE('g_result2 = ' || :g_result);
End;
END ;
En effet :g_result := 1; ne se fait que si la requête se passe bien. Ce n'est pas une initialisation
Cordialement
DECLARE
v_id_oi oi.oi_id_oi%type;
g_result number := 0; --ici avant de l'utiliser
BEGIN
select oi_id_oi into v_id_oi from oi where oi_id_oi = 19;
:g_result := 1;
DBMS_OUTPUT.PUT_LINE('g_result1 = ' || :g_result);
EXCEPTION
WHEN NO_DATA_FOUND THEN
begin
:g_result := 2;
DBMS_OUTPUT.PUT_LINE('g_result2 = ' || :g_result);
End;
END ;
En effet :g_result := 1; ne se fait que si la requête se passe bien. Ce n'est pas une initialisation
Cordialement
13 mars 2008 à 15:02
Si j'execute ce programme via une ligne de commande sql*plus, il s'execute correctement. (Le message géré dans le NO_DATA_FOUND s'affiche bien)
Toutefois Je travaille sous SQL Developer (version free proposer par Oracle) pour les besoins de la formation
Si j'execute ce programme via SQL Developer, cela ne fontionne pas.
le WHEN OTHER ne change rien au phénomène.