• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >DB2 > DB2中通用的存储过程分页程序

DB2中通用的存储过程分页程序

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2017-06-28

匿名通过本文主要向大家介绍了db2存储过程,db2存储过程语法,db2存储过程实例,db2存储过程教程,db2 执行存储过程等相关知识,希望本文的分享对您有所帮助
</div>

CREATE PROCEDURE SALES.DB2PAGINATION(IN ITBNAME VARCHAR(2000),-- 表名
     IN ISHOWFIELD VARCHAR(1000),-- 显示字段
     IN IJOIN VARCHAR(1000),-- 联接条件(如:内联、外联)
     IN IWHERE VARCHAR(2000),-- 查询条件 (注意: 不要加 WHERE)
     IN IORDER VARCHAR(100),-- 排序条件 (注意: 不要加 ORDER BY)
     IN IPAGESIZE INTEGER,-- 页尺寸 如果为0 默认返回前一百万条数据可以认为是返回所有数据
     INOUT IOCURRENTPAGEIX INTEGER,-- 输入和输出:当前页
     OUT OPAGESTARTROW INTEGER,-- 输出:当前开始行
     OUT OPAGEENDROW INTEGER,-- 输出:当前结束行
     OUT OTOTALROWS INTEGER,-- 输出:当前总记录数
     OUT OHASPREVIOUSPAGE INTEGER,-- 输出:是否有上一页
     OUT OHASNEXTPAGE INTEGER,-- 输出:是否有下一页
     OUT OTOTALPAGES INTEGER,-- 输出:总页数
     OUT OERROR VARCHAR(100))-- 输出:错误信息
  RESULT SETS 1
  MODIFIES SQL DATA
  NOT DETERMINISTIC
  LANGUAGE SQL
BEGIN
/**//*----------------------------------------------------------------
* Copyright (C) 2007 Huacius
* 版权所有。
*
* 存储过程分页
*
*
//-----------------------------------------------------------------------*/
DECLARE STRSQL  VARCHAR(6000);-- 主语句
  
DECLARE result CURSOR WITH RETURN TO CALLER FOR S2;
  
DECLARE exit handler FOR sqlexception-- 异常捕获
BEGIN
set OERROR = 'error!';
END;
  
-- BODY start --
if(iwhere <> '') then
set iwhere = ' where ' || iwhere;
end if;
if(iorder <> '') then
set iorder = 'order by ' || iorder;
end if;
if(ijoin <> '') then
set ijoin = ' ' || ijoin;
end if;
 
set strsql = 'select count(*) from ' || itbname || ijoin || iwhere;
prepare s2 from strsql;
open result;
  fetch result into ototalrows;-- 总记录数
  close result;
  
if(ipagesize = 0) then
set ipagesize = 1000000;-- 每页显示数
end if;
  
set ototalpages = (ototalrows - 1) / ipagesize + 1;-- 总页数
  
if(iocurrentpageix < 1) then
set iocurrentpageix = 1;-- 当前页
else
if(iocurrentpageix > ototalpages) then
set iocurrentpageix = ototalpages;
end if;
end if;
  
set opagestartrow = ipagesize * (iocurrentpageix -1) + 1;-- 每页开始数
if(iocurrentpageix = ototalpages) then
set opageendrow = ototalrows;-- 每页结束数
else
set opageendrow = ipagesize * iocurrentpageix;
end if;
  
if(iocurrentpageix > 1) then
set ohaspreviouspage = 1;-- 是否有上一页
else
set ohaspreviouspage = 0;
end if;
  
if(iocurrentpageix < ototalpages) then
set ohasnextpage = 1;-- 是否有下一页
else
set ohasnextpage = 0;
end if;
  
set strsql = 'select * from (select rownumber() over(' || iorder || ') as rownum,'
|| ishowfield
|| ' from '
|| itbname
|| ijoin
|| iwhere
|| ') as temp where rownum between ' || rtrim(char(opagestartrow)) || ' and ' || rtrim(char(opageendrow));
prepare s2 from strsql;
open result;
-- BODY end --
  
END

</div> </div> </div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • DB2 存储过程中如何使用 Optimization Profile
  • 为何修改机器名后DB2实例会无法启动
  • DB2下数据转移任务操作实例
  • DB2 V7存储过程构建环境设置
  • 实例讲解IBM DB2中提高并发度的三个方法
  • 为什么修改机器名后DB2实例会无法启动
  • 讲解主机DB2 9存储过程的规划和实施技巧
  • 实例讲解DB2中的表空间
  • DB2通用升级方法的一般过程
  • DB2 认证考试准备教程

相关文章

  • 2017-06-28DB2 Magazine 中文版: 关注 XQuery
  • 2017-06-28IBM在数据库领域十件大事
  • 2017-06-28如何综合掌握 DB2 和 Informix
  • 2017-06-28DB2在控制中心点选数据库时出现:SQL1031N问题
  • 2017-06-28三种级别的DB2数据库字符集的设置与修改
  • 2017-06-28DB2 9.7 中的 SQL 兼容性:从触发器到对象改进(演示新的 Oracle 兼容性特性)
  • 2017-06-28配置 DB2 pureScale 利用 DS8700 Metro Mirror 进行灾难恢复
  • 2017-06-28Data Studio Administrator V1.2 中的数据保留和数据迁移
  • 2017-06-28使用DB2look实用程序重新创建优化器访问计划(6)
  • 2017-06-28DB2 V7存储过程构建环境设置

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • DB2 存储过程开发最佳实践
    • DB2 V9.7 语句集中器的使用
    • 使用DB2 UDB OLAP函数
    • DB2 for z/OS Web 应用程序死锁分析
    • 使用 Rational Data Architect 定义和实施数据对象命名标准
    • 在IBM DB2通用数据库中实现会话间的警告
    • 讲解DB2数据库文件系统已满的解决方法
    • 基于IBM I服务器的DB2自动优化工具
    • DB2 9 颠覆关系型数据库?
    • 使用 IBM Optim Performance Manager for DB2 快速有效的定位、解决锁问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有