Criei o cursor abaixo para testar o cursor dinâmico.
create or replace
PROCEDURE MosTabCurDim is
type tpTeste is REF CURSOR;
CurExemplo tpTeste;
vid number;
vSQL VARCHAR2(255);
vdata date;
begin
select sysdate into vdata from dual;
vSQL := 'SELECT id, data from TestaCursorDinamico where to_data < ' || vdata;
open CurExemplo for vSQL;
loop
fetch CurExemplo into vid, vdata;
exit when CurExemplo%notfound;
DBMS_OUTPUT.PUT_LINE(VID || ' - ' || VDATA);
end loop;
close CurExemplo;
end MosTabCurDim;
ORA-00932: tipos de dados inconsistentes: esperava DATE obteve NUMBER
ORA-06512: em "SYSTEM.MOSTABCURDIM", line 10
ORA-06512: em line 2
Já coloquei assim:
vSQL := 'SELECT id, data from TestaCursorDinamico where to_date(data, ''DD/MM/YYYY'') < ' || vdata;
vSQL := 'SELECT id, data from TestaCursorDinamico where data < ' || to_date(vdata, ''DD/MM/YYYY'') ;
vSQL := 'SELECT id, data from TestaCursorDinamico where to_date(data, ''DD/MM/YYYY'') < ' || to_date(vdata, ''DD/MM/YYYY'') ;
Mas o erro continua.