1、调度日志表

create table EDW_CTL_LOG
(
PROC_NAME VARCHAR2(32),
CTL_TIME VARCHAR2(19),
CTL_DEMO VARCHAR2(36)
)

2、调度总程序

CREATE OR REPLACE PROCEDURE BATCH_DW_CTL_ALL(P_ETLDATE IN VARCHAR2 --日期参数) AS
--Procedure Name:BATCH_DW_CTL_ALL
--Author        :NISJ
--Script File   :BATCH_DW_CTL_ALL.SQL
--定义存储过程信息
O_RUNSTATUS number;        --执行结果
O_MSG       varchar2(100); --错误返回
BEGIN P_T01_LOAN_DUE_BILL(P_ETLDATE, O_RUNSTATUS, O_MSG);IF O_RUNSTATUS = 1 THENINSERT INTO EDW_CTL_LOG(PROC_NAME ,CTL_TIME ,CTL_DEMO)SELECT 'P_T01_LOAN_DUE_BILL',to_char(sysdate,'YYYY-MM-DD HH24-MI-SS'),'执行异常' FROM DUAL;RETURN;ELSEINSERT INTO EDW_CTL_LOG(PROC_NAME ,CTL_TIME ,CTL_DEMO)SELECT 'P_T01_LOAN_DUE_BILL',to_char(sysdate,'YYYY-MM-DD HH24-MI-SS'),'执行正常' FROM DUAL;END IF;P_T01_LOAN_CONTRACT_INFO(P_ETLDATE, O_RUNSTATUS, O_MSG);IF O_RUNSTATUS = 1 THENINSERT INTO EDW_CTL_LOG(PROC_NAME ,CTL_TIME ,CTL_DEMO)SELECT 'P_T01_LOAN_CONTRACT_INFO',to_char(sysdate,'YYYY-MM-DD HH24-MI-SS'),'执行异常' FROM DUAL;RETURN;ELSEINSERT INTO EDW_CTL_LOG(PROC_NAME ,CTL_TIME ,CTL_DEMO)SELECT 'P_T01_LOAN_CONTRACT_INFO',to_char(sysdate,'YYYY-MM-DD HH24-MI-SS'),'执行正常' FROM DUAL;END IF;P_T02_PERSONAL_CUSTOMER(P_ETLDATE, O_RUNSTATUS, O_MSG);IF O_RUNSTATUS = 1 THENINSERT INTO EDW_CTL_LOG(PROC_NAME ,CTL_TIME ,CTL_DEMO)SELECT 'P_T02_PERSONAL_CUSTOMER',to_char(sysdate,'YYYY-MM-DD HH24-MI-SS'),'执行异常' FROM DUAL;RETURN;ELSEINSERT INTO EDW_CTL_LOG(PROC_NAME ,CTL_TIME ,CTL_DEMO)SELECT 'P_T02_PERSONAL_CUSTOMER',to_char(sysdate,'YYYY-MM-DD HH24-MI-SS'),'执行正常' FROM DUAL;END IF;COMMIT;
END BATCH_DW_CTL_ALL;
/

被调用的ETL代码示例:

