昨天搞了一下,在SQKPLUS里面我能得到想要的信息了。代码如下: 包头: create or replace package pkg_zbb as type type_cursor is ref cursor; procedure read_rows (beginDate in varchar2,endDate in varchar2, result out type_cursor); end pkg_zbb; 包体: create or replace package body pkg_zbb as procedure read_rows (beginDate in varchar2,endDate in varchar2, result out type_cursor) is begin open result for select * from v_zbb where rq>=beginDate and rq<=endDate; end read_rows; end pkg_zbb;但是也是有几个关于游标的问题,不清楚。 1、程序来调用,打开一个游标result,是否需要关闭?存在多次调用,量不小的。 2、如果要关闭,什么时候关闭? 3、我有多个这样的查询的存储,是否每个存储定义的游标每次都要不一样,都使用result会出现问题吗?
1 你的程序能调过程,那么也一定能调SQL 直接把它写成 select * from v_zbb where rq>=? and rq<=?就完事了。2 这里的游标和你使用select语句产生的游标没有区别,你select语句怎么处理,这里就怎么处理好了。
包头:
create or replace package pkg_zbb
as
type type_cursor is ref cursor;
procedure read_rows (beginDate in varchar2,endDate in varchar2, result out type_cursor);
end pkg_zbb;
包体:
create or replace package body pkg_zbb
as
procedure read_rows (beginDate in varchar2,endDate in varchar2, result out type_cursor)
is
begin
open result for select * from v_zbb where rq>=beginDate and rq<=endDate;
end read_rows;
end pkg_zbb;但是也是有几个关于游标的问题,不清楚。
1、程序来调用,打开一个游标result,是否需要关闭?存在多次调用,量不小的。
2、如果要关闭,什么时候关闭?
3、我有多个这样的查询的存储,是否每个存储定义的游标每次都要不一样,都使用result会出现问题吗?
select * from v_zbb where rq>=? and rq<=?就完事了。2 这里的游标和你使用select语句产生的游标没有区别,你select语句怎么处理,这里就怎么处理好了。