[PL/SQL] Curseur où le schéma de la table SELECTionnée est paramétrable
Bonjour,
Je désirerais faire une boucle sur un curseur, mais où le schéma est paramétrable, du genre:
Code:
1 2 3 4 5 6 7 8 9
|
DECLARE
utilisateur varchar2(100);
BEGIN
for c in (SELECT * from utilisateur.table1) loop
null;
end loop
END;
|
Bien évidemment ca ne marche pas, alors j'ai pensé à faire une boucle du genre fetch :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
DECLARE
v varchar2(100);
type curseur is ref cursor;
c curseur;
BEGIN
open c for 'SELECT champ1 FROM ' || utilisateur ||'.table1;
fetch c into v;
exit when c%notfound;
loop
null;
end loop;
close c;
END; |
Mais là le problème c'est que je ne peux pas faire un 'SELECT *', mais SELECTionner un seul champ à la fois...
Apparemment le curseur paramétré avec un schéma en paramètre ne fonctionne pas non plus:
Code:
1 2 3 4 5 6 7 8 9
|
DECLARE
table_id varchar2(4000);
cursor c(owner varchar2) is select * from owner.table1;
BEGIN
for i in c('utilisateur1') loop
null;
end loop;
END; |
(cela donne l'erreur: "Table ou vue inexistante");
Auriez-vous des idées ? :roll:
Merci d'avance !
EDIT : Je travaille avec Oracle 10g, Windows XP ;)