存过过程如下
create or replace procedure TESTTABLE_Select(v_CX out SYS_REFCURSOR )
as
begin
    OPEN v_CX FOR select * from TESTTABEL;
end TESTTABLE_Select;这样执行看不到结果撒
declare V_CX SYS_REFCURSOR;
begin
  TESTTABLE_Select(V_CX);
end;

解决方案 »

  1.   

    sys@SZTYORA> conn eygle/eygle
    已连接。
    eygle@SZTYORA> desc emp;
     名称                                                                                      是否为空? 类型
     ----------------------------------------------------------------------------------------- -------- ------------------------------------------------------------
     EMPNO                                                                                     NOT NULL NUMBER(4)
     ENAME                                                                                              VARCHAR2(10)
     JOB                                                                                                VARCHAR2(9)
     MGR                                                                                                NUMBER(4)
     HIREDATE                                                                                           DATE
     SAL                                                                                                NUMBER(7,2)
     COMM                                                                                               NUMBER(7,2)
     DEPTNO                                                                                    NOT NULL NUMBER(2)
     LOC                                                                                       NOT NULL VARCHAR2(13)eygle@SZTYORA> create or replace procedure emp_proc(emp_cur out sys_refcursor)
      2  as
      3  begin
      4  open emp_cur for 'SELECT * FROM EMP ';
      5  end;
      6  /过程已创建。eygle@SZTYORA> var emp_cur refcursor;
    eygle@SZTYORA> exec emp_proc(:emp_cur);PL/SQL 过程已成功完成。eygle@SZTYORA> print emp_cur;     EMPNO ENAME                JOB                       MGR HIREDATE                   SAL       COMM     DEPTNO LOC
    ---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ---------- --------------------------
          7499 ALLEN                SALESMAN                 7698 1981-02-20 00:00:00       1600        300         30 CHICAGO
          7521 WARD                 SALESMAN                 7698 1981-02-22 00:00:00       1250        500         30 CHICAGO
          7654 MARTIN               SALESMAN                 7698 1981-09-28 00:00:00       1250        400         30 CHICAGO
          7844 TURNER               SALESMAN                 7698 1981-09-08 00:00:00       1500          0         30 CHICAGOeygle@SZTYORA> select * from emp;     EMPNO ENAME                JOB                       MGR HIREDATE                   SAL       COMM     DEPTNO LOC
    ---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ---------- --------------------------
          7499 ALLEN                SALESMAN                 7698 1981-02-20 00:00:00       1600        300         30 CHICAGO
          7521 WARD                 SALESMAN                 7698 1981-02-22 00:00:00       1250        500         30 CHICAGO
          7654 MARTIN               SALESMAN                 7698 1981-09-28 00:00:00       1250        400         30 CHICAGO
          7844 TURNER               SALESMAN                 7698 1981-09-08 00:00:00       1500          0         30 CHICAGO
      

  2.   

    declare V_CX SYS_REFCURSOR;
    begin
      TESTTABLE_Select(V_CX);
      print V_CX;
    end;报错 符号:=被替换为V_CX后继续
      

  3.   


    var V_CX SYS_REFCURSOR;
    TESTTABLE_Select(:V_CX);  
    /
    print V_CX;
      

  4.   

    无效sql语句
    存储过程应该没问题 我在C#程序里调用是有结果的
      

  5.   

    var V_CX SYS_REFCURSOR;  --回车TESTTABLE_Select(:V_CX);  --回车print V_CX;--回车
      

  6.   

    var V_CX SYS_REFCURSOR;  --回车exec TESTTABLE_Select(:V_CX);  --回车print V_CX;--回车
      

  7.   

    -- 就三句话的事情(定义游标变量,执行存储过程并赋值给游标变量、返回游标变量的数据)
    var v_cx refcursor;
    exec TESTTABLE_Select(:v_cx);
    print v_cx;-- 这么简单也不会,你还能做点什么呢?
      

  8.   

    问题是这么简单的问题到现在也没个结果撒一样无效无效sql语句
      

  9.   

    -- 你是用的什么工具?要用SQL*Plus工具!
    -- 进入cmd,执行类似于下面的操作:
    C:\Documents and Settings\Administrator>sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on 星期四 4月 21 10:18:45 2011Copyright (c) 1982, 2005, Oracle.  All rights reserved.idle> conn eygle/eygle
    已连接。
    eygle@SZTYORA> create or replace procedure emp_proc(emp_cur out sys_refcursor)
      2  as
      3  begin
      4  open emp_cur for SELECT * FROM EMP;
      5  end;
      6  /过程已创建。eygle@SZTYORA>
    eygle@SZTYORA> var v_emp refcursor;
    eygle@SZTYORA> exec emp_proc(:v_emp);PL/SQL 过程已成功完成。eygle@SZTYORA> print v_emp;     EMPNO ENAME                JOB                       MGR HIREDATE                   SAL       COMM     DEPTNO LOC
    ---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ---------- --------------------------
          7499 ALLEN                SALESMAN                 7698 1981-02-20 00:00:00       1600        300         30 CHICAGO
          7521 WARD                 SALESMAN                 7698 1981-02-22 00:00:00       1250        500         30 CHICAGO
          7654 MARTIN               SALESMAN                 7698 1981-09-28 00:00:00       1250        400         30 CHICAGO
          7844 TURNER               SALESMAN                 7698 1981-09-08 00:00:00       1500          0         30 CHICAGOeygle@SZTYORA>
      

  10.   

    -- 如果是sqldeveloper工具的话,只能用程序块去测试啦!
      

  11.   

    PLSQL Developer 可以点测试,输入执行后,会有个输出的游标,你点开那个游标就可以看到结果集了.