Je souhaite faire une procédure en SQL Dynamique et j'ai un gros problème.
j'ai la procédure suivante
ou F_Test est déclaré comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Procedure Test (F_Test out Type_Test, pNom in TableClient.Nom%type) is begin Open F_Test for Select nom, prenom, adresse, codepostal, ville From TableClient Where nom = pNom; end;
Lorsque j'appelle cette procédure cela marche bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Type Rec_test is record (nom TableClient.nom%type, prenom TableClient.prenom%type, adresse TableClient.adresse%type, codepostal TableClient.codepostal%type, ville TableClient.ville%type); Type Type_Test is ref cursor return Rec_Test;
Mon pb est lorsque je veux l'écrire sous la forme de sql dynamique.
J'ai le code suivant :
mais cela ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Procedure Test (F_Test out Type_Test, pNom in TableClient.Nom%type) is Str_chaine varchar2(1000); Str_table varchar2(20); begin Str_table:='TableClient'; Str_chaine :=' Open F_Test for '+ ' Select nom, prenom, adresse, codepostal, ville '+ ' From ' + Str_table + ' Where nom = pNom;'; EXECUTE IMMEDIATE str_chaine USING pnom; end;
Help...
Partager