行云日志捕获
CREATE OR REPLACE procedure PROC_RECORD_CTL_JON_error(V_TABLEname VARCHAR,V_STEP NUMBER,V_STEP_DESC VARCHAR,V_ETL_DT VARCHAR,v_sqlcode varchar,v_sqlerrm varchar) AS V_NUM INT :=0 ;-- V_SQL VARCHAR(2000); V_PROC_NAME VARCHAR(2000); BEGIN v_proc_name := 'proc'||v_tablename ; v_sql := 'select xount(1) from v$user_tab_parts where table_name=''cdm_ctl_job_log'' and part_name=''p_'||v_tablename||''''; dbms_output.put_line(v_sql); execute immediate v_sql into v_num; dbms_output.put_line(v_num); if v_num<=0 then --add partiton v_sql :='alter table cdm_ctl_job_log add partiton p_' || v_tablename || '(proc_name=''proc_'||v_tablename||''')'; dbms_output.put_line(v_sql); execute immediate v_sql; insert into cdm_ctl_job_log( proc_name, --过程名 step,--步骤 step_desc,--步骤描述 etl_dt,--etl日期 operator_time,--操作时间 sql_code, sql_errror ) partition on (proc_name=v_proc_name) select v_proc_name, v_step, v_step_desc, v_etl_dt, current_date, v_sqlcode, v_sqlerrm from dual; elsif v_num>0 then insert into cdm_ctl_job_log( proc_name, --过程名 step,--步骤 step_desc,--步骤描述 etl_dt,--etl日期 operator_time,--操作时间 sql_code, sql_errror ) partition on (proc_name=v_proc_name) select v_proc_name, v_step, v_step_desc, v_etl_dt, current_date, v_sqlcode, v_sqlerrm from dual; end if; END;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通