Probleme exception [ PL SQL , Oracle]
gaelgeek
Messages postés
8
Statut
Membre
-
Matthiouw Messages postés 18 Statut Membre -
Matthiouw Messages postés 18 Statut Membre -
Salut tout le monde,
J'ai une vue "author_novel" qui contient deux colonnes : noms des auteurs "author_name", et les noms de leurs romans "novel_title". j'ai saisi cette procédure afin de pouvoir, quand j'entre le nom d'un auteur, afficher la liste de toutes ses oeuvres :
SELECT author_name || ' ' || novel_title FROM author_novel
WHERE author_name = '&name';
Si le nom de l'auteur est correctement saisi, tout va bien, la liste s'affiche. sinon, ca dit qu'il y a zéro ligne.
A la place de ce deuxième cas(0 ligne), je souhaite saisir une instruction qui me permettra de dire "il y a erreur, veuillez ressaisir le nom de l'auteur", peut être à l'aide d'une exception, ou d'un trigger (??)
Pouvez vous m'aider s'il vous plait
Merci d'avance ..
J'ai une vue "author_novel" qui contient deux colonnes : noms des auteurs "author_name", et les noms de leurs romans "novel_title". j'ai saisi cette procédure afin de pouvoir, quand j'entre le nom d'un auteur, afficher la liste de toutes ses oeuvres :
SELECT author_name || ' ' || novel_title FROM author_novel
WHERE author_name = '&name';
Si le nom de l'auteur est correctement saisi, tout va bien, la liste s'affiche. sinon, ca dit qu'il y a zéro ligne.
A la place de ce deuxième cas(0 ligne), je souhaite saisir une instruction qui me permettra de dire "il y a erreur, veuillez ressaisir le nom de l'auteur", peut être à l'aide d'une exception, ou d'un trigger (??)
Pouvez vous m'aider s'il vous plait
Merci d'avance ..
1 réponse
-
Bonsoir,
Tu as la possibilité d'exploiter l'exception "NO_DATA_FOUND" et "DBMS_OUTPUT.PUT_LINE" (qui te permet d'afficher un message, il me semble).
Je ne vois pas à quoi sert les || et '' dans ta ligne select.
Je ferai quelque chose du genre :SET SERVEROUTPUT ON DECLARE auteur VARCHAR2(30) titre VARCHAR2(50) BEGIN SELECT author_name, novel_title INTO auteur, titre FROM author_novel WHERE author_name = '&name'; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Il y a une erreur, veuillez ressaisir le nom de l'auteur.'); END;
Fais moi signe si cela fonctionne et/ou si quelque chose pose problème dans la compréhension du code :).