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 :
J'ai essayer plusieurs syntaxe avec execute immediate sans trouver celle qui fonctionne.
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 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;
Quelqu'un aurait il une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 EXECUTE IMMEDIATE 'retour:= F_Trouve_NumRes (''990180019700'')'; EXECUTE IMMEDIATE 'F_Trouve_NumRes (''' || param || ''')' INTO retour;
D'avance merci
Partager