易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle中的游标使用问题

SQL code:

DECLARE
var_cursor SYS_REFCURSOR;
BEGIN
procedure_name(p_1 => NULL,
p_2 => NULL,
p_3 => NULL,
p_cursor => var_cursor);
FOR i IN var_cursor LOOP
dbms_output.put_line(i.col_name);
END LOOP;
END;


我的意图是:
首先定义一个游标var_cursor。
然后执行一个存储过程procedure_name,它有四个参数,前三个都给他NULL,第四个是一个out游标,我将它赋给了上面定义的var_cursor。
然后遍历游标,把值输出。
报错在FOR i IN var_cursor LOOP这里,错误是PLS-00221: 'var_cursor' is not a procedure or is undefined。

为啥会报错,帮忙看一下。谢谢大家。
p_cursor是sys_refcursor类型传出参数吗

FOR i IN var_cursor LOOP
    dbms_output.put_line(i.col_name);
  END LOOP;
确认var_cursor处于打开状态
改成
loop
fetch var_cursor into v1,v2,v3;--变量要定义
exit when var_cursor%notfound;
dbms_output.put_line(v1);
end;
close var_cursor;

是不是要用

:var_cursor 

用系统游标
sys_refcursor
在不行  加群  :2987841

sys_refcursor

不支持for in loop获取值

只能用fetch的方式

SQL> declare
  2  var_cursor SYS_REFCURSOR;
&n


相关问答:

PHP 连接Oracle 出错

<?php
  getenv("ORACLE_HOME");
  $conn=ocilogon("test","test","test_db");
  if($conn)  
  echo success;  
&nb ......

急问一个oracle字段设置的问题 - Oracle / 基础和管理

各大老师好,请教一个问题.
我设置了一个oracle字段,varchar(3000),然后插入一条数据长度才1000,就报错了.如:net.sf.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
Caused ......

Oracle离线访问---求助 - Oracle / 基础和管理

大家好,我现在把oracle服务器上面的原始文件,下载到本机了.我想在本机访问数据库怎么设置啊.是不是类似可以建立一个什么虚拟服务器来实现.请大家出出主意
引用
    大家好,我现在把oracle服务器上面 ......

oracle数据库的名字问题 - Oracle / 基础和管理

我在创建数据库的时候用的名字为oracle10,但是创建好后,在默认的目录下显示的名称却是oracle10g,这是为什么?
你看的 10g是安装目录吧 

SQL> select name from v$database;
NAME
---------
ORCL ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号