用存储过程返回了一个cursor
怎样将这个这个cursor用于直接查询
实现select * from cursor
这种感觉

解决方案 »

  1.   

    没遇到过这种需求,参考下这个帖子把
    https://www.jb51.net/article/32447.htm
      

  2.   

    声明动态游标接受,然后放入集合使用
    DECLARE
       s SYS_REFCURSOR;
       TYPE t IS TABLE OF test_fan%ROWTYPE;
       t1 t;
    BEGIN
       DECLARE
          PROCEDURE test1(o_cursor OUT SYS_REFCURSOR) IS
          BEGIN
             OPEN o_cursor FOR
                SELECT * FROM test_fan;
          END;
       BEGIN
          test1(o_cursor => s);
          FETCH s BULK COLLECT
             INTO t1;
          FOR i IN 1 .. t1.count LOOP
             dbms_output.put_line(t1(i).object_name);
          END LOOP;
          CLOSE s;
       END;
    END;
    不知道是否是你想要的
      

  3.   

    Oracle 管道函数了解一下