`
menjoy
  • 浏览: 420528 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

DB2中存储过程分页程序

阅读更多

CREATE PROCEDURE DB2ADMIN.P_TEMP_YEARREPORT_QUERY
 (OUT "ERRCODE" INTEGER,
  OUT "ERRMSG" VARCHAR(50),
  IN "V_USERNO" VARCHAR(20),
  IN "V_KDBUREAID" VARCHAR(100),
  IN "V_PAGE" INTEGER,
  IN "V_PAGESIZE" INTEGER,
  OUT "O_TOTALROW" INTEGER,
  OUT "O_TOTALPAGE" INTEGER,
  OUT "O_HASNEXT" INTEGER,
  OUT "O_HASPREV" INTEGER
 )
  SPECIFIC DB2ADMIN.SQL070601162123746
  DYNAMIC RESULT SETS 1
  LANGUAGE SQL
  NOT DETERMINISTIC
  CALLED ON NULL INPUT
  EXTERNAL ACTION
  OLD SAVEPOINT LEVEL
  MODIFIES SQL DATA
  INHERIT SPECIAL REGISTERS
  BEGIN

--声明
declare pBegin integer;
declare pEnd integer;
declare ql varchar(500);
declare ql_count varchar(500);
declare result CURSOR WITH RETURN TO CALLER FOR RS;

--获取总记录数
set ql_count = 'SELECT count(*)  FROM DB2ADMIN.T_TEMP_YEARREPORT T1;
prepare rs from ql_count;
open result;
fetch result into o_totalrow;
close result;

--每页显示数量,默认1000000;
if(v_pagesize = 0) then
   set v_pagesize = 1000000;
end if;

--计算总页数
set o_totalpage = (o_totalrow-1)/v_pagesize + 1;

--处理当前页
if(v_page<1) then
  set v_page = 1;
else
  if(v_page>o_totalpage) then
     set v_page = o_totalpage;
  end if;
end if;

--开始和结束行
set pBegin = (v_page-1) * v_pagesize + 1;
if(v_page = o_totalpage) then
  set pEnd = o_totalrow ;
else
  set pEnd = v_pagesize * v_page;
end if;

--是否有下页
set o_hasnext = 0;
if(v_page<o_totalpage) then
  set o_hasnext = 1;
end if;

--是否有上页
set o_hasprev = 0;
if(v_page>1) then
  set o_hasnext = 1;
end if;

set ql = 'SELECT * FROM (SELECT *  FROM DB2ADMIN.T_TEMP_YEARREPORT T1 Where T1.kdbureaid = v_kdbureaid) as t where rownum  between '
          || rtrim(char(pBegin)) || ' and ' || rtrim(char(pEnd));
prepare rs from ql;
open result;

set errcode = 1;
set errmsg = '成功';

END;

分享到:
评论

相关推荐

    db2编写的存储过程分页

    ### DB2存储过程实现分页查询 在数据库应用开发中,分页查询是常见的需求之一。对于大型数据集,直接查询所有数据不仅消耗资源,还会降低用户体验。因此,实现高效、可靠的分页功能至关重要。本篇文章将详细介绍...

    sql server 2000 分页存储过程,DB2分页存储过程,db2自动生成流水号存储过程

    这个DB2的存储过程同样接收`startIndex`和`pageSize`参数,然后使用`OFFSET`和`FETCH NEXT`来实现分页查询。 至于DB2自动生成流水号,可以利用`IDENTITY`属性或者`SEQUENCE`对象。`IDENTITY`常用于单表主键自增,如...

    DB 2通用分页存储过程

    这个存储过程的使用,使得开发者能够方便地在应用程序中实现分页查询,无需每次都编写复杂的SQL逻辑,提高了代码的复用性和可维护性。同时,由于其动态生成查询的能力,可以应对不同场景下的分页需求,增强了数据库...

    db2数据库sql语句大全

    这条命令与第2条类似,但这里没有使用`online`参数,因此这将是一个脱机备份,这意味着在备份过程中数据库将不可用。 #### 4. 创建表 ```sql createtable( "column1" integer not null, "column2" varchar(30) ); `...

    Spring+mybatis+PageHelper分页插件

    PageHelper不仅支持物理分页,还支持逻辑分页,同时兼容多种数据库,如MySQL、Oracle、DB2等。 在"描述"中提到,这是一个新手项目,后端已经测试正常,这意味着分页功能已经在服务器端实现了。然而,前端网页部分...

    oracle面试题

    以上就是关于Oracle中`RowID`、`RowNum`的使用方法,以及Oracle分页语句和存储过程的创建与使用的详细介绍。这些知识点对于Oracle开发人员来说非常重要,熟练掌握它们能够帮助你在实际工作中更高效地解决问题。

    DevPager Beta 1.0 多功能支持长文章分页控件.rar

    支持长文章分页/Access/Sql2000/Oracle/MySql/DB2/存储过程/支持不产生ViewState/图片分页/URL重写/Xml 样式自己用CSS定,可以随意改!对于Web2.0 页面构架师来说,追求代码完美,也许这是你最好的选择~,本控件支持不...

    DB2 LUW to UDB400 v3

    - 在移植过程中,如果应用程序使用了特定于 DB2 LUW 的扩展器,可能需要调整这些自定义数据类型和操作,以确保它们在 UDB400 上也能正常工作。 - 需要审查当前使用的扩展器,并评估是否需要在 UDB400 中实现类似的...

    DB2常用命令

    - `db2 "call 清空(12)"`:调用存储过程`清空`并传入参数`12`。 - **导出表结构**: - `db2 look -e -d ods_ibb -t M_IBB_F_F_TX_CIB_SCURA &gt; tmp2.sql`:将表`M_IBB_F_F_TX_CIB_SCURA`的DDL(数据定义语言)导出...

    jsp分页技术实现.docx

    在Java Web应用程序中,为了简化分页代码,我们可以创建工具类。这里提到了两个工具类:PagedStatement和RowSetPage。PagedStatement是基于PreparedStatement的,它负责关闭数据库连接并支持动态设置参数。...

    SQL经典面试题整合.pdf

    在SQL面试中,经常会遇到关于数据库恢复、存储过程优缺点、分页查询以及数据库规范化的问题。以下是对这些知识点的详细解释: 1. **数据库恢复** - **日志恢复** 是一种恢复策略,适用于在特定时间点恢复数据。在...

    java开发常见知识点

    DB2数据库中,可以使用窗口函数`ROW_NUMBER()`配合`OVER`子句进行分页,例如: ```sql SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id ASC) AS rowid, * FROM table WHERE rowid ) WHERE rowid &gt; ...

    DEV呈现记录中的图片

    "cxGrid" 是一个常见的开发组件,用于创建数据网格视图,它允许开发者在Windows应用程序中显示和操作表格数据。cxGrid通常与DevExpress库相关,这是一个强大的Visual Studio组件套件,包含用于创建高效、美观的用户...

    AS400_中文培训教程

    - **DB2/400与INFORMIX在C语言程序中的部分区别**:比较了两种数据库系统在编程接口上的异同。 - **FAQ集锦**:提供了一系列关于AS/400系统常见问题的解答。 这份教材是为新员工和初学者设计的,目的是帮助他们快速...

    FluentData微型ORM v2.3.0源码2012813

    支持存储过程。 支持分页。 查询自动映射或自定义映射到自己的实体类型(如产品类型)或动态类型(NET 4.0新)。 安全,使用索引或命名参数,以防止SQL注入。 强大的性能。 可以对任何现有的业务对象和业务层不需要...

    dbeaver-ce-21.0.5-x86-64 一个很好用的 数据库客户端,支持各大主流数据库

    安装过程中,用户可以根据自己的需求选择安装路径和组件,确保软件能无缝融入到个人的工作环境中。 总的来说,Dbeaver CE 21.0.5-x86_64是一款强大且灵活的数据库管理工具,它集成了多种实用功能,旨在提升数据库...

    运用JAVA进行数据库应用开发培训

    数据库对象是数据库中的基本元素,如表(table)、字段(column)、主键(primary key)、索引(index)、外键(foreign key)、约束(check constraint)、视图(view)、存储过程(procedure)、函数(function)...

    WebSphere Application Server V6 Security Handbook

    - **DB2 示例**:利用 DB2 数据库作为后端存储用户信息,实现更为复杂的身份验证逻辑。 #### 三、全局安全配置 ##### 3.1 全局安全简介 全局安全(Global Security)是 WebSphere Application Server 中一项重要的...

    Java学习笔记

    - **驱动类未找到**:如果出现`java.lang.ClassNotFoundException`,说明没有正确地添加驱动程序的JAR文件到项目中。解决方法是将相应的驱动JAR文件放入项目的`WEB-INF/lib`目录下。 - **连接被拒绝**:当出现`java...

Global site tag (gtag.js) - Google Analytics