12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- CREATE OR REPLACE PROCEDURE shanglifeecif.update_insuredinfo()
- IS
- BEGIN
-
- UPDATE shanglifeecif.individual a SET (
- ZIPCODE,
- HPhone,
- PMPhone,
- email,
- RAL,
- sobirth
- ) = (
- SELECT
- t.zipcode,
- t.phone,
- t.mobile,
- t.email,
- regexp_replace(trim(t.address),'[0-9]','*') address,
- regexp_extract(t.address,'(.*?)省|(.*?)市',0) province
- FROM (
- SELECT
- row_number()OVER(PARTITION BY ls.customerno ORDER BY ls.modifydate desc) rn,
- ls.customerno,
- CASE
- WHEN ls.postaladdress IS NULL
- THEN
- CASE WHEN ls.homeaddress IS NULL THEN ls.companyaddress ELSE ls.homeaddress END
- ELSE ls.postaladdress
- END AS address,
- ls.phone,
- ls.zipcode,
- CASE WHEN ls.email IS NULL THEN ls.email2 ELSE ls.email END AS email,
- CASE WHEN ls.mobile IS NULL THEN ls.mobile2 ELSE ls.mobile END AS mobile
- FROM dsj.lcaddress ls
- ) t where t.rn = 1 AND t.customerno = a.scustid
- ) WHERE a.custtype = '被保人';
- UPDATE shanglifeecif.individual a SET (
- Height,
- Weight,
- BMI,
- PIncome,
- Ethnic,
- Nation,
- MaritalStat,
- Education,
- SIStatus,
- IncomeSource,
- Occupation,
- regtype
- ) = (
- SELECT
- t.stature,
- t.avoirdupois,
- t.bmi,
- t.yearincome,
- t.nationality,
- t.nativeplace,
- t.marriage,
- t.degree,
- t.socialinsuflag,
- t.incomesource,
- t.occupationcode,
- t.dentype
- FROM (
- SELECT
- row_number()OVER(PARTITION BY ld.insuredno ORDER BY ld.modifydate desc) rn,
- ld.insuredno,
- ld.appntno,
- ld.name,
- ld.sex,
- ld.birthday,
- ld.idtype,
- ld.idno,
- ld.marriage,
- ld.occupationcode,
- ld.nativeplace,
- ld.nationality,
- ld.stature,
- ld.avoirdupois,
- round((ld.avoirdupois/POWER((ld.stature/100),2)),2) bmi,
- ld.degree,
- ld.dentype,
- ld.socialinsuflag,
- ld.incomesource,
- ld.yearincome
- FROM dsj.lcinsured2 ld
- ) t WHERE t.rn = 1 AND t.insuredno = a.scustid
- ) WHERE a.custtype = '被保人';
- dbms_output.put_line('update_insuredinfo函数跑批完成!');
- EXCEPTION
- WHEN HIVE_EXCEPTION THEN
- INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
- WHEN Others THEN
- INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
- END;
|