IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Problem valeur retourne = NULL


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Juin 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 131
    Par défaut Problem valeur retourne = NULL
    salut,
    Voici mon code qui permet de chercher un livre il doit afficher son référence s'il lé trouve sinon affiche -1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    create or replace PROCEDURE verif_livre ( titre_in IN VARCHAR2, auteur_in IN VARCHAR2, type_in IN VARCHAR2, ref_out OUT NUMBER) 
    IS 
    BEGIN
    SELECT * FROM LIVRE where ((TITRE = titre_in) AND (AUTEUR = auteur_in) AND (TYPE = type_in )) ; 
    IF SQL%ROWCOUNT = 0 THEN Select ref  INTO ref_out FROM LIVRE where ((TITRE = titre_in) AND (AUTEUR = auteur_in) AND (TYPE = type_in ));
    ELSE ref_out := -1 ;
    END IF;
    END;
    Dans la dernier cas il va afficher une erreur INTO inattendu, Si j'ajoute un "INTO variable". il va afficher une erreur parce que variable ne peut pas avoir une valeur null. Voici mon code au depart:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create or replace PROCEDURE verif_livre ( titre_in IN VARCHAR2, auteur_in IN VARCHAR2, type_in IN VARCHAR2, ref_out OUT NUMBER) 
    IS 
    BEGIN
    SELECT REF INTO ref_out FROM LIVRE where ((TITRE = titre_in) AND (AUTEUR = auteur_in) AND (TYPE = type_in )) ; 
    END;
    SVP comment je fait.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    Si j'ajoute un "INTO variable". il va afficher une erreur parce que variable ne peut pas avoir une valeur null. Voici mon code au depart:
    SELECT INTO
    Cet ordre ne doit ramener qu'une ligne sous peine de générer l'exception NO_DATA_FOUND si aucune ligne n'est ramenée ou TOO_MANY_ROWS si plus d'une ligne sont ramenées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE OR REPLACE PROCEDURE verif_livre ( titre_in IN VARCHAR2, auteur_in IN VARCHAR2, type_in IN VARCHAR2, ref_out OUT NUMBER) 
    IS 
    BEGIN
    SELECT REF INTO ref_out 
      FROM LIVRE 
     WHERE ITRE = titre_in
       AND AUTEUR = auteur_in 
       AND TYPE = type_in;
    exception
      when no_data_found then
        ref_out := -1;
    END;

  3. #3
    Membre très actif
    Inscrit en
    Juin 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 131
    Par défaut
    Un grand up merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme Valeur retournée par Struts
    Par issam_ovic dans le forum Struts 1
    Réponses: 0
    Dernier message: 14/04/2010, 01h05
  2. requete select ne retournant que les valeurs nom null
    Par monpseudonom dans le forum Sql Developer
    Réponses: 0
    Dernier message: 20/02/2009, 16h25
  3. Réponses: 4
    Dernier message: 22/01/2009, 04h44
  4. Erreur inconnu : valeur retournée null !
    Par sofien dans le forum VBScript
    Réponses: 1
    Dernier message: 25/11/2008, 16h43
  5. probleme de valeur retournée et seg fault
    Par florent_de_brest dans le forum C
    Réponses: 5
    Dernier message: 04/12/2005, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo