Job 管理

1.Creating a Job with In-Line Parameters

begin
  dbms_scheduler.create_job(
        job_name => 'test_job',
        job_type => 'plsql_block',
                 -- 指定job_action 中的执行内容
                 -- 1.plsql_block      ------- plsql块
                 -- 2.stored_procedure ------- 存储过程
                 -- 3.executable       ------- 操作系统的命令
        job_action => 'begin;end;',
        start_date => systimestamp,
                 -- job 的开始时间
        repeat_interval => 'FREQUENCY=HOURLY;INTERVAL=1',
                 -- 重复间隔
        enabled => true);
end;

2.Creating a Job Using a Program

begin
  dbms_scheduler.create_program(
      program_name => 'prog_name',
      program_type => 'plsql_block',
      program_action => 'begin;end;');
end;

begin
  dbms_scheduler.create_job('job_name1',
      program_name => 'prog_name',
      start_date => systimestamp,
      repeat_interval => 'freq=daily',
      enabled => true);
end;

3.Creating a Job for a Program with Arguments

--Create a program:
dbms_scheduler.create_program(
         program_name => 'prog_name',
         program_type => 'stored_procedure',
         program_action => 'EMP_REPORT');
         
--Define an argument:
dbms_scheduler.define_program_argument(
         program_name => 'prog_name',
         argument_name => 'dept_id',
         argument_position => 1, argument_type => 'number',
         default_value => '50');
         
--Create a Job specifying the number of arguments:
dbms_scheduler.create_job('job_name',
         program_name => 'prog_name',
         start_date => systimestamp,
         repeat_interval => 'freq=daily',
         number of arguments => 1,
         enabled => true); 

4.Creating a Job Using a Schedule

begin
  dbms_scheduler.create_schedule('sched_name',
    start_date => systimestamp,
    repeat_interval => 'freq=daily',
    end_date => systimestamp + 15);
end;

begin
  dbms_scheduler.create_job('job_name',
    schedule_name => 'sched_name',
    job_type => 'plsql_block',
    job_action => 'begin;end;',
    enabled => true);
end;

5.Creating a Job Using a Named Program and Schedule

begin
  dbms_scheduler.create_job('job_name',
    program_name => 'prog_name',
    schedule_name => 'sched_name',
    enabled => true);
end;

6.Setting the Repeat Interval for a Job

--日历表达式
repeat_interval => 'freq=hourly;interval=4' -- 4小时一次
repeat_interval => 'freq=daily'    -- 一天一次
repeat_interval => 'freq=minutely;interval=15' -- 15分钟一次
repeat_interval => 'freq=yearly;
                    bymonth=mar,jun,sep,dec;
                    bymonthday=15'    -- 每年3,6,9,12月的15号一次
--PL/SQL 表达式
repeat_interval => 'sysdate + 36/24'  -- 每36小时一次
repeat_interval => 'sysdate + 1'      -- 每小时一次
repeat_interval => 'sysdate + 15/(24*60)'  -- 15分钟一次

7.Managing Job

--Run a job
dbms_scheduler.run_job('schema.job_name');

--Stop a job
dbms_scheduler.stop_job('schema.job_name');

--Drop a job,even if it is currently running
dbms_scheduler.drop_job('job_name',true);

8.Related Data Dictionary View

[ DBA | ALL | USER ]_scheduler_jobs
[ DBA | ALL | USER ]_scheduler_running_jobs
[ DBA | ALL | USER ]_scheduler_job_classes
[ DBA | ALL | USER ]_scheduler_job_log
[ DBA | ALL | USER ]_scheduler_job_run_details
[ DBA | ALL | USER ]_scheduler_programs




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值