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 :

Récupérer les paramètres OUT d'une procéudre paramètrée


Sujet :

PL/SQL Oracle

  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Points : 83
    Points
    83
    Par défaut Récupérer les paramètres OUT d'une procéudre paramètrée
    Bonjour tout le monde, voici le code de ma procédure parametrée qui se trouve dans un package :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    PROCEDURE GET_THE_DET_FCO  (IDFCO      IN VARCHAR2 ,
     IO_CURSOR  IN OUT GET_THE_DET_FCO_CUR                               ) IS
    C_GET_THE_DET_FCO   GET_THE_DET_FCO_CUR;
    BEGIN
       OPEN C_GET_THE_DET_FCO FOR
    		'	SELECT t1.FCOREC_FCO_CODE_FK_PK  FCOID,						'||
    		'	       ''0.''||t1.FCOREC_NUMORD    GRP,                  '||
    		'		   t2.CDF_NOM                INFO_01 ,                '||
    		'	       t2.CDF_DATECR 	         DAT_CRE ,               '||
    		'	       t2.CDF_DATEMJ 	         DAT_MAJ                 '||
    		'	FROM   FCOREC_FCO_REC  t1 ,                              '||
    		'	       CDF_CODIF       t2	                              '||
    		'	WHERE  t1.FCOREC_CDF_REC_CODE_FK_PK  = t2.CDF_CODE_PK    '||
    		'	AND    t2.CDF_NUMERO_PK              = ''CC''            '||
    		'	AND    t1.FCOREC_FCO_CODE_FK_PK      IN ('||IDFCO||')'    ||
    		'	UNION                                                    '||
    		'	SELECT t1.FCOCOM_FCO_CODE_FK_PK  FCOID,                  '||
    		'	       ''1.''||t1.FCOCOM_NUMORD       GRP,               '||
    		'		   t2.CDF_NOM                   INFO_01 ,             '||
    		'	       t2.CDF_DATECR 	            DAT_CRE ,            '||
    		'	       t2.CDF_DATEMJ 	            DAT_MAJ              '||
    		'	FROM   FCOCOM_FCO_COM  t1 ,                              '||
    		'	       CDF_CODIF       t2	                              '||
    		'	WHERE  t1.FCOCOM_CDF_COM_CODE_FK_PK  = t2.CDF_CODE_PK    '||
    		'	AND    t2.CDF_NUMERO_PK              = ''CC''            '||
    		'	AND    t1.FCOCOM_FCO_CODE_FK_PK      IN ('||IDFCO||')'    || 
    		'	ORDER BY 1 ';
    	IO_CURSOR := C_GET_THE_DET_FCO ;
    END GET_THE_DET_FCO ;
    Elle fonctionne trés bien, mon probléme que j'aimerai avoir les noms des procédures dans le package ansi que leurs paramètres d'Entrée/Sortie. J'ai utilisé la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT   OBJECT_NAME, ARGUMENT_NAME, DATA_TYPE, DATA_LENGTH, IN_OUT
            FROM ALL_ARGUMENTS
           WHERE owner = 'THERIAQUE'
             AND package_name = 'PACK_THERIAQUE_API'
             AND data_type NOT IN ('PL/SQL RECORD', 'REF CURSOR')
    elle fonctionne bien aussi, mais pour ces procédures, je n'ai pas les paramètres OUT.
    Est ce que quelqu'un pourrait m'indiquer pouquoi ces paramètres OUT ne s'affichent pas dans la requête et ou je peux les récupérer.
    Merci pour votre collaboration.
    Cordialement.

  2. #2
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 224
    Points : 211
    Points
    211
    Par défaut
    Salut,

    Si j'ai bien compris, tu veux récupérer les procédures et fonction composant un package.

    Pour celà, il suffit de faire un simple DESC sur le nom du package :


  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Très probablement à cause de la restriction sur data_type.

  4. #4
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Points : 83
    Points
    83
    Par défaut
    En fait, je veux avoir la liste de toutes le procédures composant le package ainsi que leur différents paramètres d'E/S et leurs informations (type, taille,etc).
    La restriction sur le data_type c'est que je ne veux pas sortir les paramètres de sortie de type curseur. C'est pour cela j'ai effectué cette condition.

  5. #5
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    essaie

    all_arguments

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  6. #6
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par fatsora Voir le message
    essaie

    all_arguments
    Mais c'est exactement la vue qu'il utilise....
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  7. #7
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Mercure07,

    Tu te contredis... Ta procédure à un seul paramètre OUT (IO_CURSOR) qui est un REF CURSOR.. et tu veux pas récupérer les parmètres de type REF CURSOR...

    Faut savoir
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  8. #8
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Points : 83
    Points
    83
    Par défaut
    Merci de vos réponses,
    en fait d'aprés mes connaissances, j'ai crée un record qui va contenir les paramètres OUT de la procédures c'est à dire les colonnes dans la clauses SELECT (ou leur alias). C'est ce que je veux récupérer et pas le curseur.
    Cela marche convenablement si la procédure n'est pas paramètrée et la requête que j'ai présenté dans le 1er post, me donnerait dans ce cas les nom des colonnes.
    J'espère que tu m'as compris.

  9. #9
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Citation Envoyé par mercure07 Voir le message
    Merci de vos réponses,
    en fait d'aprés mes connaissances, j'ai crée un record qui va contenir les paramètres OUT de la procédures c'est à dire les colonnes dans la clauses SELECT (ou leur alias). C'est ce que je veux récupérer et pas le curseur.
    Cela marche convenablement si la procédure n'est pas paramètrée et la requête que j'ai présenté dans le 1er post, me donnerait dans ce cas les nom des colonnes.
    J'espère que tu m'as compris.
    Faut pas confondre...

    Le seul paramètre OUT de ta procédure est un REF CURSOR et non pas les colonnes du select contenu dans le REF CURSOR...

    Un ref cursor n'est pas typé donc tu ne peux pas savoir à l'avance quel sont les colonnes...
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  10. #10
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Points : 83
    Points
    83
    Par défaut
    Merci pour cet eclaircissement, dans ce cas est ce que je peux avoir les colonnes de sortie de la procédures sachant qu'ils sont défini en tant que RECORD dans le spec du package.

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/11/2011, 14h18
  2. Réponses: 2
    Dernier message: 26/01/2010, 10h05
  3. Récupérer les mails Outlook dans une table Access
    Par zerrokooll dans le forum VBA Access
    Réponses: 79
    Dernier message: 07/07/2009, 14h22
  4. Réponses: 2
    Dernier message: 26/10/2004, 17h42
  5. Réponses: 4
    Dernier message: 03/08/2004, 19h26

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