L'exécution d'une instruction sql dynamique dans un SYS_REFCURSOR

est-il possible d'exécuter une dynamique morceau de sql dans plsql et de retourner les résultats dans un sys_refcursor? J'ai collé ma tentative soo loin, mais dosnt couture de travailler, c'est l'erreur im obtenir via mon application java

ORA-01006: lier une variable n'a pas
existe ORA-06512: à
"LIVEFIS.ERC_REPORT_PK", la ligne 116
ORA-06512: à ligne 1

mais cela pourrait être quelque chose interprétée par java, tout coutures pour compiler des beaux-soo im pas sûr.

 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 nouveau à plsql et même les plus récents de sql dynamique soo toute aide/suggestions seraient grandement appréciées.

Merci Encore

Jon

OriginalL'auteur user250643 | 2010-02-09