Appel d'un package en fonction d'un paramètre

Résolu
cs_vincent303 Messages postés 24 Date d'inscription mercredi 28 avril 2010 Statut Membre Dernière intervention 18 mai 2012 - 15 mai 2012 à 10:32
cs_vincent303 Messages postés 24 Date d'inscription mercredi 28 avril 2010 Statut Membre Dernière intervention 18 mai 2012 - 18 mai 2012 à 13:09
Bonjour,
Voila j'ai un problème à l'heure actuelle dont je ne suis pas sure qu'il soit résolvable. :s
je possède une fonction qui prend en paramètre un nom et qui fera appel au package correspondant :

function initialise_global (nom varchar2) return number is
BEGIN
...
PKG_||nom||.initialise();
...
END;
je sais pas comment faire :s

3 réponses

cs_vincent303 Messages postés 24 Date d'inscription mercredi 28 avril 2010 Statut Membre Dernière intervention 18 mai 2012
18 mai 2012 à 13:09
Le problème étais que execute immediate exécute une requête sql et non une procédure PL/SQL définie.
Pour contourner le problème il faut :

function initialise_global (nom varchar2) return number is
stmt_str    VARCHAR2(200);
BEGIN
...
stmt_str := 'PKG_' || nom || '.initialise();';
EXECUTE IMMEDIATE 'BEGIN '||stmt_str|| ' END;';
...
END; 
3