REF CURSOR et requête dynamique
Bonjour à tous !
Je rencontre un soucis avec un REF CURSOR :
J'ai créé une procédure stockée qui se base sur un REF CURSOR pour me retourner des données que je traite dans un L4G (PowerBuilder).
Voici cette procédure :
CREATE OR REPLACE PROCEDURE BUILD_DW_PR
(
IO_CUR IN OUT TBPI_CA_CURSEUR_PG.P_TC_REF_CURSOR
)
IS
BEGIN
OPEN IO_CUR FOR
SELECT <colonnes> FROM <tables> WHERE....;
END BUILD_DW_PR;
/
Cela fonctionne très bien avec une requête écrite dans la procédure elle même, mais j'aimerai pouvoir exécuter une requête dynamiquement en la stockant dans une variable, par exemple EXECUTE IMMEDIATE var_requete;
Cela ne semble pas fonctionner dans le cadre du REF CURSOR....
Qulequ'un aurait une idée ? Je suis sous ORACLE 8.
Merci par avance pour votre aide !
J'ai essayé mais ORACLE ne veut rien savoir
J'ai essayé d'appeler une fonction, déclarer des variables dans ma procédure BUILD_DW_PR, mais il semblerait que dès que je mets autre chose que l'open du cursor, ORACLE refuse en bloc....(je suis en oracle8i).
Par ailleurs, lorsque dans le fonctionnement que vous m'avez gentiment proposé je passe une requête contenant des cotes ORACLE me retourne un ORA-01001 Invalid Cursor.
si p_instruction = select sysdate from dual cela fonctionne,
si p-instruction = select to_char(sysdate, 'DD/MM/YYYY') from dual j'ai le ORA-01001, de quoi cea put-il venir ?
Merci beaucoup pour votre aide !