Bonjour,
Je désirerais faire une boucle sur un curseur, mais où le schéma est paramétrable, du genre:
Bien évidemment ca ne marche pas, alors j'ai pensé à faire une boucle du genre fetch :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Mais là le problème c'est que je ne peux pas faire un 'SELECT *', mais SELECTionner un seul champ à la fois...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Apparemment le curseur paramétré avec un schéma en paramètre ne fonctionne pas non plus:
(cela donne l'erreur: "Table ou vue inexistante");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Auriez-vous des idées ?
Merci d'avance !
EDIT : Je travaille avec Oracle 10g, Windows XP
Partager