DB2
时间:2007-12-23 来源:不详 作者:迈克DB
--setv_sql_str:=v_sql_str||')';
setstate='向接口表ipd.'||in_TRANSFER_name||'插入数据';
callipd.sp_exec_dsql(v_sql_str,o_err_no);
ifo_err_no<>0
then
updateipd.TRANSFER_TASK
setDEAL_FLAG=-1
whereTransfer_id=in_Transfer_id;
commit;
seto_err_msg='处理'||state||'出错'||'错误代码SQLCODE:'||CHAR(o_err_no);
seto_err_no=1;
return0;
else
updatetransfer_task
setdeal_flag=2
wheretransfer_id=in_transfer_id;
seto_err_no=0;
seto_err_msg=o_err_msg||'任务号为'||char(in_TRANSFER_id)||'抽取成功!';
endif;
commit;
--数据插入完毕
--删除联合体的别名
openbill_taskusingv_cycle_str;
fetch_loop3:
loop
setstmt='dropnicknameADMINISTRATOR.ACCT_ITEM_BILLINGDAY_'||char(c_bill_task_id)||'forbill.cal.acct_item_billingday_'||char(c_bill_task_id);
--记录
setstate='删除别名'||'ADMINISTRATOR.ACCT_ITEM_BILLINGDAY_'||char(c_bill_task_id);
callipd.sp_exec_dsql(stmt,o_err_no);
织梦内容管理系统
--o_err_no是返回的SQLCODE
ifo_err_no<>0
then
updateipd.transfer_task
setdeal_flag=-1
wheretransfer_id=in_transfer_id;
seto_err_msg='处理'||state||'出错'||'错误代码SQLCODE:'||CHAR(o_err_no);
seto_err_no=1;
return0;
endif;
endloopfetch_loop3;
-----下账数据接口
elseifin_trans_type_id=8
then
--帐务表的联合体别名已经建好了
setv_sql_str='updateipd.transfer_tasksetrows_cnt=(selectcount(*)fromADMINISTRATOR.acct_itema,ADMINISTRATOR.billing_cyclebwherea.billing_cycle_id=b.billing_cycle_idandsubstr(char(b.CYCLE_BEGIN_DATE),1,4)||substr(char(b.CYCLE_BEGIN_DATE),6,2)='''||upper(char(v_cycle_str))||''')whereTransfer_id='||char(in_Transfer_id);
setstate='汇总acct_item数据';
callipd.sp_exec_dsql(v_sql_str,o_err_no);
ifo_err_no<>0
then
updateipd.transfer_task
setdeal_flag=-1
wheretransfer_id=in_transfer_id;
seto_err_no=1;
seto_err_msg=state||char(in_TRANS_TYPE_id)||'传送出错!'; 内容来自dedecms
return0;
endif;
--整理表空间。
callipd.bi_settle_tablespace(in_Transfer_id,
o_err_no,
o_err_msg);--调用此过程,检测表空间
--返回值不为0,则不执行返回
setstate='为acct_item整理表空间';
ifo_err_no<>0
then
updateipd.TRANSFER_TASK
setDEAL_FLAG=-1
whereTransfer_id=in_Transfer_id;
seto_err_msg=state||'任务号'||char(in_TRANS_TYPE_id)||'传送出错!SQLCODE:'||char(o_err_no);
seto_err_no=1;
commit;
return0;
endif;
--在任务表中将状态改为1,预备传送数据.
updateipd.TRANSFER_TASK
setDEAL_FLAG=1
whereTransfer_id=in_Transfer_id;
commit;
setv_sql_str='createtableipd.'||in_TRANSFER_name||'likeADMINISTRATOR.ACCT_item)';
callipd.sp_exec_dsql(v_sql_str,o_err_no);
setstmt='insetintoipd.'||in_TRANSFER_name||'selectACCT_ITEM_ID,SERV_ID,SERV_SEQ_NBR,EXT_SERV_ID,ACCT_ID,ACCT_SEQ_NBR,ACCT_ITEM_TYPE_ID,CHARGE,BILLING_CYCLE_ID,CREATED_DATE,PARTNER_ID,BILL_SERIAL_NBR,STATE,STATE_DATE,EXCHANGE_ID,PAYMENT_METHODfromADMINISTRATOR.acct_itemwherebilling_cycle_idlike'''||upper(v_cycle_str)||'''';
文章评论
共有位Admini5网友发表了评论 查看完整内容