1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- --初始化个体关系
- CREATE OR REPLACE PROCEDURE shanglifeecif.initIndRelationShip() IS
- DECLARE
- BEGIN
- DELETE FROM shanglifeecif.IndRelationShip;
- --从保单信息表(POLICY_INFORMATION)获取投保人和被保人的关系并
- insert into shanglifeecif.IndRelationShip(irsid,RSType,IndID1,Name1,IDCard1,IndID2,Name2,IDCard2,RSSTime,Role2)
- SELECT row_number()over(),max(RELATIONTOAPPNT),CUSTOMERNO,max(NAME),max(IDNO),INSUREDNO,max(INSUREDNAME),max(INSUREDIDNO),min(CUSTOMGETPOLDATE),
- CASE max(RELATIONTOAPPNT)
- WHEN '子女' THEN case max(INSUREDSEX) when 1 THEN '女儿' WHEN 0 THEN '儿子' end
- when '父母' THEN case max(INSUREDSEX) when 1 THEN '母亲' WHEN 0 THEN '父亲' end
- WHEN '配偶' THEN case max(INSUREDSEX) when 1 THEN '妻子' WHEN 0 THEN '丈夫' end
- when '祖父母、外祖父母' THEN case max(INSUREDSEX) when 1 THEN '(外)祖母' WHEN 0 THEN '(外)祖父' end
- when '祖孙、外祖孙' THEN case max(INSUREDSEX) when 1 THEN '(外)孙女' WHEN 0 THEN '(外)祖孙' end
- ELSE max(RELATIONTOAPPNT) END
- FROM shanghailifeecif.POLICY_INFORMATION
- WHERE RELATIONTOAPPNT<>'本人'
- GROUP BY CUSTOMERNO,INSUREDNO;
- --更新IndRelationShip.Role1为IndRelationShip.Role2的相对角色,即role2为母亲则role1为父亲等
- UPDATE shanglifeecif.IndRelationShip sirs SET sirs.role1 = (SELECT
- CASE slirs.role2
- WHEN '父亲' THEN '母亲'
- WHEN '母亲' THEN '父亲'
- WHEN '丈夫' THEN '妻子'
- WHEN '妻子' THEN '丈夫'
- WHEN '儿子' THEN '女儿'
- WHEN '女儿' THEN '儿子'
- ELSE '其它' END
- FROM shanglifeecif.IndRelationShip slirs WHERE sirs.irsid = slirs.irsid);
- --此时插入IndRelationShip的IndID1,IndID2为上游系统客户号,根据Individual.SCustID更新为Individual.IndID
-
- UPDATE shanglifeecif.IndRelationShip sirs SET (sirs.indid1) =
- (SELECT si.indid FROM shanglifeecif.individual si WHERE si.scustid = sirs.indid1);
-
- UPDATE shanglifeecif.IndRelationShip sirs SET (sirs.indid2) =
- (SELECT si.indid FROM shanglifeecif.individual si WHERE si.scustid = sirs.indid2);
-
-
- EXCEPTION
- WHEN HIVE_EXCEPTION THEN
- INSERT INTO shanglifeecif.exception_log(log_code,log_msg,log_time) VALUES (sqlcode(),sqlerrm(),sysdate());
- WHEN Others THEN
- INSERT INTO shanglifeecif.exception_log(log_code,log_msg,log_time) VALUES (sqlcode(),sqlerrm(),sysdate());
- END ;
|