部署定时任务每2天清理一次表
1、创建存储过程
create or replace procedure truct
authid current_user ---使用“authid Current_user”将存储过程转化为调用者权限
as
begin
execute immediate 'truncate table rep.tmp_s_st_busi_send_arc';
end;
/
2、创建定时任务
begin
dbms_scheduler.create_job(
job_name => 'truct_tab',
job_type => 'STORED_PROCEDURE',
JOB_ACTION => 'TRUCT',
start_date =>to_timestamp_tz('2022-01-30 15:00:00 +8:00','YYYY-MM-DD HH24:MI:SS TZH:TZM'),
REPEAT_INTERVAL =>'FREQ=DAILY;INTERVAL=2',
ENABLED => TRUE);
END;
/
3、执行定时任务
begin
dbms_scheduler.drop_job(job_name=>'system.truct_tab');
end;
表是否被truncate,可以在dba_objects视图中验证。
4、报错处理
调试过程中错误(PLS-0036 wrong number or types of arguments in call to 'CREATE_JOB'):
原因是create_job的一个参数写错了。
这里的enabled 被错误的写成了endabled,导致报错。