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 :

Appel d'une fct dont le nom est contenu dans une variable ?


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 53
    Points : 46
    Points
    46
    Par défaut Appel d'une fct dont le nom est contenu dans une variable ?
    Bonjour,

    Environnement : Oracle 8.1.5

    Je voudrais savoir si, par le plus grand des hasards, il est possible d'appeler, dans un programme PL/SQL, une fonction basée dont le nom est contenu dans une variable.

    Un exemple TRES schématisé de ce que je voudrais faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DECLARE
    v_fonction VARCHAR2(50) := MaFonction;
    v_resultat NUMBER;
    BEGIN
      v_resultat := v_fonction(Paramètre1, Paramètre2, Paramètre3);
    END;
    A ma connaissance, ce n'est pas possible, mais on ne sait jamais...

    Merci par avance.

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    en SQL dynamique peut-être

  3. #3
    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
    En SQL dynamique, sûrement !
    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

  4. #4
    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
    D'ailleurs, voici un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE OR REPLACE FUNCTION text_xx RETURN VARCHAR2
    IS
    BEGIN
      RETURN 'Hello' ;
    END ;
     
     
    DECLARE
      LC$Proc  VARCHAR2(100) := 'text_xx' ;
      LC$Return VARCHAR2(100) ;
    BEGIN
      EXECUTE IMMEDIATE 'SELECT ' || LC$Proc || ' FROM DUAL' INTO LC$Return ;
      Dbms_Output.put_Line( LC$Return ) ;
    END ;
    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

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 53
    Points : 46
    Points
    46
    Par défaut
    Ahhhhhhhh, très très bon !

    Et en plus, ça fonctionne très très bien !!

    Merci beaucoup !

  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 Veve44
    ...Et en plus, ça fonctionne très très bien !!
    ...
    Nous n'avons pas pour habitude de fournir du code qui fonctionne mal !
    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
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Pour compléter
    Il existe aussi la possibilité d'utiliser le package DBMS_SQL. Le principe est le suivant:
    1° ) Tu prépares ton ordre SQL
    2°) Tu ouvres un curseur (DBMS_SQL.open_cursor
    3°) Tu demandes à parser la l'ordre (DBMS_SQL.PARSE)
    3°) tu demandes l'exécution de l'ordre (DBMS_SQL.EXECUTE)
    4°) Enfin tu fermes le curseur (DBMS_SQL.CLOSE_CURSOR)
    Tout cela revient à la même chose que l'ordre (Execute Immediate)


  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    DBMS_SQL étant en cours d'obsolescence si je ne m'abuse

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

Discussions similaires

  1. MACRO de copie d'une feuille dont le nom est contenu dans une cellule
    Par youssy dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/03/2015, 14h33
  2. MACRO de copie d'une feuille dont le nom est contenu dans une cellule
    Par youssy dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/03/2015, 19h39
  3. [XL-2007] Sélectionner une feuille dont le nom est contenu dans une cellule
    Par Nonno 94 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/06/2014, 20h47
  4. Réponses: 3
    Dernier message: 07/01/2010, 16h54
  5. Instancier une classe dont le nom est contenu dans une String
    Par fyque dans le forum Général Python
    Réponses: 15
    Dernier message: 13/06/2008, 12h33

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