CREATE OR REPLACE PROCEDURE P_T02_PERSONAL_CUSTOMER(P_ETLDATE  IN    VARCHAR2,    --日期参数O_RUNSTATUS OUT   NUMBER,      --执行结果O_MSG       OUT   VARCHAR2     --错误返回) AS--Procedure Name:P_T02_PERSONAL_CUSTOMER--Author        :倪士甲--Update_Author :孙艳勇 20091016--Update_Author :倪士甲 20091106--Script File   :P_T02_PERSONAL_CUSTOMER.SQL/*###################################################*/--Souce Databse.table  :--ODS_CMS_CMIS_GRKH              个人客户--ODS_CMS_CMIS_KH_LS             个人临时客户--ODS_CIF_CIF_P_CUST             个人客户--ODS_CIF_CIF_BLACKLIST          黑名单/*###################################################*/--Target Databse.table :--EDW_T02_PERSONAL_CUSTOMER      T02_对私客户/*###################################################*/--加载方式:增量更新--定义存储过程信息V_PROC_NAME       VARCHAR2(50)   := 'P_T02_PERSONAL_CUSTOMER';V_TABLE_NAME      VARCHAR2(50)   := 'EDW_T02_PERSONAL_CUSTOMER';V_START_TIMESTAMP TIMESTAMP;                --加载开始时间V_END_TIMESTAMP   TIMESTAMP;                --加载结束时间V_RECORD_NUMBER   INTEGER;                  --记录数--定义错误代码,错误状态V_SQLERRM         VARCHAR2(1000);           --异常信息V_ERR_SQL         VARCHAR2(1000);           --出错位置BEGIN--捕获过程开始时间SELECT SYSDATE INTO V_START_TIMESTAMP FROM dual;--清空临时表EXECUTE IMMEDIATE 'TRUNCATE TABLE '||REPLACE(V_TABLE_NAME,'EDW','TMP');--增量更新历史回滚DELETE FROM EDW_T02_PERSONAL_CUSTOMER WHERE Update_Dt >= P_ETLDATE;--加载CMIS个人客户信息表V_ERR_SQL := 'INSERT INTO TMP_T02_PERSONAL_CUSTOMER FROM ODS_CMS_CMIS_GRKH';INSERT INTO TMP_T02_PERSONAL_CUSTOMER(Cust_No                --客户编号,Src_Cust_No            --源系统客户编号,Cust_Name              --客户名称,Cert_Type_Cd           --证件类型,Cert_Num               --证件号码,Birthday               --出生日期,Sex_Cd                 --性别,Job                    --职位,Position               --职务,Marriage_Cd            --婚姻状况,Education_Cd           --最高学历,Degree_Cd              --最高学位,Ann_Income             --年收入,Belong_Industry        --单位所属行业,District_Cd            --区域划分,Cust_Kind_Cd           --客户类别,Borrower_Prop_Cd       --借款人性质,Stockholder_Flag       --我行股东标志,Blacklist_Flag         --黑名单标志,Main_Cust_Flag         --重点客户标志,Tmp_Cust_Flag          --临时客户标志,Cust_Status_Cd         --客户状态,Oper_Org_No            --经办机构编号,Manager_No             --客户经理编号,Home_Tel               --住宅电话,Mobile                 --手机号码,Company_Tel            --单位电话,Email                  --EMAIL,Country_Borrowers      --借款人国别,Admi_Divisions         --行政区划,City                   --所在城市,Contact_Addr           --通讯地址,Contact_Addr_Zip       --通讯地址邮编,Residence_Addr         --户籍地址,Spouse_Name            --配偶姓名,Spouse_Cert_Type_Cd    --配偶证件类型,Spouse_Cert_Num        --配偶证件号码,Spouse_Work_Unit       --配偶工作单位,Spouse_Tel_No          --配偶联系电话,Company_Name           --单位名称,Unit_Address           --单位地址,Unit_Zip               --单位地址邮编,Entry_Year             --本单位起始工作年份,Professional_Title     --职称,Wage_Account           --工资帐号,Wage_Account_Bank      --工资帐号开户行,Present_Addr           --居住地址,Present_Zip            --居住地址邮政编码,Living_Condition       --居住状况,Cust_Class_Cd          --客户分类,Cust_Level_Cd          --客户级别,Business_Type_Cd       --企业登记注册类型,Loan_Card_No           --贷款卡号,Loan_Card_Pwd          --贷款卡密码,Loan_Card_State_Cd     --贷款卡状态,Guarantor_Type_Cd      --保证人类别,Ethnic_Origin_Cd       --民族,Spouse_Profession      --配偶职业,Linkman                --联系人,Fax                    --传真,Account_No             --本行帐号,Is_Staff_Flag          --是否为本行员工,Register_Date          --作成日期,Oper_Org_No2           --经办机构,Manager_No2            --经办经理,Update_Date            --更新日期)SELECT  'CMS'||miskhbh,miskhbh,xm,COALESCE(a2.Code_Cd,NULLIF('CMS_'||TRIM(a1.zjlx),'CMS_'),'-1'),sfzhm,csrq,COALESCE(a3.Code_Cd,NULLIF('CMS_'||TRIM(a1.xb),'CMS_'),'-1'),zy,zw,COALESCE(a4.Code_Cd,NULLIF('CMS_'||TRIM(a1.hyzk),'CMS_'),'-1'),COALESCE(a5.Code_Cd,NULLIF('CMS_'||TRIM(a1.zgxl),'CMS_'),'-1'),COALESCE(a6.Code_Cd,NULLIF('CMS_'||TRIM(a1.zgxw),'CMS_'),'-1'),TRIM(nsr),dwsshy,COALESCE(a7.Code_Cd,NULLIF('CMS_'||TRIM(a1.qyhf),'CMS_'),'-1'),COALESCE(a8.Code_Cd,NULLIF('CMS_'||TRIM(a1.khlb),'CMS_'),'-1'),COALESCE(a9.Code_Cd,NULLIF('CMS_'||TRIM(a1.jkrxz),'CMS_'),'-1'),CASEWHEN whgdbz = '0' THEN 'Y'WHEN whgdbz = '1' THEN 'N'ELSE '-1'END,CASEWHEN hmdbz = '1' THEN 'Y'WHEN hmdbz = '0' THEN 'N'ELSE '-1'END,CASEWHEN zdkhbz = '1' THEN 'Y'WHEN zdkhbz = '0' THEN 'N'ELSE '-1'END,'N','-1',jbjgbh,khjlbh,zzdh,sjhm,dwdh,dzyx,' ',' ',' ',txdz,txdzyzbm,hjdz,poxm,COALESCE(a10.Code_Cd,NULLIF('CMS_'||TRIM(a1.pozjlx),'CMS_'),'-1'),pozjhm,pogzdw,polxdh,dwmc,dwdz,dwdzyzbm,bdwgzqsnf,zc,gzzh,gzzhkhyh,jzdz,jzdzyzbm,jzzk,COALESCE(a11.Code_Cd,NULLIF('CMS_'||TRIM(a1.khfl),'CMS_'),'-1'),COALESCE(a12.Code_Cd,NULLIF('CMS_'||TRIM(a1.khjb),'CMS_'),'-1'),COALESCE(a13.Code_Cd,NULLIF('CMS_'||TRIM(a1.qydjzclx),'CMS_'),'-1'),dkkh,dkkmm,COALESCE(a14.Code_Cd,NULLIF('CMS_'||TRIM(a1.dkkzt),'CMS_'),'-1'),COALESCE(a15.Code_Cd,NULLIF('CMS_'||TRIM(a1.bzrlb),'CMS_'),'-1'),COALESCE(a16.Code_Cd,NULLIF('CMS_'||TRIM(a1.mz),'CMS_'),'-1'),pozy,lxr,cz,grzh,' ',djrq,' ',' ',whrqFROM    ODS_CMS_CMIS_GRKH a1LEFT OUTER JOIN EDW_MAP_CERT_TYPE_CD a2ON      a1.zjlx = a2.SRC_CODE_CDAND     a2.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_SEX_CD a3ON      a1.xb = a3.SRC_CODE_CDAND     a3.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Marriage_CD a4ON      a1.hyzk = a4.SRC_CODE_CDAND     a4.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Education_CD a5ON      a1.zgxl = a5.SRC_CODE_CDAND     a5.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Degree_CD a6ON      a1.zgxw = a6.SRC_CODE_CDAND     a6.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_DISTRICT_CD a7ON      a1.qyhf = a7.SRC_CODE_CDAND     a7.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_CUST_KIND_CD a8ON      a1.khlb = a8.SRC_CODE_CDAND     a8.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Borrower_Prop_Cd a9ON      a1.jkrxz = a9.SRC_CODE_CDAND     a9.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_CERT_TYPE_CD a10ON      UPPER(a1.pozjlx) = a10.SRC_CODE_CDAND     a10.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_CUST_CLASS_CD a11ON      a1.khfl = a11.SRC_CODE_CDAND     a11.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Cust_Level_Cd a12ON      a1.khjb = a12.SRC_CODE_CDAND     a12.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Business_Type_Cd a13ON      a1.qydjzclx = a13.SRC_CODE_CDAND     a13.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Loan_Card_State_Cd a14ON      a1.dkkzt = a14.SRC_CODE_CDAND     a14.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Guarantor_Type_Cd a15ON      a1.bzrlb = a15.SRC_CODE_CDAND     a15.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Ethnic_Origin_Cd a16ON      a1.mz = a16.SRC_CODE_CDAND     a16.SRC_NO = '1005'WHERE   a1.Ods_Data_Date = P_ETLDATE;--加载CMIS临时客户表V_ERR_SQL := 'INSERT INTO TMP_T02_PERSONAL_CUSTOMER FROM ODS_CMS_CMIS_KH_LS';INSERT INTO TMP_T02_PERSONAL_CUSTOMER(Cust_No                --客户编号,Src_Cust_No            --源系统客户编号,Cust_Name              --客户名称,Cert_Type_Cd           --证件类型,Cert_Num               --证件号码,Birthday               --出生日期,Sex_Cd                 --性别,Job                    --职位,Position               --职务,Marriage_Cd            --婚姻状况,Education_Cd           --最高学历,Degree_Cd              --最高学位,Ann_Income             --年收入,Belong_Industry        --单位所属行业,District_Cd            --区域划分,Cust_Kind_Cd           --客户类别,Borrower_Prop_Cd       --借款人性质,Stockholder_Flag       --我行股东标志,Blacklist_Flag         --黑名单标志,Main_Cust_Flag         --重点客户标志,Tmp_Cust_Flag          --临时客户标志,Cust_Status_Cd         --客户状态,Oper_Org_No            --经办机构编号,Manager_No             --客户经理编号,Home_Tel               --住宅电话,Mobile                 --手机号码,Company_Tel            --单位电话,Email                  --EMAIL,Country_Borrowers      --借款人国别,Admi_Divisions         --行政区划,City                   --所在城市,Contact_Addr           --通讯地址,Contact_Addr_Zip       --通讯地址邮编,Residence_Addr         --户籍地址,Spouse_Name            --配偶姓名,Spouse_Cert_Type_Cd    --配偶证件类型,Spouse_Cert_Num        --配偶证件号码,Spouse_Work_Unit       --配偶工作单位,Spouse_Tel_No          --配偶联系电话,Company_Name           --单位名称,Unit_Address           --单位地址,Unit_Zip               --单位地址邮编,Entry_Year             --本单位起始工作年份,Professional_Title     --职称,Wage_Account           --工资帐号,Wage_Account_Bank      --工资帐号开户行,Present_Addr           --居住地址,Present_Zip            --居住地址邮政编码,Living_Condition       --居住状况,Cust_Class_Cd          --客户分类,Cust_Level_Cd          --客户级别,Business_Type_Cd       --企业登记注册类型,Loan_Card_No           --贷款卡号,Loan_Card_Pwd          --贷款卡密码,Loan_Card_State_Cd     --贷款卡状态,Guarantor_Type_Cd      --保证人类别,Ethnic_Origin_Cd       --民族,Spouse_Profession      --配偶职业,Linkman                --联系人,Fax                    --传真,Account_No             --本行帐号,Is_Staff_Flag          --是否为本行员工,Register_Date          --作成日期,Oper_Org_No2           --经办机构,Manager_No2            --经办经理,Update_Date            --更新日期)SELECT  'CMS'||miskhbh,miskhbh,xm,COALESCE(a2.Code_Cd,NULLIF('CMS_'||TRIM(a1.zjlx),'CMS_'),'-1'),sfzhm,csrq,COALESCE(a3.Code_Cd,NULLIF('CMS_'||TRIM(a1.xb),'CMS_'),'-1'),zy,zw,COALESCE(a4.Code_Cd,NULLIF('CMS_'||TRIM(a1.hyzk),'CMS_'),'-1'),COALESCE(a5.Code_Cd,NULLIF('CMS_'||TRIM(a1.zgxl),'CMS_'),'-1'),COALESCE(a6.Code_Cd,NULLIF('CMS_'||TRIM(a1.zgxw),'CMS_'),'-1'),TRIM(nsr),dwsshy,COALESCE(a7.Code_Cd,NULLIF('CMS_'||TRIM(a1.qyhf),'CMS_'),'-1'),COALESCE(a8.Code_Cd,NULLIF('CMS_'||TRIM(a1.khlb),'CMS_'),'-1'),COALESCE(a9.Code_Cd,NULLIF('CMS_'||TRIM(a1.jkrxz),'CMS_'),'-1'),CASEWHEN whgdbz = '0' THEN 'Y'WHEN whgdbz = '1' THEN 'N'ELSE '-1'END,CASEWHEN hmdbz = '1' THEN 'Y'WHEN hmdbz = '0' THEN 'N'ELSE '-1'END,CASEWHEN zdkhbz = '1' THEN 'Y'WHEN zdkhbz = '0' THEN 'N'ELSE '-1'END,'Y','-1',jbjgbh,khjlbh,zzdh,sjhm,dwdh,dzyx,' ',' ',' ',txdz,txdzyzbm,hjdz,poxm,COALESCE(a10.Code_Cd,NULLIF('CMS_'||TRIM(a1.pozjlx),'CMS_'),'-1'),pozjhm,pogzdw,polxdh,dwmc,dwdz,dwdzyzbm,bdwgzqsnf,zc,gzzh,gzzhkhyh,jzdz,jzdzyzbm,jzzk,COALESCE(a11.Code_Cd,NULLIF('CMS_'||TRIM(a1.khfl),'CMS_'),'-1'),COALESCE(a12.Code_Cd,NULLIF('CMS_'||TRIM(a1.khjb),'CMS_'),'-1'),COALESCE(a13.Code_Cd,NULLIF('CMS_'||TRIM(a1.qydjzclx),'CMS_'),'-1'),dkkh,dkkmm,COALESCE(a14.Code_Cd,NULLIF('CMS_'||TRIM(a1.dkkzt),'CMS_'),'-1'),COALESCE(a15.Code_Cd,NULLIF('CMS_'||TRIM(a1.bzrlb),'CMS_'),'-1'),COALESCE(a16.Code_Cd,NULLIF('CMS_'||TRIM(a1.mz),'CMS_'),'-1'),pozy,lxr,cz,grzh,' ',djrq,' ',' ',whrqFROM    ODS_CMS_CMIS_KH_LS a1LEFT OUTER JOIN EDW_MAP_CERT_TYPE_CD a2ON      a1.zjlx = a2.SRC_CODE_CDAND     a2.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_SEX_CD a3ON      a1.xb = a3.SRC_CODE_CDAND     a3.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Marriage_CD a4ON      a1.hyzk = a4.SRC_CODE_CDAND     a4.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Education_CD a5ON      a1.zgxl = a5.SRC_CODE_CDAND     a5.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Degree_CD a6ON      a1.zgxw = a6.SRC_CODE_CDAND     a6.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_DISTRICT_CD a7ON      a1.qyhf = a7.SRC_CODE_CDAND     a7.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_CUST_KIND_CD a8ON      a1.khlb = a8.SRC_CODE_CDAND     a8.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Borrower_Prop_Cd a9ON      a1.jkrxz = a9.SRC_CODE_CDAND     a9.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_CERT_TYPE_CD a10ON      UPPER(a1.pozjlx) = a10.SRC_CODE_CDAND     a10.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_CUST_CLASS_CD a11ON      a1.khfl = a11.SRC_CODE_CDAND     a11.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Cust_Level_Cd a12ON      a1.khjb = a12.SRC_CODE_CDAND     a12.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Business_Type_Cd a13ON      a1.qydjzclx = a13.SRC_CODE_CDAND     a13.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Loan_Card_State_Cd a14ON      a1.dkkzt = a14.SRC_CODE_CDAND     a14.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Guarantor_Type_Cd a15ON      a1.bzrlb = a15.SRC_CODE_CDAND     a15.SRC_NO = '1005'LEFT OUTER JOIN EDW_MAP_Ethnic_Origin_Cd a16ON      a1.mz = a16.SRC_CODE_CDAND     a16.SRC_NO = '1005'WHERE   a1.Ods_Data_Date = P_ETLDATE;--加载来自CIF源的数据V_ERR_SQL := 'INSERT INTO TMP_T02_PERSONAL_CUSTOMER FROM ODS_CIF_CIF_P_CUST';INSERT INTO TMP_T02_PERSONAL_CUSTOMER(Cust_No                     --客户编号,Src_Cust_No                 --源系统客户编号,Cust_Name                   --客户名称,Cert_Type_Cd                --证件类型,Cert_Num                    --证件号码,Birthday                    --出生日期,Sex_Cd                      --性别,Job                         --职位,Position                    --职务,Marriage_Cd                 --婚姻状况,Education_Cd                --最高学历,Degree_Cd                   --最高学位,Ann_Income                  --年收入,Belong_Industry             --单位所属行业,District_Cd                 --区域划分,Cust_Kind_Cd                --客户类别,Borrower_Prop_Cd            --借款人性质,Stockholder_Flag            --我行股东标志,Blacklist_Flag              --黑名单标志,Main_Cust_Flag              --重点客户标志,Tmp_Cust_Flag               --临时客户标志,Cust_Status_Cd              --客户状态,Oper_Org_No                 --经办机构编号,Manager_No                  --客户经理编号,Home_Tel                    --住宅电话,Mobile                      --手机号码,Company_Tel                 --单位电话,Email                       --EMAIL,Country_Borrowers           --借款人国别,Admi_Divisions              --行政区划,City                        --所在城市,Contact_Addr                --通讯地址,Contact_Addr_Zip            --通讯地址邮编,Residence_Addr              --户籍地址,Spouse_Name                 --配偶姓名,Spouse_Cert_Type_Cd         --配偶证件类型,Spouse_Cert_Num             --配偶证件号码,Spouse_Work_Unit            --配偶工作单位,Spouse_Tel_No               --配偶联系电话,Company_Name                --单位名称,Unit_Address                --单位地址,Unit_Zip                    --单位地址邮编,Entry_Year                  --本单位起始工作年份,Professional_Title          --职称,Wage_Account                --工资帐号,Wage_Account_Bank           --工资帐号开户行,Present_Addr                --居住地址,Present_Zip                 --居住地址邮政编码,Living_Condition            --居住状况,Cust_Class_Cd               --客户分类,Cust_Level_Cd               --客户级别,Business_Type_Cd            --个人登记注册类型,Loan_Card_No                --贷款卡号,Loan_Card_Pwd               --贷款卡密码,Loan_Card_State_Cd          --贷款卡状态,Guarantor_Type_Cd           --保证人类别,Ethnic_Origin_Cd            --民族,Spouse_Profession           --配偶职业,Linkman                     --联系人,Fax                         --传真,Account_No                  --本行帐号,Is_Staff_Flag               --是否为本行员工,Register_Date               --作成日期,Oper_Org_No2                --经办机构,Manager_No2                 --经办经理,Update_Date                 --更新日期)SELECT  'CIF'||a1.cust_no,a1.cust_no,a1.cust_name,COALESCE(a3.Code_Cd,NULLIF('WFM_'||TRIM(a1.cert_type),'WFM_'),'-1'),a1.cert_no,a1.birth_date,COALESCE(a4.Code_Cd,NULLIF('WFM_'||TRIM(a1.sex),'WFM_'),'-1'),a1.profession,a1.duty,COALESCE(a5.Code_Cd,NULLIF('WFM_'||TRIM(a1.marital_status),'WFM_'),'-1'),COALESCE(a6.Code_Cd,NULLIF('WFM_'||TRIM(a1.highest_education),'WFM_'),'-1'),COALESCE(a7.Code_Cd,NULLIF('WFM_'||TRIM(a1.highest_degree),'WFM_'),'-1'),TRIM(a1.annual_salary),a1.working_field,COALESCE(a8.Code_Cd,NULLIF('WFM_'||TRIM(a1.regional_division),'WFM_'),'-1'),COALESCE(a9.Code_Cd,NULLIF('WFM_'||TRIM(a1.cust_type),'WFM_'),'-1'),COALESCE(a10.Code_Cd,NULLIF('WFM_'||TRIM(a1.borrower_property),'WFM_'),'-1'),DECODE(a1.shareholder_flag,'1','Y','0','N','-1')    --我行股东标志,CASEWHEN a2.cust_no IS NULLTHEN 'N'ELSE 'Y'END    --客户表的黑名单标志数据不可信,要从CIF_BLACKKLIST表去判断,DECODE(a1.key_cust_flag,'1','Y','0','N','-1')       --重点客户标志,'N'                                                 --0 -- 否1 -- 是 数据来源是CIF_P_CUST,则‘0’。否则‘1’。,'-1',a1.org_code,a1.mgr_no,a1.home_phone,a1.mobile_no,a1.work_tel_no,a1.email,a1.country_borrowers,a1.admi_divisions,a1.city,a1.contact_addr,a1.contact_addr_zip,a1.residence_addr,a1.spouse_name,COALESCE(a11.Code_Cd,NULLIF('WFM_'||TRIM(a1.spouse_cert_type),'WFM_'),'-1'),a1.spouse_cert_no,a1.spouse_work_unit,a1.spouse_tel_no,a1.company_name,a1.unit_address,a1.unit_zip,a1.entry_year,a1.professional_title,a1.wage_account,a1.wage_account_bank,a1.present_addr,a1.present_zip,a1.living_condition,COALESCE(a12.Code_Cd,NULLIF('WFM_'||TRIM(a1.cust_class),'WFM_'),'-1'),COALESCE(a13.Code_Cd,NULLIF('WFM_'||TRIM(a1.cust_level),'WFM_'),'-1'),COALESCE(a14.Code_Cd,NULLIF('WFM_'||TRIM(a1.business_type),'WFM_'),'-1'),a1.loan_card_no,a1.loan_card_pwd,COALESCE(a15.Code_Cd,NULLIF('WFM_'||TRIM(a1.loan_card_state),'WFM_'),'-1'),COALESCE(a16.Code_Cd,NULLIF('WFM_'||TRIM(a1.guarantor_type),'WFM_'),'-1'),COALESCE(a17.Code_Cd,NULLIF('WFM_'||TRIM(a1.ethnic_origin),'WFM_'),'-1'),a1.spouse_profession,a1.linkman,a1.fax,a1.account_no,DECODE(a1.is_staff,'1','Y','0','N','-1')   --是否为本行员工,a1.register_date,a1.org_code2,a1.mgr_no2,a1.update_dateFROM    ODS_CIF_CIF_P_CUST         a1LEFT JOIN (SELECT Cust_No,MAX(BLACKLST_DAT_FROM) AS BLACKLST_DAT_FROM,MAX(BLACKLST_DAT_TO)   AS BLACKLST_DAT_TOFROM    ODS_CIF_CIF_BLACKLISTWHERE   Ods_Data_Date = P_ETLDATEGROUP BY Cust_No)                        a2ON      a1.Cust_No=a2.Cust_No--AND     a2.Ods_Data_Date = P_ETLDATE--AND     P_ETLDATE BETWEEN TO_CHAR(a2.BLACKLST_DAT_FROM,'YYYYMMDD') and TO_CHAR(a2.BLACKLST_DAT_TO,'YYYYMMDD')AND     P_ETLDATE BETWEEN a2.BLACKLST_DAT_FROM AND a2.BLACKLST_DAT_TO --源表数据结构有变化,现在已经是varchar型,不需要再转换一下 --alter by nisj 20091207LEFT JOIN EDW_MAP_CERT_TYPE_CD     a3ON      a1.cert_type = a3.SRC_CODE_CDAND     a3.SRC_NO = '1006'LEFT JOIN EDW_MAP_SEX_CD           a4ON      a1.sex = a4.SRC_CODE_CDAND     a4.SRC_NO = '1006'LEFT JOIN EDW_MAP_Marriage_CD a5ON      a1.marital_status = a5.SRC_CODE_CDAND     a5.SRC_NO = '1006'LEFT JOIN EDW_MAP_Education_CD a6ON      a1.highest_education = a6.SRC_CODE_CDAND     a6.SRC_NO = '1006'LEFT JOIN EDW_MAP_Degree_CD a7ON      a1.highest_degree = a7.SRC_CODE_CDAND     a7.SRC_NO = '1006'LEFT JOIN EDW_MAP_DISTRICT_CD a8ON      a1.regional_division = a8.SRC_CODE_CDAND     a8.SRC_NO = '1006'LEFT JOIN EDW_MAP_CUST_KIND_CD a9ON      a1.cust_type = a9.SRC_CODE_CDAND     a9.SRC_NO = '1006'LEFT JOIN EDW_MAP_Borrower_Prop_Cd a10ON      a1.borrower_property = a10.SRC_CODE_CDAND     a10.SRC_NO = '1006'LEFT JOIN EDW_MAP_CERT_TYPE_CD a11ON      UPPER(a1.spouse_cert_type) = a11.SRC_CODE_CDAND     a11.SRC_NO = '1006'LEFT JOIN EDW_MAP_CUST_CLASS_CD a12ON      a1.cust_class = a12.SRC_CODE_CDAND     a12.SRC_NO = '1006'LEFT JOIN EDW_MAP_Cust_Level_Cd a13ON      a1.cust_level = a13.SRC_CODE_CDAND     a13.SRC_NO = '1006'LEFT JOIN EDW_MAP_Business_Type_Cd a14ON      a1.business_type = a14.SRC_CODE_CDAND     a14.SRC_NO = '1006'LEFT JOIN EDW_MAP_Loan_Card_State_Cd a15ON      a1.loan_card_state = a15.SRC_CODE_CDAND     a15.SRC_NO = '1006'LEFT JOIN EDW_MAP_Guarantor_Type_Cd a16ON      a1.guarantor_type = a16.SRC_CODE_CDAND     a16.SRC_NO = '1006'LEFT JOIN EDW_MAP_Ethnic_Origin_Cd a17ON      a1.ethnic_origin = a17.SRC_CODE_CDAND     a17.SRC_NO = '1006'WHERE   a1.Ods_Data_Date=P_ETLDATE;--过程执行结束位置--增量更新操作--按主键删除更新部分记录DELETE FROM EDW_T02_PERSONAL_CUSTOMERWHERE   (cust_no)IN      (SELECT cust_noFROM    TMP_T02_PERSONAL_CUSTOMER);--插入新增和更新数据INSERT INTO EDW_T02_PERSONAL_CUSTOMER(Cust_No                --客户编号,Src_Cust_No            --源系统客户编号,Cust_Name              --客户名称,Cert_Type_Cd           --证件类型,Cert_Num               --证件号码,Birthday               --出生日期,Sex_Cd                 --性别,Job                    --职位,Position               --职务,Marriage_Cd            --婚姻状况,Education_Cd           --最高学历,Degree_Cd              --最高学位,Ann_Income             --年收入,Belong_Industry        --单位所属行业,District_Cd            --区域划分,Cust_Kind_Cd           --客户类别,Borrower_Prop_Cd       --借款人性质,Stockholder_Flag       --我行股东标志,Blacklist_Flag         --黑名单标志,Main_Cust_Flag         --重点客户标志,Tmp_Cust_Flag          --临时客户标志,Cust_Status_Cd         --客户状态,Oper_Org_No            --经办机构编号,Manager_No             --客户经理编号,Home_Tel               --住宅电话,Mobile                 --手机号码,Company_Tel            --单位电话,Email                  --EMAIL,Country_Borrowers      --借款人国别,Admi_Divisions         --行政区划,City                   --所在城市,Contact_Addr           --通讯地址,Contact_Addr_Zip       --通讯地址邮编,Residence_Addr         --户籍地址,Spouse_Name            --配偶姓名,Spouse_Cert_Type_Cd    --配偶证件类型,Spouse_Cert_Num        --配偶证件号码,Spouse_Work_Unit       --配偶工作单位,Spouse_Tel_No          --配偶联系电话,Company_Name           --单位名称,Unit_Address           --单位地址,Unit_Zip               --单位地址邮编,Entry_Year             --本单位起始工作年份,Professional_Title     --职称,Wage_Account           --工资帐号,Wage_Account_Bank      --工资帐号开户行,Present_Addr           --居住地址,Present_Zip            --居住地址邮政编码,Living_Condition       --居住状况,Cust_Class_Cd          --客户分类,Cust_Level_Cd          --客户级别,Business_Type_Cd       --企业登记注册类型,Loan_Card_No           --贷款卡号,Loan_Card_Pwd          --贷款卡密码,Loan_Card_State_Cd     --贷款卡状态,Guarantor_Type_Cd      --保证人类别,Ethnic_Origin_Cd       --民族,Spouse_Profession      --配偶职业,Linkman                --联系人,Fax                    --传真,Account_No             --本行帐号,Is_Staff_Flag          --是否为本行员工,Register_Date          --作成日期,Oper_Org_No2           --经办机构,Manager_No2            --经办经理,Update_Date            --更新日期,Update_Dt)SELECT  Cust_No                --客户编号,Src_Cust_No            --源系统客户编号,Cust_Name              --客户名称,Cert_Type_Cd           --证件类型,Cert_Num               --证件号码,Birthday               --出生日期,Sex_Cd                 --性别,Job                    --职位,Position               --职务,Marriage_Cd            --婚姻状况,Education_Cd           --最高学历,Degree_Cd              --最高学位,Ann_Income             --年收入,Belong_Industry        --单位所属行业,District_Cd            --区域划分,Cust_Kind_Cd           --客户类别,Borrower_Prop_Cd       --借款人性质,Stockholder_Flag       --我行股东标志,Blacklist_Flag         --黑名单标志,Main_Cust_Flag         --重点客户标志,Tmp_Cust_Flag          --临时客户标志,Cust_Status_Cd         --客户状态,Oper_Org_No            --经办机构编号,Manager_No             --客户经理编号,Home_Tel               --住宅电话,Mobile                 --手机号码,Company_Tel            --单位电话,Email                  --EMAIL,Country_Borrowers      --借款人国别,Admi_Divisions         --行政区划,City                   --所在城市,Contact_Addr           --通讯地址,Contact_Addr_Zip       --通讯地址邮编,Residence_Addr         --户籍地址,Spouse_Name            --配偶姓名,Spouse_Cert_Type_Cd    --配偶证件类型,Spouse_Cert_Num        --配偶证件号码,Spouse_Work_Unit       --配偶工作单位,Spouse_Tel_No          --配偶联系电话,Company_Name           --单位名称,Unit_Address           --单位地址,Unit_Zip               --单位地址邮编,Entry_Year             --本单位起始工作年份,Professional_Title     --职称,Wage_Account           --工资帐号,Wage_Account_Bank      --工资帐号开户行,Present_Addr           --居住地址,Present_Zip            --居住地址邮政编码,Living_Condition       --居住状况,Cust_Class_Cd          --客户分类,Cust_Level_Cd          --客户级别,Business_Type_Cd       --企业登记注册类型,Loan_Card_No           --贷款卡号,Loan_Card_Pwd          --贷款卡密码,Loan_Card_State_Cd     --贷款卡状态,Guarantor_Type_Cd      --保证人类别,Ethnic_Origin_Cd       --民族,Spouse_Profession      --配偶职业,Linkman                --联系人,Fax                    --传真,Account_No             --本行帐号,Is_Staff_Flag          --是否为本行员工,Register_Date          --作成日期,Oper_Org_No2           --经办机构,Manager_No2            --经办经理,Update_Date            --更新日期,P_ETLDATEFROM    TMP_T02_PERSONAL_CUSTOMER;--正常处理V_RECORD_NUMBER := SQL%ROWCOUNT;SELECT SYSDATE INTO V_END_TIMESTAMP FROM dual;INSERT INTO EDW_ETL_LOG_DETAIL(START_TIMESTAMP,END_TIMESTAMP,PROC_NAME,TABLE_NAME,ETL_RECORD_NUM,ETL_MEMO,P_ETLDATE)VALUES (V_START_TIMESTAMP,V_END_TIMESTAMP,V_PROC_NAME,V_TABLE_NAME,V_RECORD_NUMBER,'成功',P_ETLDATE);COMMIT;--异常处理EXCEPTION WHEN OTHERS THENBEGINROLLBACK;V_SQLERRM := SQLERRM;INSERT INTO EDW_ETL_LOG_DETAIL(START_TIMESTAMP,END_TIMESTAMP,PROC_NAME,TABLE_NAME,ETL_RECORD_NUM,ETL_MEMO,ERR_MSG,ERR_SQL,P_ETLDATE)VALUES (V_START_TIMESTAMP,V_END_TIMESTAMP,V_PROC_NAME,V_TABLE_NAME,0,'失败',V_SQLERRM,V_ERR_SQL,P_ETLDATE);O_RUNSTATUS := 1;O_MSG := 'PROGRAMMING ERROR HAPPENED';COMMIT;END;END;/
CREATE OR REPLACE PROCEDURE P_T01_LOAN_CONTRACT_INFO(P_ETLDATE  IN    VARCHAR2,    --日期参数O_RUNSTATUS OUT   NUMBER,      --执行结果O_MSG       OUT   VARCHAR2     --错误返回) AS--Procedure Name:P_T01_LOAN_CONTRACT_INFO
--Author        :倪士甲 20090930
--Update_Author :luyanhua 2009-10-18 修改加载方式
--UpdateAuthor  :陈文浩   20100426 统一取不到的FLAG值为'-1'
--Script File   :P_T01_LOAN_CONTRACT_INFO.SQL
/*###################################################*/
--Souce Databse.table  :
--ODS_CMS_CMIS_SXHT                 授信合同
--ODS_WFM_BIZ_LOAN                  贷款合同
/*###################################################*/
--Target Databse.table :
--EDW_T01_LOAN_CONTRACT_INFO        贷款合同指标信息
/*###################################################*/
--加载方式:增量更新--定义存储过程信息V_PROC_NAME       VARCHAR2(50)   := 'P_T01_LOAN_CONTRACT_INFO';V_TABLE_NAME      VARCHAR2(50)   := 'EDW_T01_LOAN_CONTRACT_INFO';V_START_TIMESTAMP TIMESTAMP;                --加载开始时间V_END_TIMESTAMP   TIMESTAMP;                --加载结束时间V_RECORD_NUMBER   INTEGER;                  --记录数--定义错误代码,错误状态V_SQLERRM         VARCHAR2(1000);           --异常信息V_ERR_SQL         VARCHAR2(1000);           --出错位置BEGIN--捕获过程开始时间SELECT SYSDATE INTO V_START_TIMESTAMP FROM dual;--清空临时表EXECUTE IMMEDIATE 'TRUNCATE TABLE '||REPLACE(V_TABLE_NAME,'EDW','TMP');--增量更新历史回滚DELETE FROM EDW_T01_LOAN_CONTRACT_INFO WHERE Update_Dt >= P_ETLDATE;--加载当天全量数据V_ERR_SQL := 'INSERT INTO TMP_T01_LOAN_CONTRACT_INFO-1';INSERT INTO TMP_T01_LOAN_CONTRACT_INFO(Agmt_No                      --协议编号,Agmt_Sub_No                  --协议次编号,Loan_Dirc_Cd                 --贷款投向,Loan_Use_Type                --贷款用途,Loan_Form_Cd                 --贷款形式,Orig_Agmt_No                 --原协议编号,House_Loan_Type_Cd           --房地产贷款类型,Bank_Consortium_Flag         --银团标志,Meager_Profit_Cd             --微利标志,Entrust_Loan_Flag            --委托贷款标志,Entrust_Name                 --委托人全称,Entrust_Deposit_Acct         --委托存款帐号,Fin_Prom_Scope               --财政承诺范围,Fin_Prom_Scope_A             --财政承诺范围a,Fin_Prom_Scope_B             --财政承诺范围b,Fin_Prom_Scope_C             --财政承诺范围c,New_Biz_Flag                 --新增业务标志,Vendor_Acct                  --经销商帐号,Vendor_Name                  --经销商全称,Last_Grace_End_Date          --最后宽限到期日,Bank_Consortium_Agmt_Amt     --银团协议总额,Lead_Bank_Flag               --主办行标志,Lead_Bank_Repay_Acct         --主办行还款帐号,Charge_Rate                  --费率,Charge_Amt                   --手续费金额,Low_Int_Subsidy_Flag         --低息贴息标志,Farm_Loan_Flag               --涉农贷款标志,Farm_Loan_Type_Cd            --涉农贷款分类,Farm_Syn_Dev_Loan_Flag       --农业综合开发贷款标志,Poverty_Subsidy_Loan_Flag    --扶贫贴息贷款标志,Lead_Corp_Flag               --龙头企业标志,Lead_Corp_Level_Cd           --龙头企业等级,Approve_No                   --审批流编号,Businessid_Loan_Flag         --经营性贷款标志,Cod_Pay_Mode_Cd              --支付方式标志:1是自主支付;2是受托支付)SELECT  a1.xtsxhtbh,'2100'                       --CMIS授信主表,a1.dktx,a1.dkyt,COALESCE(a3.Code_Cd,NULLIF('CMS_'||TRIM(a1.dksx),'CMS_'),'-1'),a1.yxtsxhtbh,COALESCE(a4.Code_Cd,NULLIF('CMS_'||TRIM(a1.fdcdklx),'CMS_'),'-1'),CASEWHEN a1.sfyt = '0' THEN 'Y'  --是WHEN a1.sfyt = '1' THEN 'N'  --否ELSE '-1'END,COALESCE(a5.code_cd,NULLIF('CMS_'||TRIM(a1.WLBZ),'CMS_'),'-1'),CASEWHEN a1.wtdkbz = '1' THEN 'Y' --是WHEN a1.wtdkbz = '0' THEN 'N' --否ELSE '-1'END,a1.wtrqc,a1.wtckzh,a1.czcnfw,a1.czcnfw1,a1.czcnfw2,a1.czcnfw3,CASEWHEN a1.xzywbz = '0' THEN 'Y' --是WHEN a1.xzywbz = '1' THEN 'N' --否ELSE '-1'END,a1.jxszh,a1.jxsqc,a1.zhkxdqr,a1.ytxyze,CASEWHEN a1.zbhbz = '0' THEN 'Y' --是WHEN a1.zbhbz = '1' THEN 'N' --否ELSE '-1'END,a1.zbhhkzh,a1.fl,a1.sxfje,'-1',CASEWHEN TRIM(a1.SNDKBZ) = '1' THEN 'Y' --是WHEN TRIM(a1.SNDKBZ) = '0' THEN 'N' --否ELSE '-1'END,'CMS_' || TRIM(a1.SNDKFL),CASEWHEN TRIM(a1.NYZHKFDKBZ) = '1' THEN 'Y' --是WHEN TRIM(a1.NYZHKFDKBZ) = '0' THEN 'N' --否ELSE '-1'END,CASEWHEN TRIM(a1.FPTXDKBZ) = '1' THEN 'Y' --是WHEN TRIM(a1.FPTXDKBZ) = '0' THEN 'N' --否ELSE '-1'END,CASEWHEN TRIM(a1.NTQYBZ) = '1' THEN 'Y' --是WHEN TRIM(a1.NTQYBZ) = '0' THEN 'N' --否ELSE '-1'END,a1.NTQYDJ,a1.PROCESSINSTID,NULL,NULLFROM    ODS_CMS_CMIS_SXHT                a1INNER JOIN EDW_T99_APPL_TYPE_CD          a2ON      a1.Htlx = a2.Code_CdAND     a2.Type_Cd = '1'--AND     a1.Htzt NOT IN ('1','4','5','7')LEFT JOIN EDW_MAP_LOAN_FORM_CD           a3ON      a1.dksx = a3.Src_Code_CdAND     a3.Src_No = '1005'LEFT JOIN EDW_MAP_HOUSE_LOAN_TYPE_CD     a4ON      a1.fdcdklx = a4.Src_Code_CdAND     a4.Src_No = '1005'LEFT JOIN EDW_MAP_MEAGER_PROFIT_CD       a5ON      a1.WLBZ = a5.src_code_cdAND     A5.SRC_NO = '1005'WHERE   a1.Ods_Data_Date = P_ETLDATE;--2009/11/4添加WFM源V_ERR_SQL := 'INSERT INTO TMP_T01_LOAN_CONTRACT_INFO  FROM ODS_WFM_BIZ_LOAN';INSERT INTO TMP_T01_LOAN_CONTRACT_INFO(Agmt_No                      --协议编号,Agmt_Sub_No                  --协议次编号,Loan_Dirc_Cd                 --贷款投向,Loan_Use_Type                --贷款用途,Loan_Form_Cd                 --贷款形式,Orig_Agmt_No                 --原协议编号,House_Loan_Type_Cd           --房地产贷款类型,Bank_Consortium_Flag         --银团标志,Meager_Profit_Cd             --微利标志,Entrust_Loan_Flag            --委托贷款标志,Entrust_Name                 --委托人全称,Entrust_Deposit_Acct         --委托存款帐号,Fin_Prom_Scope               --财政承诺范围,Fin_Prom_Scope_A             --财政承诺范围a,Fin_Prom_Scope_B             --财政承诺范围b,Fin_Prom_Scope_C             --财政承诺范围c,New_Biz_Flag                 --新增业务标志,Vendor_Acct                  --经销商帐号,Vendor_Name                  --经销商全称,Last_Grace_End_Date          --最后宽限到期日,Bank_Consortium_Agmt_Amt     --银团协议总额,Lead_Bank_Flag               --主办行标志,Lead_Bank_Repay_Acct         --主办行还款帐号,Charge_Rate                  --费率,Charge_Amt                   --手续费金额,Low_Int_Subsidy_Flag         --低息贴息标志,Farm_Loan_Flag               --涉农贷款标志,Farm_Loan_Type_Cd            --涉农贷款分类,Farm_Syn_Dev_Loan_Flag       --农业综合开发贷款标志,Poverty_Subsidy_Loan_Flag    --扶贫贴息贷款标志,Lead_Corp_Flag               --龙头企业标志,Lead_Corp_Level_Cd           --龙头企业等级,Approve_No                   --审批流编号,Businessid_Loan_Flag         --经营性贷款标志,Cod_Pay_Mode_Cd              --支付方式标志:1是自主支付;2是受托支付)SELECT  a1.BUSINESSID,'3100'                       --WFM主合同,TRIM(a1.INVESTDOMAIN),TRIM(a1.LOANPURPOSE),COALESCE(a2.code_cd,NULLIF('WFM_'||a1.LOANTYPE1,'WFM_'),'-1'),' ',COALESCE(a3.code_cd,NULLIF('WFM_'||a1.LOANTYPE4,'WFM_'),'-1'),'-1',COALESCE(a4.code_cd,NULLIF('WFM_'||TRIM(a1.BENEFITFLAG),'WFM_'),'-1'),'-1',TRIM(a1.ENTRUSTOR),TRIM(a1.ENTRUSTEDACCOUNT),TRIM(a1.FINANCEPROMISESCOPE),SUBSTR(TRIM(a1.FINANCEPROMISESCOPE),1,INSTR(a1.FINANCEPROMISESCOPE,',',1,1) - 1),substr(a1.FINANCEPROMISESCOPE, instr(a1.FINANCEPROMISESCOPE, ',', 1, 1) + 1, instr(a1.FINANCEPROMISESCOPE, ',', 1, 2) - instr(a1.FINANCEPROMISESCOPE, ',', 1, 1) - 1),SUBSTR(TRIM(a1.FINANCEPROMISESCOPE),INSTR(a1.FINANCEPROMISESCOPE,',',1,2) + 1),'-1',TRIM(a1.SELLERACCOUNT),TRIM(a1.SELLERNAME),' ',a1.BANKGROUPAGREEAMOUNT,CASEWHEN TRIM(a1.MAINBANKFLAG) = 'Y' THEN 'Y' --是WHEN TRIM(a1.MAINBANKFLAG) = 'N' THEN 'N' --否ELSE '-1'END,a1.BANKGROUPREPAYMENTACCOUNT,0,0,CASEWHEN TRIM(a1.INTERESTDISCOUNTFLAG) = '0' THEN 'Y' --是WHEN TRIM(a1.INTERESTDISCOUNTFLAG) = '1' THEN 'N' --否ELSE '-1'END,CASEWHEN TRIM(a1.AGRFLAG1) = 'Y' THEN 'Y' --是WHEN TRIM(a1.AGRFLAG1) = 'N' THEN 'N' --否ELSE '-1'END,'WFM_' || TRIM(a1.AGRTYPE),CASEWHEN TRIM(a1.AGRFLAG2) = 'Y' THEN 'Y' --是WHEN TRIM(a1.AGRFLAG2) = 'N' THEN 'N' --否ELSE '-1'END,CASEWHEN TRIM(a1.AGRFLAG3) = 'Y' THEN 'Y' --是WHEN TRIM(a1.AGRFLAG3) = 'N' THEN 'N' --否ELSE '-1'END,CASEWHEN TRIM(a1.AGRFLAG4) = 'Y' THEN 'Y' --是WHEN TRIM(a1.AGRFLAG4) = 'N' THEN 'N' --否ELSE '-1'END,'-1',a5.Processinstid,CASEWHEN TRIM(a1.LOANTYPE3) = '1' THEN 'Y' --是WHEN TRIM(a1.LOANTYPE3) = '2' THEN 'N' --否ELSE '-1'END,DECODE(TRIM(a1.Cod_Pay_Mode),1,1,2,2,'-1') --支付方式标志:1是自主支付;2是受托支付 -1未定义FROM    ODS_WFM_BIZ_LOAN             a1LEFT JOIN EDW_MAP_LOAN_FORM_CD       a2ON      TRIM(a1.LOANTYPE1) = a2.Src_Code_CdAND     a2.Src_No = '1006'LEFT JOIN EDW_MAP_HOUSE_LOAN_TYPE_CD a3ON      TRIM(a1.LOANTYPE4) = a3.Src_Code_CdAND     a3.Src_No = '1006'LEFT JOIN EDW_MAP_MEAGER_PROFIT_CD   a4ON      TRIM(a1.BENEFITFLAG) = a4.Src_Code_CdAND     a4.Src_No = '1006'LEFT join ODS_WFM_BIZ_BUSINESS       a5ON      a1.BUSINESSID = a5.BUSINESSIDAND     a5.ods_data_date = P_ETLDATEWHERE   a1.Ods_Data_Date = P_ETLDATE;--增量更新操作--按主键删除更新部分记录DELETE FROM EDW_T01_LOAN_CONTRACT_INFOWHERE   (Agmt_No,Agmt_Sub_No)IN      (SELECT Agmt_No,Agmt_Sub_NoFROM    TMP_T01_LOAN_CONTRACT_INFO);--插入新增和更新的数据INSERT INTO EDW_T01_LOAN_CONTRACT_INFO(Agmt_No                      --协议编号,Agmt_Sub_No                  --协议次编号,Loan_Dirc_Cd                 --贷款投向,Loan_Use_Type                --贷款用途,Loan_Form_Cd                 --贷款形式,Orig_Agmt_No                 --原协议编号,House_Loan_Type_Cd           --房地产贷款类型,Bank_Consortium_Flag         --银团标志,Meager_Profit_Cd             --微利标志,Entrust_Loan_Flag            --委托贷款标志,Entrust_Name                 --委托人全称,Entrust_Deposit_Acct         --委托存款帐号,Fin_Prom_Scope               --财政承诺范围,Fin_Prom_Scope_A             --财政承诺范围a,Fin_Prom_Scope_B             --财政承诺范围b,Fin_Prom_Scope_C             --财政承诺范围c,New_Biz_Flag                 --新增业务标志,Vendor_Acct                  --经销商帐号,Vendor_Name                  --经销商全称,Last_Grace_End_Date          --最后宽限到期日,Bank_Consortium_Agmt_Amt     --银团协议总额,Lead_Bank_Flag               --主办行标志,Lead_Bank_Repay_Acct         --主办行还款帐号,Charge_Rate                  --费率,Charge_Amt                   --手续费金额,Low_Int_Subsidy_Flag         --低息贴息标志,Farm_Loan_Flag               --涉农贷款标志,Farm_Loan_Type_Cd            --涉农贷款分类,Farm_Syn_Dev_Loan_Flag       --农业综合开发贷款标志,Poverty_Subsidy_Loan_Flag    --扶贫贴息贷款标志,Lead_Corp_Flag               --龙头企业标志,Lead_Corp_Level_Cd           --龙头企业等级,Approve_No                   --审批流编号,Update_Dt,Businessid_Loan_Flag         --经营性贷款标志,Cod_Pay_Mode_Cd              --支付方式标志:1是自主支付;2是受托支付)SELECT  Agmt_No                      --协议编号,Agmt_Sub_No                  --协议次编号,Loan_Dirc_Cd                 --贷款投向,Loan_Use_Type                --贷款用途,Loan_Form_Cd                 --贷款形式,Orig_Agmt_No                 --原协议编号,House_Loan_Type_Cd           --房地产贷款类型,Bank_Consortium_Flag         --银团标志,Meager_Profit_Cd             --微利标志,Entrust_Loan_Flag            --委托贷款标志,Entrust_Name                 --委托人全称,Entrust_Deposit_Acct         --委托存款帐号,Fin_Prom_Scope               --财政承诺范围,Fin_Prom_Scope_A             --财政承诺范围a,Fin_Prom_Scope_B             --财政承诺范围b,Fin_Prom_Scope_C             --财政承诺范围c,New_Biz_Flag                 --新增业务标志,Vendor_Acct                  --经销商帐号,Vendor_Name                  --经销商全称,Last_Grace_End_Date          --最后宽限到期日,Bank_Consortium_Agmt_Amt     --银团协议总额,Lead_Bank_Flag               --主办行标志,Lead_Bank_Repay_Acct         --主办行还款帐号,Charge_Rate                  --费率,Charge_Amt                   --手续费金额,Low_Int_Subsidy_Flag         --低息贴息标志,Farm_Loan_Flag               --涉农贷款标志,Farm_Loan_Type_Cd            --涉农贷款分类,Farm_Syn_Dev_Loan_Flag       --农业综合开发贷款标志,Poverty_Subsidy_Loan_Flag    --扶贫贴息贷款标志,Lead_Corp_Flag               --龙头企业标志,Lead_Corp_Level_Cd           --龙头企业等级,Approve_No                   --审批流编号,P_ETLDATE,Businessid_Loan_Flag         --经营性贷款标志,Cod_Pay_Mode_Cd              --支付方式标志:1是自主支付;2是受托支付FROM    TMP_T01_LOAN_CONTRACT_INFO;--正常处理V_RECORD_NUMBER := SQL%ROWCOUNT;SELECT SYSDATE INTO V_END_TIMESTAMP FROM dual;INSERT INTO EDW_ETL_LOG_DETAIL(START_TIMESTAMP,END_TIMESTAMP,PROC_NAME,TABLE_NAME,ETL_RECORD_NUM,ETL_MEMO,P_ETLDATE)VALUES (V_START_TIMESTAMP,V_END_TIMESTAMP,V_PROC_NAME,V_TABLE_NAME,V_RECORD_NUMBER,'成功',P_ETLDATE);COMMIT;--异常处理EXCEPTION WHEN OTHERS THENBEGINROLLBACK;V_SQLERRM := SQLERRM;INSERT INTO EDW_ETL_LOG_DETAIL(START_TIMESTAMP,END_TIMESTAMP,PROC_NAME,TABLE_NAME,ETL_RECORD_NUM,ETL_MEMO,ERR_MSG,ERR_SQL,P_ETLDATE)VALUES (V_START_TIMESTAMP,V_END_TIMESTAMP,V_PROC_NAME,V_TABLE_NAME,0,'失败',V_SQLERRM,V_ERR_SQL,P_ETLDATE);O_RUNSTATUS := 1;O_MSG := 'PROGRAMMING ERROR HAPPENED';COMMIT;END;END;/

