把SQL语句做为参数?这个我倒是没有玩过呀,我只是看过把SQL语句中的某个值做为参数来传的,如果ORACLE的存储过程能够实现这个功能的话,那ORACLE的功能也就不逊于一个编译器了。。

解决方案 »

  1.   

    CREATE OR REPLACE PACKAGE pkg_test
    AS
       TYPE myrctype IS REF CURSOR;   PROCEDURE get (strsql varchar2(500), p_rc OUT myrctype);
    END pkg_test;
    CREATE OR REPLACE PACKAGE BODY pkg_test
    AS
       PROCEDURE get (strsql varchar2(500), p_rc OUT myrctype)
       IS
    BEGIN
         OPEN p_rc FOR sqlstr;
    END get;
    END pkg_test;
    /
      

  2.   

    create package test_age
    as
    type mycursor is ref cursor;
    end;
    /
    create procedure pro(p_str in varchar2,p_rc out test_age.mycursor)
    as
    begin
    open p_rc for p_str;
    end;
    /