执行一个package中的存储过程,返回一个游标,怎样把游标当中的每个字段单独取出来?

szxzwang 2004-08-05 03:14:32
问题如上;
我在form中写的语句:
declare
var_sql varchar(100);
type cur_type is ref cursor;
cur_rec cur_type;
begin
var_sql:='select db0007001 a,db0007006 b from db0007 where db0007001=111';
PKG_Usual_wxz.Get_Cursor_Recordset(var_sql,cur_rec);
--open cur_rec;
--for aa in cur_rec
--loop
-- message(cur_rec.b);
--end loop;
end;
返回的cur_rec中只有一条记录,但我想只取出b字段,我上面注释的语句都不对,我执行时他报"游标出错"!
下面是我写的一个package:
create or replace package PKG_Usual_wxz is
type cur_type is ref cursor;

procedure Get_Cursor_Recordset
(var_SQL in varchar,cur_recordset out cur_type);

End PKG_Usual_wxz;
/
create or replace package body PKG_Usual_wxz is

procedure Get_Cursor_Recordset
(var_SQL in varchar,cur_recordset out cur_type)
is
begin
open cur_recordset for var_sql;
end Get_Cursor_Recordset;

End PKG_Usual_wxz;
/
我要得到b字段,我怎么写法?那位朋友能指点一下?
...全文
126 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzh_seagull 2004-08-05
  • 打赏
  • 举报
回复
直接用不行吗
begin
FOR cur IN (select db0007001 a,db0007006 b from db0007 where db0007001=111)
LOOP
--message(cur.b);
END LOOP;
end;
lianhg 2004-08-05
  • 打赏
  • 举报
回复
TRY:
declare
var_sql varchar(100);
type cur_type is ref cursor;
cur_rec PKG_Usual_wxz.cur_type;
...

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