存储demo

CREATE OR REPLACE PROC_CDM_TEST(V_DATE IN VARCHAR) AUTHID CURRENT_USER
/* *********************************************
@JOB_NAME[任务名称]
@DESC [任务描述]
@LOAD STRATEGY[加载策略]
@TARGET TABLE [目标表]
@ SOURCE TABLE [源表]
@CREATE DATE [创建日期]
@MODIFIED HISTORY[修改记录]
@TIPS
若关联表超过3个则采用建立临时表的方式,临时表命名规则为 目标表名称_TEMP01,目标表名称_TEMP02
************************************************/
IS
    V_STEP INT :=0;
    V_SQLCODE VARCHAR(100);
    V_SQLERRM VARCHAR(6000);
    V_TB_PART VAR(11);--分区名称
    V_SQL VARCHAR(2000);
    V_ODSFILENAME VARCHAR(200);--HDFS下数据文件名称
    V_HDFS_NAME VARCHAR(200); --文件位置
    V_TABLENAME VARCHAR(200);--目标表名称
    V_PROC_NAME VARCHAR(200);--存储过程名称
    V_TABLE_TYPE VARCHAR(200); --表类型, 1-全量加载 2-流水表加载
    V_MIN_DATE VARCHAR(10);--表里最小的数据日期
    V_OUT_DATA_POSITION VARCHAR(200);--导出数据文件存放的位置
    v_etl_date VARCHAR(10);
    ERROREXCEPTION EXCEPTION;
BEGIN
    V_TABLENAME :='CDM_TEST'; --目标表名称
    V_PROC_NAME :='PROC_CDM_TEST';
    V_TABLE_TYPE :='1';
    v_etl_date :=replace(V_DATE,'-','');
    V_TB_PART :='P_'||REPLACE(V_ETL_DATE,'-','');--分区名称
    
    begin
    --数据清理
    v_sql :='select min(data_dt) from cdm.'||V_TABLENAME||''')';
    EXECUTE IMMEDIATE V_SQL INTO V_MIN_DATE;
    V_RETURN :=CDM.THREEYEARS(V_TABLENAME,V_ETL_DATE,V_MIN_DATE);
    end;
    
    V_STEP :=V_STEP+1;
    CDM.PROC_RECORD_CTL_JOB_LOG(V_TABLENAME,V_STEP,'数据清理',v_etl_date);
    begin
    --新建分区
    v_sql :='ALTER TABLE CDM.'||V_TABLENAME||'ADD PARTITION ' ||V_TB_PART||'(DATA_DT='''||V_ETL_DATE|| ''')';
    DBMS_OUTPUT.PUT_LINE(V_SQL);
    EXECUTE IMMEDIATE V_SQL;
    end;
    
    EXCEPTION 
    WHEN ERROREXCEPTION THEN
        V_SQLCODE := CAST(SQLCODE AS VARCHAR(100));
        V_SQLERRM := SQLERRM;
        CDM.PROC_CTL_JOB_ERROR(V_TABLENAME,V_STEP+1,NULL,V_ETL_DATE,V_SQLCODE,V_SQLERRM);
    WHEN OTHERS THEN 
        V_SQLCODE := CAST(SQLCODE AS VARCHAR(100));
        V_SQLERRM := SQLERRM;
        CDM.PROC_CTL_JOB_ERROR(V_TABLENAME,V_STEP+1,NULL,V_ETL_DATE,V_SQLCODE,V_SQLERRM);
END

 

posted @ 2022-03-28 17:52  rjm123456  阅读(25)  评论(0编辑  收藏  举报