关于DB2存储过程的一点经验

本文记录了一次使用DB2存储过程处理Birt报表项目的经验,旨在通过存储过程直接在数据库层面将假日数据用前一天的数据补齐。过程中遇到了如cursor敏感性、变量声明顺序和性能优化等问题,并分享了解决方案。
摘要由CSDN通过智能技术生成

最近遇到一个Birt报表项目比较复杂。领导的要求是希望得到算上双休日和假期的每天的平均余额。可是数据库中只有工作日的数据,假日是没有数据的。好在假日也没有资金变动,只要用前一天的数据补上假日的数据就好了。
之前我的做法都是把数据读取到Java端,再做处理。这次想要多研究一下sql的存储过程,决定利用存储过程直接把原表中假日的数据用前一天的数据补齐。期间遇到了不少问题,所以把经验记录下来。
存储过程的代码如下:

DROP SPECIFIC PROCEDURE "DB2ADMIN"."SQL150702173356000";

SET SCHEMA DB2ADMIN;

SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","DB2ADMIN";

CREATE PROCEDURE "DB2ADMIN"."UPDATE_EVERYDAY_BAL" ( ) 
  SPECIFIC "DB2ADMIN"."SQL150702173356000"
  LANGUAGE SQL
  NOT DETERMINISTIC
  CALLED ON NULL INPUT
  EXTERNAL ACTION
  OLD SAVEPOINT LEVEL
  MODIFIES SQL DATA
  INHERIT SPECIAL REGISTERS
  begin
DECLARE @rec_id varchar(42);
DECLARE @cmp_code varchar(9);
DECLARE @line_id varchar(9);
DECLARE @cur_code varchar(6);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值