Execute Immediate + Fonction ?
Bonjour,
je reviens un peu a la charge car je n'arrive pas a trouver une solution a mon probleme.
Est ce que qqun pourrait m'aider ?
Donc je suis toujours a la recherche d'une maniere d'executer du code SQl dynamique. J'ai bien compris qu'il etait possible de le faire par l'intermediaire de la commande EXECUTE IMMEDIATE.
Seulement je n'arrive pas a trouver la syntaxe qui fonctionne dans le cas ou je veux executer une fonction donc qui renvoit un resultat.
Qqun aurait il une idée de la syntaxe a adopter ?
Je voudrais transformer ceci par exemple :
Code:
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
|
FUNCTION F_Trouve_NumRes (p_num_res_int VARCHAR2) RETURN NUMBER
IS
n_num_res NUMBER;
BEGIN
SELECT num_res
INTO n_num_res
FROM CARTON_RESA
WHERE num_res_int = p_num_res_int;
RETURN n_num_res;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN NULL;
END F_Trouve_NumRes;
PROCEDURE Test_Execut_Immediate
IS
retour NUMBER;
BEGIN
param := '990180045300';
retour := F_Trouve_NumRes (param);
END Execut_Immediate; |
J'ai essayer plusieurs syntaxe avec execute immediate sans trouver celle qui fonctionne.
Code:
1 2 3
|
EXECUTE IMMEDIATE 'retour:= F_Trouve_NumRes (''990180019700'')';
EXECUTE IMMEDIATE 'F_Trouve_NumRes (''' || param || ''')' INTO retour; |
Quelqu'un aurait il une idée ?
D'avance merci