___分页存储过程中游标打开超过最大数___的问题
每次调用下面的分页存储过程次数多了以后就会报:
java.sql.SQLException: ORA-01000: 超出打开游标的最大数
看了一下应该是这一句:OPEN p_OutCursor FOR v_sql;
游标打开了以后没有及时关闭,但是p_OutCursor游标是作为存储过程的输出参数返回记录集的:p_OutCursor out refCursorType ,在存储过程内是不能关闭的,那应该在哪里关闭这个游标呢???
**********************************************
--创建分页package:
create or replace package CURSPKG as
TYPE refCursorType IS REF CURSOR;
procedure sp_Page
(
p_PageSize int, --每页记录数
p_PageNo int, --当前页码,从 1 开始
p_SqlSelect varchar2, --查询语句,含排序部分
p_SqlCount varchar2, --获取记录总数的查询语句
p_OutRecordCount out int, --返回总记录数
p_OutCursor out refCursorType
);
end;
/
--创建分页package body:
create or replace package body CURSPKG is
procedure sp_Page
(
p_PageSize int, --每页记录数
p_PageNo int, --当前页码,从 1 开始
p_SqlSelect varchar2, --查询语句,含排序部分
p_SqlCount varchar2, --获取记录总数的查询语句
p_OutRecordCount out int, --返回总记录数
p_OutCursor out refCursorType
)
is
v_sql varchar2(3000);
v_count int;
v_heiRownum int;
v_lowRownum int;
begin
----取记录总数
execute immediate p_SqlCount into v_count;
p_OutRecordCount := v_count;
----执行分页查询
v_heiRownum := p_PageNo * p_PageSize;
v_lowRownum := v_heiRownum - p_PageSize + 1;
v_sql := 'SELECT * FROM &