CREATE OR REPLACE PROCEDURE aselectReftable
AS
BEGIN         SELECT * FROM REFERENCE_TABLE;
END 哪错了

解决方案 »

  1.   

    -- 查询必须返回结果集,否则:你的查询没有意义,这个是和SQL Server 2005不一样的!
      

  2.   

    -- i_address 是存储过程的输入参数,o_cur是存储过程的输出游标参数,用以获取返回的结果集!
    CREATE OR REPLACE PROCEDURE userinfo_proc(i_address VARCHAR2, o_cur OUT SYS_REFCURSOR)
    IS
      sqlstr VARCHAR2(200); -- 定义变量,用以存放SQL语句
    BEGIN
      sqlstr := 'SELECT Id, Name, Sex, Age, Address FROM userinfo WHERE Address = :i_address'; -- 给SQL变量赋值,其中 :i_address 是绑定变量,以提高执行效率!
      OPEN o_cur FOR sqlstr USING i_address; -- 给游标变量赋值
    END;
    /set serveroutput on;
    var c_cur refcursor;
    exec userinfo_proc('北京',:c_cur);
    print c_cur;
      

  3.   

    CREATE OR REPLACE PROCEDURE aselectReftable
    IS
    sqlstr VARCHAR2(200);
    BEGIN        sqlstr := 'SELECT * FROM REFERENCE_TABLE';
            //OPEN o_cur FOR sqlstr ;
    END ;怎么搞啊!不会
      

  4.   

    CREATE OR REPLACE PROCEDURE aselectReftable(o_cur OUT SYS_REFCURSOR)
    IS
    sqlstr VARCHAR2(200);
    BEGIN        sqlstr := 'SELECT * FROM REFERENCE_TABLE';
            OPEN o_cur FOR sqlstr ;
    END ;在pl/sql中怎么调用啊
     
    var c_cur refcursor;
    exec userinfo_proc(:c_cur);
    报错
      

  5.   

    CREATE OR REPLACE PROCEDURE aselectReftable(o_cur OUT SYS_REFCURSOR)
    IS
    sqlstr VARCHAR2(200);
    BEGIN  sqlstr := 'SELECT * FROM REFERENCE_TABLE';
      OPEN o_cur FOR sqlstr ;
    END ;在pl/sql中怎么调用啊
     
    var c_cur refcursor;
    exec userinfo_proc(:c_cur);
    print c_cur
    aselectReftable 你的过程名var c_cur refcursor;
    exec userinfo_proc(:c_cur);
      

  6.   

    去sqlplus里去调用,plsql developer里的command窗口不支持var对refcursor类型的定义。
      

  7.   

    SQL> CREATE OR REPLACE PROCEDURE aselectReftable(o_cur OUT SYS_REFCURSOR)
      2  IS
      3  sqlstr VARCHAR2(200);
      4  BEGIN
      5
      6    sqlstr := 'SELECT * FROM dual';
      7    OPEN o_cur FOR sqlstr ;
      8  END ;
      9  /Procedure created.SQL> var cur refcursor;
    SQL> exec aselectReftable(:cur);PL/SQL procedure successfully completed.SQL> print curD
    -
    XSQL>
      

  8.   

    plsql developer的command窗口。也许是我版本不支持,有人可以执行么?
    SQL> var c_cur refcursor;
    REFCURSOR not supported