+ -
当前位置:首页 → 问答吧 → 打印不了游标啦

打印不了游标啦

时间:2008-04-29

来源:互联网

--创建存储过程
create or replace procedure ret_cur(
cur in out sys_refcursor) is
begin
  open cur for
  select to_char(id) id,
         name,
         to_char(type) "type"
  from demo;
end;

--打印存储过程返回的游标
SQL> col name format a12
SQL> variable x refcursor;
REFCURSOR not supported
SQL> exec ret_cur(x);
begin ret_cur(x); end;
ORA-06550: 第 1 行, 第 15 列:
PLS-00201: 必须说明标识符 'X'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
SQL> print x;
x
---------

SQL>
--oracle9.2 for windows

这个问题咋搞呀

作者: houyichong   发布时间: 2008-04-29

过程还可以这么写呀

而且错误明明白白的都告诉你了
SQL> variable x refcursor;
REFCURSOR not supported

作者: zhangfengh   发布时间: 2008-04-29

不知道了,我在E文教程上看到的例子

作者: houyichong   发布时间: 2008-04-29

改为如下!

exec ret_cur(:x);

作者: bell6248   发布时间: 2008-04-29

楼上说的我测试过,还是不行
不知道是不是10g才支持refcursor呢
我在9.1,9.2上测试过都不行啦

作者: houyichong   发布时间: 2008-04-30



Oracle9i [9.2.0.1.0 ]

SQL> create or replace procedure ret_cur(cur in out sys_refcursor)
  2  is
  3  begin
  4    open cur for  select ename, sal from emp;
  5  end;
  6  /

Procedure created.

SQL> variable x refcursor;
SQL> exec ret_cur(:x);

PL/SQL procedure successfully completed.


作者: bell6248   发布时间: 2008-04-30

10g下是可以的

作者: shiguibao   发布时间: 2008-04-30

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create or replace procedure ret_cur(
  2  cur in out sys_refcursor) is
  3  begin
  4    open cur for
  5    select to_char(11) id,
  6           'tom' name,
  7           to_char(2) type
  8    from dual;
  9  end;
10  /

过程已创建。
SQL> variable x refcursor
SQL> exec ret_cur(:x)

PL/SQL 过程已成功完成。

SQL> print :x

ID NAM T
-- --- -
11 tom 2

SQL>

作者: shiguibao   发布时间: 2008-04-30

也许还是版本的问题

作者: shiguibao   发布时间: 2008-04-30

SQL> variable x refcursor
REFCURSOR not supported

SQL> variable x refcursor;
REFCURSOR not supported

SQL>

作者: houyichong   发布时间: 2008-05-02

行,我在plsql dev上测试,结果就是不支持

但我在oracle的sqlplus测试就出来结果了

连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 -
With the Partitioning, OLAP and Oracle Data Mini
JServer Release 9.2.0.1.0 - Production

SQL> variable x refcursor;
SQL> exec ret_cur(:x);

PL/SQL 过程已成功完成。

SQL> print :x;

ID                                       NAME
---------------------------------------- -------
type
----------------------------------------
1                                        可口可乐
1

2                                        美年达
1

4                                        顺连香醋
3


ID                                       NAME
---------------------------------------- -------
type
----------------------------------------
3                                        泰国大米
2


SQL>

作者: houyichong   发布时间: 2008-05-02

我也遇到这样的问题,楼主解决了么?

作者: guhan010   发布时间: 2011-09-03

正常,那是sqlplus里的指令

作者: dingjun123   发布时间: 2011-09-03