Bonjour,
Au sein d'une fonction PL/SQL qui doit retourner un ensemble de résultats, je devais paramétrer une requête en fonction d'une variable.
Je me suis donc tourné vers l'utilisation de la commande "execute immediate" afin de produire le résultat de la requête.
Or cette requête doit retourner un ensemble de résultats, et j'obtiens toujours une erreur à la ligne de l'"execute", quelle que soit la syntaxe que j'utilise.
Voici la formation de ma requête et l'application de la commande sensée produire le résultat. Ce sont les dernières lignes de la fonction.
Où :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 LC$Requete := 'select distinct blabla from blablabla' || sSQLPart || 'etc. where param=:1'; LC$Requete := 'select cast(multiset(' || LC$Requete || ') as table_RESULT) into tResult from dual'; dbms_output.put_line(LC$Requete); execute immediate LC$Requete using paramID BULK COLLECT into tResult;
La fonction retourne un objet du type table_RESULT.
paramID est un paramètre d'entrée de la fonction.
tResult est de type table_RESULT.
LC$Requete varchar2(512);
sSQLPart varchar2(18);
Comment retourner simplement l'ensemble résultat ?
Merci.
Sam;
Partager