CREATE OR REPLACE PACKAGE BODY "PAGEQUERY"
IS
PROCEDURE UP_PAGEQUERY (p_PageSize INT, --每页记录数
p_PageNo INT, --当前页码,从 1 开始
p_SqlSelect VARCHAR2, --查询语句,含排序部分
p_OutRecordCount OUT INT, --返回总记录数
p_OutCursor OUT refCursorType)
AS
v_sql VARCHAR2 (3000);
v_count INT;
v_heiRownum INT;
v_lowRownum INT;
BEGIN
----取记录总数
v_sql := 'select count(*) from (' || p_SqlSelect || ')';
EXECUTE IMMEDIATE v_sql INTO v_count;
p_OutRecordCount := v_count;
----执行分页查询
v_heiRownum := p_PageNo * p_PageSize;
v_lowRownum := v_heiRownum - p_PageSize + 1;
v_sql :=
'SELECT *
FROM (
SELECT A.*, rownum rn
FROM ('
|| p_SqlSelect
|| ') A
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载