设为首页 收藏本站
查看: 839|回复: 0

[经验分享] DB2 存过编写记录

[复制链接]

尚未签到

发表于 2016-11-15 08:32:53 | 显示全部楼层 |阅读模式
  将表中的数据游标获取,然后更新相应的字段数据
  SQLCODE 要定义,用于循环结束判断。

CREATE PROCEDURE "HDEVSHEAM"."LOANUPDATEEFFTYPE" ( )
BEGIN
DECLARE V_EFFTYPE VARCHAR(10);
DECLARE V_APPNO VARCHAR(30);
DECLARE V_POLNO VARCHAR(30);
DECLARE SQLCODE INT;
DECLARE C1 CURSOR
FOR select (SELECT case when l.SOS_FLAG='Y' then '20005' else '20004' end FROM LOAN_APP_FORM L WHERE l.LOAN_NO=i.LOAN_NO),I.APPNO,I.POLNO from  LOAN_APPNO_POLICY_INSURED i with ur;
OPEN C1;
FETCH_LOOP :LOOP
FETCH C1 INTO V_EFFTYPE,V_APPNO,V_POLNO;
IF (SQLCODE<>0) THEN
LEAVE FETCH_LOOP;
END IF;
/*IF (V_APPNO IS NULL) AND (V_POLNO IS NULL) THEN
LEAVE FETCH_LOOP;
END IF;*/
IF(LENGTH(V_APPNO)>1) THEN
UPDATE app_form a  set eff_type =V_EFFTYPE WHERE A.APPNO=V_APPNO;
END IF;
IF(LENGTH(V_POLNO)>1) THEN
UPDATE POLICY_FORM SET EFF_TYPE = V_EFFTYPE WHERE POLNO =V_POLNO;
END IF;
END LOOP FETCH_LOOP;
--- END FOR;
close C1;
END;

  传参数例子:

CREATE PROCEDURE "HDEVSHEAM"."LOANUPDATEEFFTYPE1"
(IN "C_APPNO" VARCHAR(30) )
BEGIN
DECLARE V_EFFTYPE VARCHAR(10);
DECLARE V_APPNO VARCHAR(30);
DECLARE V_POLNO VARCHAR(30);
DECLARE SQLCODE INT;
DECLARE C1 CURSOR
FOR select (SELECT case when l.SOS_FLAG='Y' then '20005' else '20004' end FROM LOAN_APP_FORM L WHERE l.LOAN_NO=i.LOAN_NO),I.APPNO,I.POLNO from  LOAN_APPNO_POLICY_INSURED iwhere I.APPNO=C_APPNO;
OPEN C1;
FETCH_LOOP :LOOP
FETCH C1 INTO V_EFFTYPE,V_APPNO,V_POLNO;
IF (SQLCODE<>0) THEN
LEAVE FETCH_LOOP;
END IF;
/*IF (V_APPNO IS NULL) AND (V_POLNO IS NULL) THEN
LEAVE FETCH_LOOP;
END IF;*/
IF(LENGTH(V_APPNO)>1) THEN
UPDATE app_form a  set eff_type =V_EFFTYPE WHERE A.APPNO=V_APPNO;
END IF;
IF(LENGTH(V_POLNO)>1) THEN
UPDATE POLICY_FORM SET EFF_TYPE = V_EFFTYPE WHERE POLNO =V_POLNO;
END IF;
END LOOP FETCH_LOOP;
--- END FOR;
close C1;
END;

CREATE PROCEDURE "HDEVSHEAM"."GET_DZ_NO"
(INOUT "ODZNO" VARCHAR(30),
IN "ICVCHTYP" VARCHAR(2),
IN "ICDPTCDE" VARCHAR(11),
IN "ICYEAR" VARCHAR(4),
IN "ICPRODNO" VARCHAR(7),
IN "INUSR" VARCHAR(30),
IN "UPDATEMARK" INTEGER,
INOUT "ICFLAG" INTEGER
)
/*
产生系统单证号
ODZNO           输入输出系统单证号
ICVCHTYP        单证类型
ICDPTCDE        机构编码
ICYEAR          日期年
ICPRODNO        产品编码
INUSR           操作员
UPDATEMARK      是否更新标志    1--更新序号表    0--不更新      主要是财务接口用来判断
--ICFLAG          成功标志
*/
BEGIN
DECLARE MTK_RETURN_COND CONDITION FOR SQLSTATE 'OR001';
DECLARE EXIT HANDLER FOR MTK_RETURN_COND
BEGIN
END;
BEGIN
--|       /*****************中华联合业务号规则*****************************************
--|      1.保单号、批单号、赔案号编码:
--|      格式(共19位):XX     XX      XXXXXXXX          XXXX    XXXXXX
--|                      标识   年度    机构(支公司)    险种    流水号
--|
--|      其中”标识”产用智软公司的现有规则,原1位变成2位,前面补零
--|
--|      2.单证号: 2位年 +  2位 省代码 + 2位 中支代码 + 9位流水号(需要改程序,不是存储过程产生)
--|
--|      3.其他未尽的业务号规则,原则上按照智软公司现有规则处理,如果智软方面有疑问的请提出来确认
--|
--|      ******************单证类型icVchTyp参数的说明*********************************
--|      1 ,保单
--|              保单号      =  标识(1)+机构(4)+产品(4)+年份(4)+流水号(6)
--|      3 ,批单
--|              批单号      =  保单号+'-'+XX
--|      4 ,赔案
--|              赔案号      =  标识(1)+机构(4)+产品码(4)+年份(4)+流水号(6)
--|      5 ,投保单
--|              投保单号 = 标识(1)+机构(4)+产品码(4)+年份(4)+流水号(6)
--|      6 ,网销保单
--|              保单号      =  标识(6)+机构(4)+产品(4)+年份(4)+流水号(6)
--|      7 ,批改申请单
--|              批改申请单  = 保单号+'A'+XX
--|      9 ,报案
--|              报案号      = 标识(1)+机构(4)+产品码(4)+年份(4)+流水号(6)
--|      L3,结案归档号
--|              结案归档号  = 标识'6'(1)+机构(4)+产品码(4)+年份(4)+流水号(6)
--|      01,追偿案件
--|              追偿立案号  = 标识'z'(1)+机构(4)+产品(4)+年份(4)+二级分类'1'(1)+流水号(5)
--|      02,追偿案件
--|              追偿结案号  = 标识'z'(1)+机构(4)+产品(4)+年份(4)+二级分类'2'(1)+流水号(5)
--|      A ,合作协议
--|              合作协议号  =  标识(1)+分公司(2)+年份(4)+流水号(6)
--|      B ,代理协议
--|              代理协议号  =  标识(1)+分公司(2)+年份(4)+流水号(6)
--|      C,预约协议
--|              预约协议号  =  标识(1)+分公司(2)+年份(4)+流水号(6)
--|      M ,赔款
--|              赔款收据号  = 标识(1)+机构(4)+年份(4)+产品大类(2)+流水号(5)
--|      R ,保费收据
--|              保费收据号  = 标识(1)+机构(4)+年份(4)+产品大类(2)+流水号(5)
--|      S ,手续费收据
--|              手续费收据号 = 标识(1)+机构(4)+年份(4)+产品大类(2)+流水号(5)
--|      U ,退保费
--|              退保费收据号 = 标识(1)+机构(4)+年份(4)+产品大类(2)+流水号(5)
--|      N ,无赔退费
--|              无赔退费收据号 = 标识(1)+机构(4)+年份(4)+产品大类(2)+流水号(5)
--|      K ,经纪费
--|              经纪费收据号 = 标识(1)+机构(4)+年份(4)+产品大类(2)+流水号(5)
--|      D ,约定退费
--|              约定退费收据号 = 标识(1)+机构(4)+年份(4)+产品大类(2)+流水号(5)
--|      E ,代理人
--|
--|      F ,经纪人
--|
--|      G ,其它保险公司
--|
--|      *****************************************************************************/
DECLARE v_serieno BIGINT;  --序列号
DECLARE iJmpFlag FLOAT;    --跳号标志
DECLARE v_dptcde0 VARCHAR(11);          --未使用
DECLARE v_dptcde VARCHAR(11);--机构编码
DECLARE v_ProdNo VARCHAR(7);--产品编码
DECLARE v_DptCdeLvl2 VARCHAR(11);      --未使用
DECLARE v_cYear VARCHAR(4);--年日期
-- DECLARE v_cFlag INT;--成功标志
DECLARE v_nRet SMALLINT;               --未使用
DECLARE nCount FLOAT;--
DECLARE nTemp FLOAT;                   --未使用
DECLARE v_sno VARCHAR(20);
DECLARE v_stemp VARCHAR(30);     --未使用
DECLARE sztemp VARCHAR(10);
DECLARE SQLERRM VARCHAR(255);--SQL错误标志
DECLARE v_odzno VARCHAR(30); /*add by yuanf, 批单(申请)号跳号时使用*/
DECLARE INITED int;   --序列号是否已初始
DECLARE SERNODEPTNO  VARCHAR(11);  --输入的机构编码对应的产生序列好机构编码
-- DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING --, NOT FOUND
--     BEGIN
--          GET DIAGNOSTICS EXCEPTION 1 SQLERRM = MESSAGE_TEXT;
--         SET odzno = 'aaa';
--        SET icflag = -1;
--         RESIGNAL MTK_RETURN_COND;
--     END;
--去空格
SET v_prodno = ltrim(rtrim(icprodno));
SET v_cyear = ltrim(rtrim(icyear));
--SET v_cflag = COALESCE(icflag,0);
SET ijmpflag = 0;
SET v_odzno = odzno; /*add by yuanf, 2005-0819*/
--参数检测
--IF LENGTH(v_prodno) <> 7
-- OR v_prodno IS NULL
-- OR LENGTH(v_cyear) <> 4
-- OR v_cyear IS NULL THEN
--  SET odzno = NULL;
--  SET icflag = -1;
--  RETURN 0;
--END IF;
if v_cyear is null or v_cyear='' then
set v_cyear=CHAR(year(current date));
end if;
set INITED=0;
SELECT C_DPT_SERNO INTO SERNODEPTNO FROM T_DEPARTMENT WHERE C_DPT_CDE=ltrim(rtrim(ICDPTCDE));
SELECT COUNT(*) INTO INITED FROM T_SERIENO WHERE C_VCH_TYP=ltrim(rtrim(ICVCHTYP)) AND C_DPT_CDE=SERNODEPTNO
AND C_YEAR=v_cyear AND C_PROD_NO=v_prodno;
IF INITED=0 THEN
INSERT INTO T_SERIENO(C_VCH_TYP,C_DPT_CDE,C_YEAR,C_PROD_NO,C_SERIE_NO) VALUES (ltrim(rtrim(ICVCHTYP)),SERNODEPTNO,v_cyear,v_prodno,0);
END IF;
/*
IN ICVCHTYP VARCHAR(2),
IN ICDPTCDE VARCHAR(11),
IN ICYEAR VARCHAR(4),
IN ICPRODNO VARCHAR(7),
OUT ISSUCC INT)
*/
-- LOOP_LABEL:
-- LOOP
-- SET v_cflag = 1;
--获取流水号产生机构,流水号及年度。每一个机构都有一个流水号产生机构
-- if icvchtyp <> '3' and icvchtyp <> '7' then --批单号与流水号无关 Luoxq 2005-06-25
SELECT ltrim(rtrim(b.c_dpt_serno)),
COALESCE(a.c_serie_no, 0) + 1--,
-- COALESCE(a.c_year, RTRIM(TO_CHAR(YEAR(CURRENT TIMESTAMP))))
INTO v_dptcde,
v_serieno--,
-- v_cyear
FROM t_serieno a,
t_department b
WHERE a.c_vch_typ = icvchtyp
AND a.c_prod_no = icprodno
AND b.c_dpt_cde = ltrim(rtrim(icdptcde))
and a.c_year=v_cyear
AND a.c_dpt_cde = b.c_dpt_serno;
IF UPDATEMARK=1 THEN
UPDATE t_serieno
SET c_serie_no = v_serieno
WHERE c_vch_typ = icvchtyp
AND c_dpt_cde = v_dptcde
AND c_prod_no = v_prodno
and c_year=v_cyear;
END IF;
set v_dptcde = left(rtrim(v_dptcde)||'00000000', 8);   --填充机构编码
-- end if;
--生成单证号
--投保单号
IF icvchtyp = '5' THEN
-- SET odzno = '05' || COALESCE(SUBSTR(v_cyear, 3, 2), '') || COALESCE(v_dptcde, '') || COALESCE(v_prodno, '') || COALESCE(fill_zero(TO_CHAR(v_serieno), 6, 0), '');
SET odzno ='05'|| COALESCE(v_cyear, '') || COALESCE(v_dptcde, '') || COALESCE(v_prodno, '') || COALESCE(right('000000'||rtrim(CHAR(v_serieno)), 6), '');
--   SELECT COUNT(*)  INTO ijmpflag
--   FROM t_ply_base
--   WHERE c_ply_app_no = odzno;
--
--   IF ijmpflag > 0 THEN
--       INSERT INTO t_seriejmpno (c_crt_cde, t_crt_tm, c_upd_cde, t_upd_tm,
--                c_dpt_cde, c_prod_no, c_vch_typ, c_chg_rsn,
--                c_tgt_serie_no,
--               c_tgt_year) VALUES
--               (inusr,CURRENT TIMESTAMP ,inusr,CURRENT TIMESTAMP ,v_dptcde,v_prodno,icvchtyp,'1',TO_NUMBER(fill_zero(TO_CHAR(v_serieno), 6, 0)),rtrim(TO_CHAR(year(CURRENT TIMESTAMP))));
--       SET v_cflag = -1;
--   END IF;
--代理保单号
ElseIf icvchtyp = '2' THEN
--SET odzno = '02' || COALESCE(SUBSTR(v_cyear, 3, 2), '') || COALESCE(v_dptcde, '') || COALESCE(v_prodno, '') || COALESCE(fill_zero( TO_CHAR(v_serieno), 6, 0), '');
--保单号
ELSEIF icvchtyp = '1' THEN
-- SET odzno = '01' || COALESCE(SUBSTR(v_cyear, 3, 2), '') || COALESCE(v_dptcde, '') || COALESCE(v_prodno, '') || COALESCE(fill_zero(TO_CHAR(v_serieno), 6, 0), '');
SET odzno = '01' || COALESCE(v_cyear, '') || COALESCE(v_dptcde, '') || COALESCE(v_prodno, '') || COALESCE(right('000000'||rtrim(CHAR(v_serieno)), 6), '');
--网销保单号
ELSEIF icvchtyp = '6' THEN
SET odzno = '06' || COALESCE(v_cyear, '') || COALESCE(v_dptcde, '') || COALESCE(v_prodno, '') || COALESCE(right('000000'||rtrim(CHAR(v_serieno)), 6), '');
--批改申请单号=保单号+A+序号
ELSEIF icvchtyp = '7' THEN
SET odzno ='07'|| COALESCE(v_cyear, '') || COALESCE(v_dptcde, '') || COALESCE(v_prodno, '') || COALESCE(right('000000'||rtrim(CHAR(v_serieno)), 6), '');
BEGIN
--                    if ijmpflag = 0  then
--                        SELECT COUNT(*)
--                        INTO ncount
--                        FROM t_edr_base
--                        WHERE c_ply_no = odzno;
--                    elseif ijmpflag > 0 then
--                    /*如果存在就进行跳号,由于其流水号不是根据t_serieno表产生,所以需要做以下处理*/
--                        SET ncount = ncount+1;
--                        if nCount>99 then
--                    /*如果跳了100次还不行,则强行退出*/
--                            SET v_cflag = -2;
--                            LEAVE LOOP_LABEL;
--                        end if;
--                    end if;
--
--                    SET v_sno = fill_zero(TO_CHAR(ncount + 1), 2, 0);
--
--          --SET odzno = COALESCE(odzno, '') || 'A' || COALESCE(v_sno, ''); del by yuanf
--          SET odzno = COALESCE(v_odzno, '') || 'A' || COALESCE(v_sno, '');
--
--                    SELECT COUNT(*)
--                    INTO ijmpflag
--                    FROM t_edr_base
--                    WHERE c_edr_app_no = odzno;
--          --有重号
--                    IF ijmpflag > 0 THEN
--
--                        /*INSERT INTO t_seriejmpno (c_crt_cde, t_crt_tm, c_upd_cde, t_upd_tm,
--                                c_dpt_cde, c_prod_no, c_vch_typ, c_chg_rsn,
--                                c_tgt_serie_no,
--                                c_tgt_year) VALUES (inusr,CURRENT TIMESTAMP ,inusr,CURRENT TIMESTAMP ,v_dptcde,v_prodno,icvchtyp,'1',TO_NUMBER(SUBSTR(odzno, 14)),RTRIM(TO_CHAR(YEAR(CURRENT TIMESTAMP))));
--                        */
--                        SET v_cflag = -1;
--
--                    END IF;
END;
--批单号=保单号+序号
ELSEIF icvchtyp = '3' THEN
SET odzno ='03'|| COALESCE(v_cyear, '') || COALESCE(v_dptcde, '') || COALESCE(v_prodno, '') || COALESCE(right('000000'||rtrim(CHAR(v_serieno)), 6), '');
BEGIN
--                    if ijmpflag = 0  then
--                        SELECT COUNT(*)
--                        INTO ncount
--                        FROM t_edr_base
--                        WHERE c_ply_no = odzno;
--                    elseif ijmpflag > 0 then
--                    /*如果存在就进行跳号,由于其流水号不是根据t_serieno表产生,所以需要做以下处理*/
--                        SET ncount = ncount+1;
--                        if nCount>99 then
--                    /*如果跳了100次还不行,则强行退出*/
--                            SET v_cflag = -2;
--                            LEAVE LOOP_LABEL;
--                        end if;
--                    end if;
--
--                    SET v_sno = fill_zero(TO_CHAR(ncount), 2, 0);
--
--                    --SET odzno = COALESCE(odzno, '') || '-' || COALESCE(v_sno, '');
--          SET odzno = COALESCE(v_odzno, '') || '-' || COALESCE(v_sno, '');
--
--                    SELECT COUNT(*)
--                    INTO ijmpflag
--                    FROM t_edr_base
--                    WHERE c_edr_no = odzno;
--
--                    IF ijmpflag > 0 THEN
--
--                        /*INSERT INTO t_seriejmpno (c_crt_cde, t_crt_tm, c_upd_cde, t_upd_tm,
--                                c_dpt_cde, c_prod_no, c_vch_typ, c_chg_rsn,
--                                c_tgt_serie_no,
--                                c_tgt_year) VALUES (inusr,CURRENT TIMESTAMP ,inusr,CURRENT TIMESTAMP ,v_dptcde,v_prodno,icvchtyp,'1',TO_NUMBER(SUBSTR(odzno, 14)),RTRIM(TO_CHAR(YEAR(CURRENT TIMESTAMP))));
--                        */
--                        SET v_cflag = -1;
--
--                    END IF;
END;

--报案号 = 年份(4)+机构(4)+产品码(7)+流水号(6)
ELSEIF icvchtyp = '9' THEN
SET odzno ='09'|| COALESCE(v_cyear, '') || COALESCE(v_dptcde, '') || COALESCE(v_prodno, '') || COALESCE(right('000000'||rtrim(CHAR(v_serieno)), 6), '');
--赔案号 =年份(4)+ 机构(4)+产品码(4)+流水号(6)
ELSEIF icvchtyp = '4' THEN
SET odzno ='04'|| COALESCE(v_cyear, '') || COALESCE(v_dptcde, '') || COALESCE(v_prodno, '') || COALESCE(right('000000'||rtrim(CHAR(v_serieno)), 6), '');

--结案归档号 = 标识(2)+年份(2)+机构(4)+产品码(4)+流水号(6)
ELSEIF icvchtyp = 'L3' THEN
-- BEGIN
--      SET odzno = '06' || COALESCE(SUBSTR(v_cyear, 3, 2), '') || COALESCE(v_dptcde, '') || COALESCE(v_prodno, '') || COALESCE(right('000000'||CHAR(v_serieno), 6), '');
--  END;
--追偿号 = 标识(1)+年份(2)+机构(4)+产品码(4)+二级分类'1'(1)+流水号(6)*/
ELSEIF icvchtyp = '01' THEN
-- BEGIN
--     SET odzno = 'Z' || COALESCE(SUBSTR(v_cyear, 3, 2), '') || COALESCE(v_dptcde, '') || COALESCE(v_prodno, '') || '1' || COALESCE(right('000000'||CHAR(v_serieno), 6), '');
--  END;
--追偿结案号 = 标识(1)+机构(4)+产品码(4)+年份(4)+二级分类'2'(1)+流水号(6)
/*ELSEIF icvchtyp = '02' THEN
BEGIN
SET odzno = 'Z' || COALESCE(SUBSTR(v_cyear, 3, 2), '') || COALESCE(v_dptcde, '') || COALESCE(v_prodno, '') || '2' || COALESCE(right('000000'||CHAR(v_serieno), 6), '');
END;
*/
--财务保费收据号 = 标识(1)+年份(2)+机构(4)+产品(4)+流水号(5)*/
ELSEIF icvchtyp = 'R' THEN
BEGIN
SET sztemp = right('000000'||rtrim(CHAR(v_serieno)),6);
SET odzno = 'R' || COALESCE(SUBSTR(v_cyear, 3, 2), '') || COALESCE(v_dptcde, '') || COALESCE(LTRIM(RTRIM(v_prodno)), '') || COALESCE(sztemp, '');
END;
/* 财务手续费收据号 = 标识(1)+机构(4)+年份(4)+产品大类(2)+流水号(5) */
ELSEIF icvchtyp = 'S' THEN
BEGIN
SET sztemp =right('000000'||rtrim(CHAR(v_serieno)),6);
SET odzno = 'S' || COALESCE(SUBSTR(v_cyear, 3, 2), '') || COALESCE(v_dptcde, '') || COALESCE(LTRIM(RTRIM(v_prodno)), '') || COALESCE(sztemp, '');
END;
/* 财务赔款收据号 = 标识(1)+机构(4)+年份(4)+产品大类(2)+流水号(5) */
ELSEIF icvchtyp = 'M' THEN
BEGIN
SET sztemp = right('000000'||rtrim(CHAR(v_serieno)),6);
SET odzno = 'M' || COALESCE(SUBSTR(v_cyear, 3, 2), '') || COALESCE(v_dptcde, '') || COALESCE(LTRIM(RTRIM(v_prodno)), '') || COALESCE(sztemp, '');
END;
/* 财务退保费收据号 = 标识(1)+机构(4)+年份(4)+产品大类(2)+流水号(5) */
ELSEIF icvchtyp = 'U' THEN
BEGIN
SET sztemp = right('000000'||rtrim(CHAR(v_serieno)),6);
SET odzno = 'U' || COALESCE(SUBSTR(v_cyear, 3, 2), '') || COALESCE(v_dptcde, '') || COALESCE(LTRIM(RTRIM(v_prodno)), '') || COALESCE(sztemp, '');
END;
/* 财务无赔退费收据号 = 标识(1)+机构(4)+年份(4)+产品大类(2)+流水号(5) */
ELSEIF icvchtyp = 'N' THEN
BEGIN
SET sztemp = right('000000'||rtrim(CHAR(v_serieno)),6);
SET odzno = 'N' || COALESCE(SUBSTR(v_cyear, 3, 2), '') || COALESCE(v_dptcde, '') || COALESCE(LTRIM(RTRIM(v_prodno)), '') || COALESCE(sztemp, '');
END;
/* 财务经纪费收据号 = 标识(1)+机构(4)+年份(4)+产品大类(2)+流水号(5) */
ELSEIF icvchtyp = 'K' THEN
BEGIN
SET sztemp = right('000000'||rtrim(CHAR(v_serieno)),6);
SET odzno = 'K' || COALESCE(SUBSTR(v_cyear, 3, 2), '') || COALESCE(v_dptcde, '') || COALESCE(LTRIM(RTRIM(v_prodno)), '') || COALESCE(sztemp, '');
END;
/* 约定退费收据号 = 标识(1)+机构(4)+年份(4)+产品大类(2)+流水号(5) */
ELSEIF icvchtyp = 'D' THEN
BEGIN
SET sztemp = right('000000'||rtrim(CHAR(v_serieno)),6);
SET odzno = 'D' || COALESCE(SUBSTR(v_cyear, 3, 2), '') || COALESCE(v_dptcde, '') || COALESCE(LTRIM(RTRIM(v_prodno)), '') || COALESCE(sztemp, '');
END;
--合作协议号,代理协议号,预约协议号 放在CreateSerieno中去了
/*ELSEIF (icvchtyp = 'B' or icvchtyp = 'C' or icvchtyp = 'A' ) THEN
SET odzno = icvchtyp || COALESCE(getupdptcode( icdptcde, 2 ), '') || COALESCE(v_cyear, '') || COALESCE(fill_zero(TO_CHAR(v_serieno), 5, 0), '');
SELECT COUNT(*)
INTO ijmpflag
FROM t_confer
WHERE c_agt_agr_no = odzno;
IF ijmpflag > 0 THEN
INSERT INTO t_seriejmpno (c_crt_cde, t_crt_tm, c_upd_cde, t_upd_tm,
c_dpt_cde, c_prod_no, c_vch_typ, c_chg_rsn,
c_tgt_serie_no,
c_tgt_year ) VALUES (inusr,CURRENT TIMESTAMP ,inusr,CURRENT TIMESTAMP ,v_dptcde,v_prodno,icvchtyp,'1',TO_NUMBER(fill_zero(TO_CHAR(v_serieno), 5, 0)),RTRIM(TO_CHAR(YEAR(CURRENT TIMESTAMP))));
SET v_cflag = '-1';
END IF;
*/
/* 赔案费用收据号 */
ELSE
SET sztemp =right('000000'||rtrim(CHAR(v_serieno)),6);
SET odzno = EMPTY_TO_NULL(COALESCE((COALESCE((COALESCE((COALESCE(icvchtyp, '') || COALESCE(SUBSTR(v_cyear, 3, 2), '')), '') || COALESCE(v_dptcde, '')), '') || COALESCE(LTRIM(RTRIM(v_prodno)), '')), '') || COALESCE(sztemp, ''));
END IF;
--IF v_cflag <> -1 THEN
--    LEAVE LOOP_LABEL;
--END IF;
--END LOOP LOOP_LABEL;
--SET icflag = v_cflag;
END;
END;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-300481-1-1.html 上篇帖子: 修改db2表字段 下篇帖子: DB2 常用函数汇总
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表