create or replace procedure 存储过程名称(iv_date in varchar2,oi_return out integer) is vi_task_id integer; vv_task_name varchar2(30); vv_table_name varchar2(30); vv_task_pos varchar2(50); vi_result integer; vi_err_code integer; vv_err_msg varchar2(200); exc_return exception; exc_error exception; vi_date varchar2(8);begin execute immediate 'alter session enable parallel dml';vv_task_pos := '程序开始日志';vv_task_name := '';vv_table_name := ''; sp_sys_log(vi_task_id,1,vv_task_name,vv_table_name,iv_date,vv_err_msg,vv_task_pos,vi_result);vv_task_pos := '检查输入参数';if (iv_date is null) then vi_err_code := -1;vv_err_msg := '没有输入统计日期参数';raise exc_error;end if;vv_task_pos:='定义变量赋值';vi_date:=iv_date;vv_task_pos := '清空目标表中的数据'; execute immediate 'alter table 表名 truncate partition p' || vi_date;vv_task_pos := '插入数据到目标表';vi_result := sql%rowcount;commit;vv_task_pos := '程序结束日志';sp_sys_log(vi_task_id,0,null,null,null,null,null,vi_result);oi_return := 0;exception when exc_return then sp_sys_log(vi_task_id,0,null,null,null,vv_err_msg,vv_task_pos,vi_result);oi_return := 0;when exc_error then rollback;sp_sys_log(vi_task_id,vi_err_code,null,null,null,vv_err_msg,vv_task_pos,vi_result);oi_return := vi_err_code;when others then vi_err_code := sqlcode;vv_err_msg := substr(sqlerrm, 1, 200);rollback;sp_sys_log(vi_task_id,vi_err_code,null,null,null,vv_err_msg,vv_task_pos,vi_result);oi_return := vi_err_code;end;
存储过程
最新推荐文章于 2021-11-21 21:11:05 发布