DB2存储过程入门实例.docx
上传人:sy****28 上传时间:2024-09-14 格式:DOCX 页数:9 大小:22KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

DB2存储过程入门实例.docx

DB2存储过程入门实例.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

DB2存储过程入门实例我看到很多人要sql的存储过程的例子,所以我就把我以前写的发出来,和大家一起探讨!这段代码很全,有出错处理,游标动态定义,联合体用户的使用,分支和循环语句都有。CREATEPROCEDUREIPD.st_inter_PROF(INin_Transfer_iddec(6,0),INin_TRANS_TYPE_iddec(2,0),INin_begin_datetimestamp,INin_TRANSFER_namevarchar(1024),OUTo_err_noint,OUTo_err_msgvarchar(1024))LANGUAGESQL--------------------------------------------------------------------------SQL存储过程----------------------------------------------------------------------------抽取acct_item_billingday,acct_item表----author:zsk2002/06/27----updatebyzskat2002/11/25asSZ----movefromoracletodb2bydengl2002-12-8assz----返回值结果:0:执行通过----1:执行不通过-----1:调用本过程时异常出错----联合体用户是ADMINISTRATORBILL.BILL.*/BILL.CAL.*---------------------------------------------------------------------------------------------------------------------------------------------P1:BEGIN--临时变量出错变量declarerecintegerdefault0;declareSQLCODEintegerdefault0;declarestmtvarchar(1024);declareat_endintegerdefault0;declarer_codeintegerdefault0;declarestatevarchar(1024)default'AAA';--记录程序当前所作工作declaretemp_intintegerdefault0;--声明变量declarev_cycle_strvarchar(1000);declarev_sql_strvarchar(2000);declaren_numbigint;declaren_rowsbigint;declaren_rows_allbigint;--声明放游标的值--声明动态游标存储变量declarec_bill_task_idinteger;declarebill_taskcursorfors1;--声明出错处理DECLAREEXITHANDLERFORSQLEXCEPTIONbeginsetr_code=SQLCODE;seto_err_no=1;seto_err_msg='处理'||state||'出错'||'错误代码SQLCODE:'||CHAR(r_code);end;DECLAREcontinueHANDLERfornotfoundbeginSETat_end=1;seto_err_no=100;end;--开始拉selectdeal_cycleintov_cycle_strfromipd.transfer_taskwheretransfer_id=in_transfer_Id;--v_cycle_str:='%'||v_cycle_str;ifin_trans_type_id=7thensetn_num=1;---将汇总数据写入任务表updateipd.transfer_tasksetrows_cnt=0wheretransfer_id=in_transfer_id;--声明动态游标setstmt='selectdistinctbill_task_idfromADMINISTRATOR.bill_task_cyclea,ADMINISTRATOR.billing_cyclebwheresubstr(char(b.CYCLE_BEGIN_DATE),1,4)||substr(char(b.CYCLE_BEGIN_DATE),6,2)='||char((integer(v_cycle_str)-1))||'anda.billing_cycle_id=b.billing_cycle_id';prepares1fromstmt;--executes1;op