¿es posible ejecutar una pieza dinámica de sql dentro de plsql y devolver los resultados en un sys_refcursor? He pegado mi intento taaan lejos, pero la costura dosnt estar funcionando, este es el im error al obtener throught que mi uno aplicación de javaEjecutando una instrucción sql dinámica en un SYS_REFCURSOR
ORA-01006: variable de vinculación no existe ORA-06512: en "LIVEFIS. ERC_REPORT_PK", línea 116 ORA-06512: en la línea 1
pero que podría ser mal interpretado por somthing java, todo costuras a compilarse bien Soo im no seguro.
procedure all_carers_param_dy (pPostcode in carer.postcode%type, pAge Number
,pReport out SYS_REFCURSOR) is
begin
declare
lsql varchar2(500) :='SELECT c.id FROM carer c, cared_for cf,carer_cared_for ccf '
||' where c.id = ccf.carer_id (+)'
||' AND cf.id (+) = ccf.cared_for_id';
begin
if pPostcode is not null and pAge <= 0 then
lsql := lsql||' AND c.postcode like ''%''|| upper(pPostcode)||''%''';
elsif pPostcode is null and pAge > 0 then
lsql := lsql||' AND ROUND((MONTHS_BETWEEN(sysdate,c.date_of_birth)/12)) = pAge';
elsif pPostcode is not null and pAge > 0 then
lsql := lsql ||' AND ROUND((MONTHS_BETWEEN(sysdate,c.date_of_birth)/12)) = pAge'
||' AND c.postcode like ''%''|| upper(pPostcode)||''%''';
end if;
execute immediate lsql
into pReport;
end;
end;
Im nuevo a plsql y aún más reciente para SQL dinámico Soo cualquier ayuda/sugerencia sería muy apreciada.
Gracias de nuevo
Jon
Técnicamente, si SELECT devuelve un tipo de datos de cursor, puede seleccionarlo en un cursor de ref (que ejecuta sql inmediato o estático). Pero tiene razón en que esta selección devuelve un valor de identificación, no un cursor de referencia. –