如何在Oracle存储过程中实现分页?

4年前 (2020-12-28)阅读611回复0
访客
访客
  • 管理员
  • 发消息
  • 注册排名3
  • 经验值65770
  • 级别管理员
  • 主题13152
  • 回复5
楼主

  

1、首先建立一个包,用户创建一个游标类型

create or replace package pkg_query as

type cur_query is ref cursor;

end pkg_query;

2、创建存储过程

create OR REPLACE PROCEDURE prc_query

(p_tableName

in varchar2,

--表名

p_strwhere

in varchar2,

--查询条件 --*

p_orderColumn

in varchar2,

--排序的列 --*

p_orderStyle

in varchar2,

--排序方式 --*

p_curPage

in out Number, --当前页

p_pageSize

in out Number, --每页显示记录条数

p_totalRecords

out Number,

--总记录数 --*

p_totalPages

out Number,

--总页数

v_cur

out pkg_query。

  cur_query)

--返回的结果集

IS

v_sql VARchar2(1000) := ’’;

--sql语句

v_startRecord Number

(4);

--开始显示的记录条数

v_endRecord Number

(4);

--结束显示的记录条数

BEGIN

--记录中总记录条数

v_sql := ’select TO_NUMBER(count(*)) FROM ’ || p_tableName || ’ where 1=1’;

IF p_strwhere IS NOT NULL or p_strwhere ’’ THEN

v_sql := v_sql || p_strwhere;

END IF;

execute IMMEDIATE v_sql INTO p_totalRecords;

--验证页面记录大小

IF p_pageSize   

0
0
收藏0
回帖

如何在Oracle存储过程中实现分页? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息