Bonjour,

J'ai un comportement bizarre avec une fonction PL/SQL ! Cette fonction contient un curseur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
CURSOR  cur_table_1 IS
SELECT * FROM TABLE_1;
Puis j'ouvre ce curseur pour faire mon traitement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
FOR v_cur_table_1 IN cur_table_1
LOOP
  /*Mon traitement ici...*/
END LOOP;
Jusque là tout est normal !!! Le problème survient lors de l'ouverture de ce curseur : 30 min pour récupérer les données sachant que la table ne contient que 16 lignes, de plus, lorsque j'exécute la requête SELECT dans un éditeur, elle ne prend même pas 1 seconde pour retourner le résultat !

Petite précision : l'appel de ma fonction se fait à travers un

Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT * FROM TABLE ( ma_fonction_PLSQL() );
Quelqu'un peut-il me proposer une solution ?

Merci par avance