create or replace procedure bmproce(  bmproce1         out   sys_refcursor) is
begin
  open   bmproce1   for    select * from wyuser.bm;
end ;
我没有建立包。就是这样一个存储过程。点测试。没有查询到数据。不知道怎么回事?

解决方案 »

  1.   

    plsql以wysuer登录wyuser.bm是肯定有数据的。
      

  2.   

    plsql以wysuer登录wyuser.bm是肯定有数据的。
      

  3.   


    数据查询到了,只是没有呈现而已。你需要增加一段显示的代码。
    例如DBMS_OUTPUT.PUT_LINE();谢谢!
      

  4.   


    d:\>sqlplus /nologSQL*Plus: Release 10.2.0.4.0 - Production on 星期五 4月 17 09:03:39 2009Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.idle> conn wqfznc30/1@wqfz
    已连接。
    wqfznc30@NCDB> CREATE OR REPLACE PROCEDURE BMPROCE(BMPROCE1 OUT SYS_REFCURSOR) IS
      2  BEGIN
      3    OPEN BMPROCE1 FOR
      4      SELECT * FROM scott.emp;
      5  END;
      6  /过程已创建。wqfznc30@NCDB>
    wqfznc30@NCDB> DECLARE
      2   v_c SYS_REFCURSOR;
      3   v_r scott.emp%ROWTYPE;
      4  BEGIN
      5    bmproce(v_c);
      6    LOOP
      7      FETCH v_c INTO v_r;
      8      EXIT WHEN v_c%NOTFOUND;
      9      dbms_output.put_line(v_r.empno||'**'||v_r.ename);
     10    END LOOP;
     11  END;
     12  /
    7369**SMITH
    7499**ALLEN
    7521**WARD
    7566**JONES
    7654**MARTIN
    7698**BLAKE
    7782**CLARK
    7788**SCOTT
    7839**KING
    7844**TURNER
    7876**ADAMS
    7900**JAMES
    7902**FORD
    7934**MILLERPL/SQL 过程已成功完成。
      

  5.   

    SQL> var v_rc refcursor;SQL> exec bmproce(:v_rc);PL/SQL 过程已成功完成。SQL> print v_rc;    DEPTNO DNAME          LOC
    ---------- -------------- -------------
            10 ACCOUNTING     NEW YORK
            20 RESEARCH       DALLAS
            30 SALES          CHICAGO
            40 OPERATIONS     BOSTON我在sqlplus中可以显示。但是在net中报错.???那位大虾连接过asp。net
      

  6.   

    {"ORA-06550: 第 1 行, 第 26 列: \nPLS-00103: 出现符号 \":\"在需要下列之一时:\n ( - + case mod new not null\n   <an identifier> <a double-quoted delimited-identifier>\n   <a bind variable> avg count current exists max min prior sql\n   stddev sum variance execute forall merge time timestamp\n   interval date\n   <a string literal with character set specification>\n   <a number> <a single-quoted SQL string> pipe\n符号 \":\" 被忽略。\n" }
      

  7.   

    建一个包的应该就没有问题了看楼主原来写的存储过程本身是没有问题是不是如顶楼据说的数据查询到了,只是没有呈现而已。你需要增加一段显示的代码。 
    例如DBMS_OUTPUT.PUT_LINE(); 
      

  8.   

    我们使用PB技工具开发的时候,使用DATAWINDOW控件可以输出数据,和ORACLE结合是没有问题的。
    其他语言,可以查阅文档。
      

  9.   

    5楼正解
    结果是有的,只是没有显示出来
    调用dbms_output.put_line显示输出结果
      

  10.   

    调用dbms_output.put_line显示输出结果
      

  11.   

    Net是如何调用?调用方法?
           conn.ConnectionString =getOraConnectionString();
                    conn.Open();
                    cmd.Connection = conn;                cmd.CommandText = "bmproce";
                    cmd.CommandType = CommandType.StoredProcedure;                cmd.Parameters.Add("bmproce1", OracleType.Cursor);
                    cmd.Parameters["bmproce1"].Direction = ParameterDirection.Output;                DataSet ds = new DataSet();
                    OracleDataAdapter adapter = new OracleDataAdapter(cmd);
                    adapter.Fill(ds);
                    return ds;
      

  12.   

     楼主的程序,应该是被前台的java或者.net程序来调用,输出一个数据集。
      网页和后台数据库经常使用这种数据集来查询数据集合。
      

  13.   

    调试的时候可以看cursor里的值啊,如果有值肯定可以看到啦,还可以设断点看啊,或者加个输出语句就ok了