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 :

erreur dans ma procedure


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    67
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 67
    Par défaut erreur dans ma procedure
    Bonsoir tout le monde j ai créer la procédure suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create or replace procedure procedure_stokees(v_patient patient.idpatient%type)
    is 
    begin 
    select nom, prenom, (DATESORTIE- DATEENTREE) nbr_sejoure 
    from  patient join sejourne using (IDPATIENT) where idpatient=v_patient;
    end procedure_stokees;
    /
    et j ai reçu ce message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vertissement : ProcÚdure crÚÚe avec erreurs de compilation.
    et quand je met show error :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Erreurs pour PROCEDURE PROCEDURE_STOKEES :
     
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    4/1      PLS-00428: une clause INTO est attendue dans cette instruction
             SELECT
    pouvez vous m expliquer pour quoi il me dise qu'il faut une clause into sachant que je veux afficher pour un patient donné le nombre de séjour effectuer
    merci d avance

  2. #2
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Tu ne peux pas afficher directement dans une procédure PL/SQL
    Tu peux faire une sortie VIA dbms_output.
    Pour cela, il te faut des variables !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE OR REPLACE procedure procedure_stokees(v_patient patient.idpatient%type) IS 
     v_nom patient.nom%type;
     v_prenom patient.prenom%type;
     v_jours NUMBER; 
      begin  
    SELECT nom, prenom, (DATESORTIE- DATEENTREE) nbr_sejoure 
    into v_nom,v_prenom,v_jours
    FROM  patient JOIN sejourne 
    ON  patient.id_patient=sejourne.id_patient
    WHERE idpatient=v_patient;
    DBMS_OUTPUT.PUT_LINE (v_nom||','||v_prenom||'->'||v_jours);
     end procedure_stokees;

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    67
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 67
    Par défaut
    bonjour j ai tester mais il m affiche ce message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Avertissement : ProcÚdure crÚÚe avec erreurs de compilation.
     
    SQL> show error;
    Erreurs pour PROCEDURE PROCEDURE_STOKEES :
     
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    6/1      PL/SQL: SQL Statement ignored
    9/24     PL/SQL: ORA-00904: "SEJOURNE"."ID_PATIENT" : identificateur non
             valide
    même si on a écrit (patient.id_patient=sejourne.id_patient) ??

  4. #4
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    test d'abord ta requete (sans le INTO) dans SQLPlus.

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    67
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 67
    Par défaut
    Citation Envoyé par Garuda Voir le message
    test d'abord ta requete (sans le INTO) dans SQLPlus.
    ça marche sans into mais avec cette façon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT nom, prenom, (DATESORTIE- DATEENTREE) nbr_sejoure 
    FROM  patient JOIN sejourne using (IDPATIENT)
    WHERE idpatient=&v_patient;
    Entrez une valeur pour v_patient : 1
    ancien   3 : WHERE idpatient=&v_patient
    nouveau   3 : WHERE idpatient=1
     
    NOM          PRENOM       NBR_SEJOURE
    ------------ ------------ -----------
    karim     tazzi              19
    par contre avec cette façon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT nom, prenom, (DATESORTIE- DATEENTREE) nbr_sejoure 
    FROM  patient JOIN sejourne 
    ON  patient.IDPATIENT=sejourne.IDPATIENT
    WHERE idpatient=&v_patient;
    il y a une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ERREUR Ó la ligne 4 :
    ORA-00918: dÚfinition de colonne ambigu

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Le messages d'erreur répond pourtant parfaitement à votre interrogation :
    ERREUR Ó la ligne 4
    On va à la ligne 4 de votre code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE idpatient=&v_patient;
    On reprend le message d'erreur :
    ORA-00918: dÚfinition de colonne ambigu
    Oracle ne sait pas de quelle table idpatient fait parti dans votre WHERE.

Discussions similaires

  1. erreur dans une procedure
    Par younes86 dans le forum PL/SQL
    Réponses: 1
    Dernier message: 20/01/2010, 10h33
  2. [Sql server 2000] gerer les erreurs dans une procedure
    Par lemagicien dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/03/2008, 22h15
  3. Erreur dans procedure stockées
    Par freud dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/07/2007, 12h13
  4. erreur dans l'execution de procedure
    Par obydissonn dans le forum Windows Forms
    Réponses: 7
    Dernier message: 08/06/2007, 11h47
  5. Erreur Dans Procedure Pl/sql
    Par Redwings dans le forum PL/SQL
    Réponses: 5
    Dernier message: 07/11/2006, 16h40

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