Je souhaite faire une procédure en SQL Dynamique et j'ai un gros problème.

j'ai la procédure suivante
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;
ou F_Test est déclaré comme suit :
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;
Lorsque j'appelle cette procédure cela marche bien.

Mon pb est lorsque je veux l'écrire sous la forme de sql dynamique.
J'ai le code suivant :
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;
mais cela ne marche pas.
Help...