Oracle分页存储过程
来源:互联网 发布:淘宝投诉淘小二有用吗 编辑:程序博客网 时间:2024/06/15 19:41
第一步要先建立包
第二步写存储过程语句
create or replace package pkg_query istype cur_query is ref cursor;procedure met_down_query( m_tablename in varchar2,--表名 m_strwhere in varchar2,--查询条件 m_ordercolumn in varchar2,--排序字段 m_orderstyle in varchar2,--排序方式 m_currpage in out number,--当前页 m_pagesize in out number,--每页显示的记录数 m_totalrow out number,--总记录数 m_totalpage out number,--总页数 v_cur out cur_query --返回结果集);end pkg_query;
第二步写存储过程语句
create or replace procedure met_down_query( m_tablename in varchar2,--表名 m_strwhere in varchar2,--查询条件 m_ordercolumn in varchar2,--排序字段 m_orderstyle in varchar2,--排序方式 m_currpage in out number,--当前页 m_pagesize in out number,--每页显示的记录数 m_totalrow out number,--总记录数 m_totalpage 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 '||m_tablename||' where 1=1'; if m_strwhere is not null or m_strwhere <>'' then v_sql:=v_sql || m_strwhere; end if; execute immediate v_sql into m_totalrow; --验证页面大小 if m_pagesize<0 then m_pagesize:=0; end if; --根据页面大小计算总页数 if mod(m_totalrow,m_pagesize)=0 then m_totalpage:=m_totalrow/m_pagesize; else m_totalpage:=m_totalrow/m_pagesize+1; end if; --验证页号 if m_currpage<1 then m_currpage:=1; end if; if m_currpage>m_totalpage then m_currpage:=m_totalpage; end if; --实现分页查询 v_startrecord:=(m_currpage-1)*m_pagesize+1; v_endrecord:=m_currpage*m_pagesize; v_sql:='select * from (select a.*,rownum r from '|| '(select * from '||m_tablename; if m_strwhere is not null or m_strwhere <> '' then v_sql:=v_sql || 'where 1=1 '||m_strwhere; end if; if m_ordercolumn is not null or m_ordercolumn <> '' then v_sql:=v_sql || 'order by '||m_ordercolumn||''||m_orderstyle; end if; v_sql:=v_sql||')a where rownum<='||v_endrecord||')b where r>=' ||v_startrecord; dbms_output.put_line(v_sql); open v_cur for v_sql; end met_down_query;
阅读全文
0 0
- oracle存储过程分页
- oracle存储过程分页
- Oracle分页存储过程
- Oracle 存储过程分页
- ORACLE分页存储过程
- oracle 分页存储过程
- Oracle分页存储过程
- Oracle分页存储过程
- Oracle存储过程分页
- oracle 分页存储过程
- Oracle存储过程分页
- Oracle分页存储过程
- oracle 分页 存储过程
- Oracle存储过程分页
- oracle分页存储过程
- Oracle分页存储过程
- oracle存储过程分页
- oracle 存储过程分页
- Extjs 例外被抛出且未被接住
- "无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动"问题解决方法
- could not interpret id generator strategy: UUID
- svn,git,wx,phonegap配置问题
- Oracle修改列 增加列 去空格
- Oracle分页存储过程
- Tornado异步笔记(一)--- 异步任务
- 超出表空间"users"的空间限额
- pl/sql 注册机
- pl/sql 中文包
- 目标文件--ELF目标文件
- python django 新建项目问题
- 重构之简化函数调用
- 页面拨打电话、发送短信、保存手机号