i have procedure in package prototype:
procedure simplesearch(p_keyword in varchar2, p_events out sys_refcursor);
and in package body definition is:
procedure simplesearch(p_keyword in varchar2, p_events out sys_refcursor) begin open p_events select * event e, show s s.eventid = e.id; end simplesearch;
and when run in debugging screen :
declare p_keyword varchar2(200); p_events ref cursor; begin p_keyword := 'r'; package1.simplesearch( p_keyword => p_keyword, p_events => p_events ); -- dbms_output.put_line('p_events = ' || p_events); :p_events := p_events; -- <-- cursor --rollback; end;
and gives error pls-00201: identifier 'cursor' must declared
why cursor type changed ref cursor
though declared sys_refcursor
?
why want use refcursor store output of sys_refcursor. change calling block below , should work:
declare p_keyword varchar2(200); p_events sys_refcursor ; begin p_keyword := 'r'; package1.simplesearch( p_keyword => p_keyword, p_events => p_events ); /* legacy output: dbms_output.put_line('p_events = ' || p_events); */ -- :p_events := p_events; --<-- cursor --rollback; end;