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

Oracle Discussion :

[PL/SQL] Pb proccédure stockée[/PL/SQL]


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Par défaut [PL/SQL] Pb proccédure stockée[/PL/SQL]
    Bonjour,

    Voilà j'ai créer une fonction stockée qui prend un paramétre d'entrée et à un parametre de sortie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CREATE OR REPLACE FUNCTION Ajout_Navigation( LIBRUBRIQUE IN VARCHAR2,CORUBRIQUE OUT INTEGER )
    return integer
      AS
      BEGIN
          SELECT COREF into CORUBRIQUE
          FROM INAMRE
          WHERE TYREF = 3 and LDESCR LIKE LIBRUBRIQUE;				 
     
    	IF CORUBRIQUE IS NULL 
    	 	 then
    	 		select INAMRE_COREF.nextval into CORUBRIQUE 
    			from dual;	 		  	  
    	end if; 		  
      END;
    /
    mon problème est le suivant, lorsque je tente d'appeler ma procédure sous oracle je n'y parviens pas.
    Voici comment je m'y prend:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call Ajout_Navigation('Accueil');
    Quelqu'un vois où ais-je bien pu me tromper dans la façon d'appeler ma fonction?

    Merci d'avance.

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Ta fonction a deux paramètres et tu n'en passes qu'un à l'appel.

    Par ailleurs, même s'il est possible de mettre des paramètres out sur une fonction cela n'est pas très propre. En plus cela t'empêche d'utiliser ta fonction dans du SQL pur. Si tu as besoin de 2 valeurs en sortie, il est plus judicieux d'utiliser une procédure avec 2 paramètres out.

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Par défaut
    J'ais également fait une procédure mais j'avais le meme soucis.
    Tu dis que je ne passe qu'un parametre mais avant de poster j'ai quand meme essayer plusieurs choses entre autre mais j'ai le meme message d'erreur dans oracle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    CREATE OR REPLACE PROCEDURE Ajout_Rubrique_Navigation( LIBRUBRIQUE IN VARCHAR2,CORUBRIQUE OUT INTEGER )
      AS
      BEGIN
         --DECLARE rub integer; 
    	 		--rub := (
    				 SELECT COREF into CORUBRIQUE
                 	 FROM INAMRE
        		     WHERE TYREF = 3 and LDESCR LIKE LIBRUBRIQUE;
    				 --)
    	IF CORUBRIQUE IS NULL 
    	 	 then
    	 		select INAMRE_COREF.nextval into CORUBRIQUE 
    			from dual;
     
    	--ELSE 
    	  -- 	  begin 
    	   	--  		RETURN CORUBRIQUE;
    	  	  --end; 
    	end if; 		  
      END;
    /
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call Ajout_Rubrique_Navigation('Accueil',libl);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORA-06576: ceci n'est pas un nom de fonction ou de procédure valide

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Est-ce qu'on peut avoir:
    la version d'Oracle côté serveur ?
    la version d'Oracle côté client ?
    le client Oracle utilisé pour appeler la fonction (SQL*Plus ?)
    le code complet de l'appel de la procédure (avec la déclaration du paramètre en sortie) ?

  5. #5
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Par défaut
    La version d'oracle que j'utilise est celle de TOAD 8.5.3,la procédure que j'ai créer je ne l'apelle pas à partir de sql*plus mais dans toad à partir de sql editor,pour le code d'appel je l'ai déjà mis.
    J'ai pas encore fait appel à ma procedure dans une action java,je veut juste la tester sous oracle avant

  6. #6
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Citation Envoyé par rafounette
    Tu dis que je ne passe qu'un parametre mais avant de poster j'ai quand meme essayer plusieurs choses entre autre mais j'ai le meme message d'erreur dans oracle.
    Si tu ne nous dis pas tout ce que tu as fait on ne peut pas le deviner

    Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    declare
      libl number;
    begin
       Ajout_Rubrique_Navigation('Accueil',libl);
    end;

  7. #7
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Par défaut
    J'ai essayer avec sql*plus j'ai la meme chose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> call Ajout_Navigation('Accueil');
    call Ajout_Navigation('Accueil')
         *
    ERREUR à la ligne 1 :
    ORA-06576: ceci n'est pas un nom de fonction ou de procédure valide

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

Discussions similaires

  1. SQL Server Prcédure Stockée TimeOut
    Par Promesses dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/08/2005, 08h18
  2. [PL/SQL] Appel procédure stockée dans trigger
    Par Félia dans le forum Oracle
    Réponses: 3
    Dernier message: 24/01/2005, 17h25
  3. SQL dans Procédure stockée
    Par julure dans le forum Oracle
    Réponses: 13
    Dernier message: 02/11/2004, 16h57
  4. Pb Procedure Stockée sous SQL SERVEUR et ACCESS
    Par alexcluzel dans le forum MS SQL Server
    Réponses: 24
    Dernier message: 30/07/2004, 16h31
  5. Procédures stockées imbriquées SQL Server
    Par Mike69 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 01/10/2003, 10h31

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