SET SCHEMA TSISUSR ;
CREATE PROCEDURE "TSISUSR"."PROC_MIGRATE_TWCSDATA_NAME"
(OUT "PO_I_RETCODE" INTEGER,
OUT "PO_S_RETTEXT" VARCHAR(8000),
OUT "PO_S_RETINFO" VARCHAR(200),
IN "PI_D_DATE" DATE,
IN "PI_S_TASKID" BIGINT,
IN "PI_S_TASKNUM" VARCHAR(10),
IN "V_I_LASTERRORSTEP" BIGINT
)
SPECIFIC "TSISUSR"."SQL180706191131978"
LANGUAGE SQL
NOT DETERMINISTIC
CALLED ON NULL INPUT
EXTERNAL ACTION
OLD SAVEPOINT LEVEL
MODIFIES SQL DATA
INHERIT SPECIAL REGISTERS
-- SQL 存储过程
-- PO_I_RETCODE 返回码(0-成功,其他-失败)
-- PO_S_RETTEXT 返回最后执行语句
-- PO_S_RETINFO 返回码文本说明
-- PI_D_DATE 账务日期
-- PI_S_TASKID 自增任务ID
-- PI_S_TASKNUM 任务编号
-- v_i_lasterrorstep 上次错误步骤
--------------------------------------------------------------------
-----**************** 功能说明 ****************** ------------
--------------------------------------------------------------------
-- 国库事后监督情况报告表
--db2 "call PROC_MIGRATE_TWCSDATA(?,?,?,'2018-03-10',861,'00034',84)"
P1: BEGIN
---------------------------------------------------------------------
-------*****************1.变量声明**********************--------------
---------------------------------------------------------------------
-- 声明变量
DECLARE v_Stmt VARCHAR(5000) DEFAULT ' ';
DECLARE v_Stmt_tmp1 VARCHAR(100) DEFAULT ' ';
DECLARE v_Stmt_tmp2 VARCHAR(5000) DEFAULT ' ';
DECLARE v_Stmt_tmp3 VARCHAR(100) DEFAULT ' ';
DECLARE v_Stmt_tmp4 VARCHAR(5000) DEFAULT ' ';
DECLARE v_Stmt_tmp5 VARCHAR(5000) DEFAULT ' ';
--表定义
DECLARE v_tbl_target VARCHAR(100) DEFAULT '';
--库定义
DECLARE v_database_sdb VARCHAR(20) DEFAULT '';
-- 声明错误代码
DECLARE SQLCODE INT DEFAULT 0;
DECLARE CODE INT DEFAULT 0;
DECLARE SQLSTATE CHAR(5) DEFAULT '00000';
DECLARE v_s_errmsg VARCHAR(500) DEFAULT ' ';
DECLARE v_i_step INT DEFAULT 0;
DECLARE v_s_errtype varchar(100) DEFAULT ' ';
-- 声明异常处理
DECLARE exit handler for SQLEXCEPTION
begin
GET DIAGNOSTICS EXCEPTION 1 v_s_ErrMsg = MESSAGE_TEXT;
SET CODE = SQLCODE;
values(CODE,'错误状态:'||SQLSTATE||'错误步骤:'||v_i_step||' 说明:'||v_s_ErrMsg,v_Stmt) into po_i_RetCode,po_s_RetINFO,po_s_RETTEXT;
insert into tl_loadmergeerror values (PI_S_TASKID,PI_S_TASKNUM,v_s_errtype,CODE||v_s_errmsg,PI_D_DATE,current TIMESTAMP,v_i_step);
IF '-668' = CODE or '-3502'= CODE or '-911'= CODE THEN
CALL SYSPROC.ADMIN_CMD('LOAD FROM /dev/null OF DEL TERMINATE INTO '||v_tbl_target||' ALLOW NO ACCESS');
END IF;
end;
---------------------------------------------------------------------
-----------************2.查询条件**********---------------
---------------------------------------------------------------------
SET v_Stmt_tmp1 = 'load from (database ';
SET v_database_sdb = ' TSISSDB ';
SET v_Stmt_tmp2 = ' select * from TABLE';
SET v_Stmt_tmp3 = ') of cursor warningcount 1 ';--warningcount 1
SET v_Stmt_tmp4 = ' insert into ta_HAND_GZJKSYL ';
SET v_Stmt_tmp5 = ' COPY YES TO /loadtmp DATA BUFFER 32767 ALLOW READ ACCESS LOCK WITH FORCE';
----TC_TV_IN_CORRHANDBOOK_ORI 到 ta_HAND_GZJKSYL
SET v_i_step = 1;
SET v_Stmt_tmp2 = ' SELECT C_BDGKIND,C_BDGLEVEL,C_DIVTYPE,C_TRIMFLAG,D_ACCEPT,D_ACCT,F_CORRAMT,I_CHGNUM,I_OFMONTH,I_SEQNO,S_AIMTRECODE,S_ASTFLAG,S_BDGSBTCODE,S_BIZTYPE,S_BOOKORGCODE,S_CHECKERID,S_CORRBIZTYPE,S_INPUTERID,S_PAYEETRECODE,S_REASONCODE,S_TAXORGCODE,S_TRASRLNO,S_TRASTATE,S_VOUNO,TS_SYSUPDATE,''0'',''TC_TV_IN_CORRHANDBOOK_ORI'' from TC_TV_IN_CORRHANDBOOK_ORI ';
SET v_Stmt_tmp4 = 'insert into ta_HAND_GZJKSYL(C_BDGKIND,C_BDGLEVEL,C_DIVTYPE,C_TRIMFLAG,D_ACCEPT,D_ACCT,F_CORRAMT,I_CHGNUM,I_OFMONTH,I_SEQNO,S_AIMTRECODE,S_ASTFLAG,S_BDGSBTCODE,S_BIZTYPE,S_BOOKORGCODE,S_CHECKERID,S_CORRBIZTYPE,S_INPUTERID,S_PAYEETRECODE,S_REASONCODE,S_TAXORGCODE,S_TRASRLNO,S_TRASTATE,S_VOUNO,TS_SYSUPDATE,s_AuditResult,s_SrcTableCode)';
SET v_tbl_target = 'ta_HAND_GZJKSYL';
SET v_Stmt = v_Stmt_tmp1||v_database_sdb||v_Stmt_tmp2||v_Stmt_tmp3||v_Stmt_tmp4||v_Stmt_tmp5;
IF v_i_step>=v_i_lasterrorstep THEN
CALL SYSPROC.ADMIN_CMD(v_Stmt);
commit;
END IF;
END P1;