cs_vincent303
Messages postés24Date d'inscriptionmercredi 28 avril 2010StatutMembreDernière intervention18 mai 2012
-
15 mai 2012 à 10:32
cs_vincent303
Messages postés24Date d'inscriptionmercredi 28 avril 2010StatutMembreDernière intervention18 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
cs_vincent303
Messages postés24Date d'inscriptionmercredi 28 avril 2010StatutMembreDernière intervention18 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;
pmcoste
Messages postés72Date d'inscriptionmercredi 7 février 2007StatutMembreDernière intervention25 juillet 20131 15 mai 2012 à 12:06
Bonjour,
As-tu essayé avec Execute Immediate ?
function initialise_global (nom varchar2) return number is
stmt_str VARCHAR2(200);
BEGIN
...
stmt_str := 'PKG_' || nom || '.initialise()';
EXECUTE IMMEDIATE stmt_str;
...
END;
cs_vincent303
Messages postés24Date d'inscriptionmercredi 28 avril 2010StatutMembreDernière intervention18 mai 2012 18 mai 2012 à 12:19
Désolé du temps de réponse,
Alors ta solution ne marche pas :ORA-00900: instruction SQL non valide.
Alors que si j'éxécute l'instruction en brute de se que j'ai dans le stmt_str, il arrive à l'exéctuer