3、如果要进行多个P_ETLDATE总控程序的调度,则可以写个游标来处理。

ETL后台存储过程总调度一例相关推荐

  1. CentOS7中设置.sh开机自启动(以后台启动geoserver为例)

    场景 Geoserver在Linux上的安装(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/118963122 在上 ...

  2. 系统设计与架构笔记:ETL工具开发和设计的建议

    好久没写博客了,不是自己偷懒,的确是没有时间哦. 最近项目组里想做一个ETL数据抽取工具,这是一个研发项目,但是感觉公司并不是特别重视,不重视不是代表它不重要,而是可能不会对这个项目要求太高,能满足我 ...

  3. PP: 混合生产方式(MTO与MTS为例)

    混合生产方式(MTO与MTS为例) 一.业务概览 某公司生产的同一种产品正常情况下客户无特别要求,因此采用按库存生产的业务模式,但偶尔客户会有非常细小的改变,这种细小的改变基本不影响BOM和工艺,此时 ...

  4. java存储过程与sql语句_存储过程与SQL语句怎么选择

    应用存储过程的优点: 1.具有更好的性能 存储过程是预编译的,只在创建时进行编译,以后每次执行存储过程都不需再重新编译, 而一般 SQL 语句每执行一次就编译一次,因此使用存储过程可以提高数据库执行速 ...

  5. db2 删除存储过程_数据库教程-SQL Server存储过程使用及异常处理

    SQL Server存储过程 存储过程(Procedure)是数据库重要对象之一,也是数据库学习的重点之一.本文,我们以SQL Server为例对存储过程的概念.定义.调用.删除及存储过程调用异常等通 ...

  6. 反射和内省_单例设计模式–内省和最佳实践

    反射和内省 定义: Singleton是" 四人帮"设计模式的一部分,它属于创新设计模式. 在本文中,我们将更深入地研究Singleton模式的用法. 就建模而言,它是最简单的设计 ...

  7. 单例设计模式–内省和最佳实践

    定义: Singleton是" 四人帮"设计模式的一部分,它属于创新设计模式. 在本文中,我们将更深入地研究Singleton模式的用法. 就建模而言,它是最简单的设计模式之一,但 ...

  8. SQL Server检索存储过程的结果集

    目的:检索过滤执行存储过程的结果集 如下介绍两个常用的方法,但是都需要申明表结构:不知道是否有更简便的方法,如有更好的方法,请不吝赐教. 以系统存储过程sp_who2为例: 方法1:使用临时表 1 - ...

  9. SQL优化之存储过程强制编译

    ASP.NET调用SQL后台存储过程时,有时突然就变得很慢,在后台直接执行存储过程没问题,但在前台调用存储过程时就是很慢,而且在前台调用成功后,再次调用还是一样的慢,但更新一下存储过程再调用就很快了. ...

最新文章

  1. 状态机在计算机中的应用
  2. IJCAI主席杨强:联邦学习的最新发展及应用
  3. js根据应纳税所得额计算税金
  4. pythoncsv数据类型_Python处理csv文件
  5. stl向量_用户定义大小的C ++ STL中的2D向量
  6. 公众号出现该公众号提供的服务出现故障分析
  7. 程序员编程能力和年龄的关系
  8. C语言学习输入输出函数,函数的调用
  9. python面向对象属性_Python面向对象属性
  10. linux基础--grep以及模式正则表达式
  11. NET面试题:在C#中如何声明一个类不能被继承
  12. Java JSON中无分隔符日期字符串处理
  13. 2021-08-13 sql练习
  14. ENVI学习总结(三)——图像几何校正
  15. IT精英?OR IT民工?
  16. 关于security_huks安全模块的知识总结(一)
  17. 少儿学python真的有用吗_如何看待海淀妈妈们认为Python是儿童才学的低端编程?...
  18. Cannot read property ‘$message‘ of undefined
  19. 浅谈面试与简历——总结于尚硅谷视频《程序员面试指南》
  20. 【电子数据取证】8个门道儿

热门文章

  1. 金立m5android经常自启,手机体验更好 金立M5迎来首次系统升级
  2. php+微信开发实现微信图书馆图书查询
  3. 网站架构:负载均衡(下)
  4. C++快速开发例子1--ADO之Briefcase
  5. 一个网络失败者的深情告白
  6. 教你用 Spring Boot 表白女神,撒一波高技术狗粮
  7. 3 年小前端聊聊跳槽、技术成长与职业规划
  8. mysql 大对象_Oracle 4个大对象(lobs)数据类型介绍
  9. 用C语言计算超大乘法,C语言中超大整数乘法运算.docx
  10. 区块链的关键技术是哪些技术