【发布时间】:2010-02-09 16:01:38
【问题描述】:
是否可以在 plsql 中执行一条动态 sql 并将结果返回到 sys_refcursor 中?到目前为止,我已经粘贴了我的尝试,但是没有接缝正在工作,这是我通过我的 java 应用程序遇到的错误
ORA-01006: 绑定变量没有 存在 ORA-06512: 在 “LIVEFIS.ERC_REPORT_PK”,第 116 行 ORA-06512: 在第 1 行
但这可能是java误解的东西,一切都很好编译所以我不确定。
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;
我是 plsql 的新手,甚至是动态 sql 的新手,所以任何帮助/建议都将不胜感激。
再次感谢
乔恩
【问题讨论】: