博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我的退休程序修正过程
阅读量:5151 次
发布时间:2019-06-13

本文共 3438 字,大约阅读时间需要 11 分钟。

1 CREATE OR REPLACE PROCEDURE WYL_ZZZTXXZ(PI_AAC002 VARCHAR2,  2                                         BAE001    VARCHAR2,  3                                         PO_FHZ    OUT VARCHAR2,  4                                         PO_MSG    OUT VARCHAR2)  5 --在职转退休有问题人员的数据修正,卫永乐,20150120  6  IS  7   V_AAC001      NUMBER(20);  8   V_AC20_ZXND   NUMBER(4); --ac20的最小年度  9   V_SIC86_ZXND  NUMBER(4); 10   V_AAB001      NUMBER(20); 11   V_SAC11_COUNT NUMBER(2); --转移的总数 12   V_GRBH        NUMBER(20); 13   V_BAE001      AC01.BAE001%TYPE; 14 BEGIN 15   SELECT LENGTH(PI_AAC002) INTO V_GRBH FROM DUAL; 16   IF V_GRBH >= 15 THEN 17     /* 18      如果入参长度大于15位,那么就是身份证,如果小于15为,那么就认为是aac001 19     */ 20     BEGIN 21       SELECT AAC001 INTO V_AAC001 FROM AC01 WHERE AAC002 = PI_AAC002; 22     EXCEPTION 23       WHEN NO_DATA_FOUND THEN 24         PO_FHZ := '-1'; 25         PO_MSG := '没有找到对应的AAC001,请确认是否有问题,你的查询语句:' || 26                   'select aac001 into v_aac001 from ac01 where aac002 = ' || 27                   PI_AAC002; 28         RETURN; 29     END; 30   ELSE 31     V_AAC001 := PI_AAC002; 32   END IF; 33   SELECT AAB001 INTO V_AAB001 FROM AC01 WHERE AAC002 = PI_AAC002; 34   SELECT BAE001 INTO V_BAE001 FROM AC01 WHERE AAC002 = PI_AAC002; 35   /* 36         sac11数量,如果大于0,也要修正sic86 37   */ 38   SELECT COUNT(1) INTO V_SAC11_COUNT FROM SAC11 WHERE AAC001 = V_AAC001; 39   SELECT MIN(SUBSTR(AAE041, 1, 4)) 40     INTO V_AC20_ZXND 41     FROM AC20 42    WHERE AAC001 = V_AAC001; 43   SELECT MIN(AAE001) INTO V_SIC86_ZXND FROM SIC86 WHERE AAC001 = V_AAC001; 44   IF V_AC20_ZXND < V_SIC86_ZXND THEN 45     INSERT INTO T_TEMP_SXDY_I_19 AAC001 (AAC001) VALUES (V_AAC001); 46     --v_sic86_zxnd := v_sic86_zxnd-1 原因:下面循环补入sic86的时候要用 47     V_SIC86_ZXND := V_SIC86_ZXND - 1; 48     FOR ITEM IN V_AC20_ZXND .. V_SIC86_ZXND LOOP 49       INSERT INTO SIC86 50         (BAE001, 51          AAB001, 52          AAC001, 53          AAE001, 54          AAE140, 55          AAE013, 56          AIC040, 57          AIC041, 58          AIC042, 59          AIC058, 60          AIC072, 61          AIC074, 62          AIC075, 63          AIC076, 64          AIC077, 65          AIC078, 66          AIC079, 67          AAE087, 68          AIC081, 69          AAE035, 70          CIC818, 71          CIC819) 72       VALUES 73         (V_BAE001, 74          V_AAB001, 75          V_AAC001, 76          ITEM, 77          '110', 78          NULL, 79          0.00, 80          0.00, 81          0, 82          0.00, 83          0.00, 84          0.00, 85          0.00, 86          0.00, 87          0.00, 88          0.00, 89          0.00, 90          '0', 91          0, 92          0, 93          0, 94          0.00); 95     END LOOP; 96     PKG_SXDY_I_DYHD.REBIULD_SIC86(V_AAC001, '110', PO_FHZ, PO_MSG); 97     IF PO_FHZ != 1 THEN 98       RETURN; 99     ELSE100       PO_MSG := 'ac20的最小参保年度小雨sic86的最小参保年度,不合理,系统尝试进行修复数据,且已经成功';101       RETURN;102     END IF;103     /*    如果存在转移,那么也进行修正*/104   ELSIF V_SAC11_COUNT > 0 THEN105     PKG_SXDY_I_DYHD.REBIULD_SIC86(V_AAC001, '110', PO_FHZ, PO_MSG);106     IF PO_FHZ = 1 THEN107       RETURN;108     ELSE109       PO_MSG := V_AAC001 || ',该人员存在转移,已经进行了数据修复,且已经成功';110       RETURN;111     END IF;112   113   ELSE114     PO_FHZ := -1;115     PO_MSG := '系统没有进行修复,请检查,SELECT * FROM AC01 WHERE AAC001 = ' || V_AAC001;116     RETURN;117   END IF;118 END;

 

转载于:https://www.cnblogs.com/Sunnor/p/4923833.html

你可能感兴趣的文章
金蝶数据库执行语句
查看>>
前端SEO技巧
查看>>
python+selenium遇到鼠标悬停不成功可以使用js进行操作
查看>>
我的退休程序修正过程
查看>>
Java程序优化细节
查看>>
baihuilong advertising test
查看>>
Maven安装配置
查看>>
ORA-10635: Invalid segment or tablespace type
查看>>
计算机改名导致数据库链接的诡异问题
查看>>
Windows 8 操作系统 购买过程
查看>>
软件工程课程-个人编程作业
查看>>
Java8内存模型—永久代(PermGen)和元空间(Metaspace)(转)
查看>>
GitLab+Nginx(SSL)+MySQL+Ruby安装部署
查看>>
visualSVN server安装使用
查看>>
看看 Delphi XE2 为 VCL 提供的 14 种样式
查看>>
网络的基础知识
查看>>
ObjectiveC基础教程(第2版)
查看>>
BZOJ2243 洛谷2486 [SDOI2011]染色 树链剖分
查看>>
centos 引导盘
查看>>
JS绘制曲线图
查看>>