Probleme exception [ PL SQL , Oracle]

Fermé
gaelgeek Messages postés 7 Date d'inscription dimanche 15 janvier 2012 Statut Membre Dernière intervention 26 janvier 2012 - 21 janv. 2012 à 12:16
Matthiouw Messages postés 17 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 25 août 2012 - 24 janv. 2012 à 21:20
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 ..

1 réponse

Matthiouw Messages postés 17 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 25 août 2012
24 janv. 2012 à 21:20
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 :).
0