Problème execute immediate dans boucle
Bonjour à tous,
Je souhaite récupérer dans une variable la concaténation de toutes les colonnes d'un curseur dans une boucle for.
Les colonnes de mes tables sont amenées à changer, je construis donc au préalable ma requête (la dessus je m'en sors, j'ai simplifié dans le code ci-dessous).
Mais c'est lorsque je veux que ma variable requête soit interpréter afin de mettre la concaténation dans une variable concat_col que je bloque.
J'ai essayé pas mal de chose avec un "execute immediate" et un select bidon. Mais même dans ce cas je rencontre l'erreur :
ORA-00904: "CURSEUR"."name_col2_tab2": invalid identifier
Comme si le curseur était hors context.
Code:
1 2 3 4 5 6 7 8 9 10
| declare
requete VARCHAR2(2000);
concat_col VARCHAR2(2000);
begin
requete := 'curseur.name_col1_tab1 || '':'' || curseur.name_col2_tab1 || '':'' || curseur.name_col1_tab2 || '':'' || curseur.name_col2_tab2';
for curseur in (select * from table1, table2)
loop
EXECUTE IMMEDIATE requete into concat_col; --?????? ligne problématique
end loop;
end; |
Je ne sais pas si c'est très clair, n'hésitez pas à me demander des précisions.
Merci pour votre aide, je n'ai plus d'idée.