CREATE OR REPLACE PACKAGE pkg_test
AS
   TYPE myrctype IS REF CURSOR;
END pkg_test;
/create procedure pro(iv_orgid in number,iv_name in varchar2,p_rc out pkg_test.myrctype)
as
str varchar2(50);
begin
str:='select * from employee where orgid ='|| iv_orgid||' and name ='||iv_name;
open p_rc for str;
end;
/

解决方案 »

  1.   

    对了,我这个是个循环的的动态sql语句,通过一个游标循环,即
    loop
        fetch c_cursor into ic_orgid,ic_name;
        exit when c_cursor%notfound;
        --动态语句
    end loop
    这样就没办法用execute immediate lv_sqlstatement using iv_orgid了。
    能不能用to_char把iv_orgid变成varchar2呢?
      

  2.   

    干嘛用游标取,把两个表关联就可以了str:='select * from employee a,dept b where a.orgid =b.orgid and a.name =b.name';
    open p_rc for str;
      

  3.   

    beckhambobo(beckham) :我上面只是举个例子而已。我试了一下to_char是可以的。呵呵。。谢了