excute immediate AGAN into ....

解决方案 »

  1.   

    刚才打错了, 是execute immediate
      

  2.   

    不好意思,execute immediate只能用于执行DDL,DML和匿名PL/SQL语句块.
    但是,我是在PACKAGE中的有名PROCEDURE中想实现这个功能.
    试验证明,execute immediate确实不能在有名PROCEDURE中编译通过.
    请问:还有没有其他的方法?
      

  3.   

    execute immediate AGAN INTO v_1,v_2....
      

  4.   

    CREATE OR REPLACE package pkg_test as
      type myrctype is ref cursor; 
       function get(intID number) return myrctype;
    end pkg_test;
    /
     
    CREATE OR REPLACE
    package body pkg_test as
    --函数体
       function get(intID number) return myrctype is
         rc myrctype;  --定义ref cursor变量
         sqlstr varchar2(500);
       begin
         if intID=0 then
            --静态测试,直接用select语句直接返回结果
            open rc for select id,name,sex,address,postcode,birthday from student;
         else
            --动态sql赋值,用:w_id来申明该变量从外部获得
            sqlstr := 'select id,name,sex,address,postcode,birthday from student where id=:w_id';
            --动态测试,用sqlstr字符串返回结果,用using关键词传递参数
            open rc for sqlstr using intid;
         end if;
     
         return rc;
       end get;
     
    end pkg_test;
    /是否这样?请楼主发问题时,确认问题可理解性