https://www.cnblogs.com/dc-earl/category/1246799.html
https://blog.youkuaiyun.com/m0_37941193/article/details/76456988
#本案例是每天定时修改交易日期为当天
–procedure(存储过程)
– 创建存储过程
create or replace procedure update_trade_dt as
begin
update WDZX.CBondAnalysisCNBD set trade_dt = (select to_char(sysdate,‘yyyymmdd’) as trade_dt from dual);
update WDZX.CBondAnalysisCSI set trade_dt = (select to_char(sysdate,‘yyyymmdd’) as trade_dt from dual);
commit;
end;
– 调用方式
begin
update_trade_dt;
end;
– schedules(调度)
– 查询当前已经创建的schedules,可以通过*SCHEDULER_SCHEDULES视图(含DBA,ALL_,USER_),例如,查看当前用户拥有的schedules,执行语句如下:
select schedule_name,repeat_interval from user_scheduler_schedules;
– 创建schedules
begin
DBMS_SCHEDULER.CREATE_SCHEDULE (
schedule_name => ‘update_trade_dt_schedule’,
start_date => SYSDATE,
repeat_interval => ‘FREQ=Daily; INTERVAL=1’,
comments => ‘Every 1 day’);
END;
–至于删除schedule,再简单不过,执行DBMS_SCHEDULER.DROP_SCHEDULE过程即可,例如:
SQL> EXEC DBMS_SCHEDULER.DROP_SCHEDULE(‘MY_FIRST_SCHEDULE’);
PL/SQL procedure successfully completed.
– Programs (执行某项功能的特殊对象)
BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM(
program_name => ‘update_trade_dt_program’,
program_type => ‘STORED_PROCEDURE’,
program_action => ‘update_trade_dt’,
enabled => true);
END;
–Jobs(所谓JOBS,其实就是Scheduler管理的一个(或多个)任务的执行调度。)
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name => ‘update_trade_dt_job’,
program_name => ‘update_trade_dt_program’,
schedule_name => ‘update_trade_dt_schedule’,
enabled => true);
END;