zoukankan      html  css  js  c++  java
  • 我的 Oracle 分页存储过程

    --定义一个包,在包中定义类型test_cursor,是个游标
    create or replace package testpackage as
    type test_cursor is ref cursor;
    end testpackage;
    
    
    
    --分页过程
    --输入表名,每页显示记录数,当前页
    --输出总记录数,总页数,和返回结果
    create or replace procedure fenye(
    tableName in varchar2, --表名
    pageTotal in number,   --每页条数
    pageNow in number,     --显示第几页
    rowTotal out number,   --总共条数
    pageCount out number,  --总共页数
    info out testpackage.test_cursor --详细信息
    ) is
    v_begin number :=(pageNow-1)*pageTotal;
    v_end number :=pageNow*pageTotal;
    v_sql varchar2(2000);
    begin 
    v_sql :='SELECT * FROM '||tableName||' WHERE rowid in
    (
    SELECT rid FROM 
    (
    SELECT rownum rn,rid from 
    (
    SELECT rowid rid FROM '||tableName||'
    )
    WHERE rownum<='||v_end||'
    )
    WHERE rn>='||v_begin||'
    );';
    open info for v_sql;
    v_sql:='select count(*) into FROM '||tableName;
    --执行sql语句
    execute immediate v_sql into rowTotal;
    if mod(rowTotal,pageTotal)=0
    then pageCount:=rowTotal/pageTotal;
    else
    pageCount:=rowTotal/pageTotal+1;
    end if;
    close test_cursor; --关闭游标
    end;
  • 相关阅读:
    反射、面向对象(基础篇)
    配置文件
    模块补充 、迭代器和 生成器
    模块
    正则表达式
    冒泡排序、递归和简单装饰器
    使用Apache Archiva管理Maven仓库
    AppScan9.0.3.5漏洞扫描记录
    Linux环境下安装Websphere8.5.5
    如何排查网络通讯状况
  • 原文地址:https://www.cnblogs.com/zhiqixue/p/2626675.html
Copyright © 2011-2022 走看看