This Domain(Admin5.com) is for Sale:

DB2

时间:2007-12-23  来源:不详  作者:迈克DB


--由于db2和oracle的不同,db2必须先创建一个oracle相连的别名ADMINISTRATOR.*,而不像oracle直接用@to_jif下面是oracl的源码
--v_sql_str:='updatetransfer_task
--setrows_cnt=rows_cnt (selectcount(*)
--fromcal.acct_item_billingday_'||rec.bill_task_id||'@to_jf)
--wheretransfer_id='||in_transfer_id;
--updatebydengl2002-12-08

setstmt='createnicknameADMINISTRATOR.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;
setv_sql_str='updateipd.transfer_tasksetrows_cnt=rows_cnt (selectcount(*)from'||'ADMINISTRATOR.ACCT_ITEM_BILLINGDAY_'||char(c_bill_task_id)||'wheretransfer_id='||char(in_transfer_id); 织梦好,好织梦

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_msg=char(in_TRANS_TYPE_id)||'传送出错!SQLCODE:'||char(o_err_no);
seto_err_no=1;
return0;
endif;
commit;
endloopfetch_loop1;
closebill_task;
--汇总数据写入完毕

--建立接口表并插入数据

---整理表空间。
callipd.bi_settle_tablespace(in_Transfer_id,
o_err_no,
o_err_msg);--调用此过程,检测表空间
--返回值不为0,则不执行返回
setstate='整理表空间';
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;
endif;

--创建任务需要的接口表并把多个表的数据整合到一个表中去,假如是oracle就要使用零时表而db2用别名就代替了
setstmt='createtableipd.'||in_TRANSFER_name; copyright dedecms
callipd.sp_exec_dsql(stmt,o_err_no);
setstate='创建接口表ipd.'||in_TRANSFER_name;
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;
endif;

--建表完毕开始组合sql语句

openbill_taskusingv_cycle_str;
fetch_loop2:
loop
fetchbill_taskintoc_bill_task_id;
ifn_num=1
then
setv_sql_str='interintoipd.'||in_TRANSFER_name||'select*fromACCT_ITEM_BILLINGDAY_'||char(c_bill_task_id);
else
setv_sql_str=v_sql_str||'unionselect*fromADMINISTRATOR.ACCT_ITEM_BILLINGDAY_'||char(c_bill_task_id);
endif;
setn_num=n_num 1;
endloopfetch_loop2;

--组合完毕

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息