oracle dbms_job 写法

dbms_job是Oracle数据库的一个重要组件,它是用于在数据库中定期执行任务的实用程序。我们可以通过使用dbms_job创建和管理定时任务,包括创建脚本、设置参数和定时插入数据。在创建过程中,我们需要注意设置job_queue_processes参数,以控制Oracle能够并发的job的数量。以下是使用dbms_job创建和管理定时任务的一些示例代码和注释:

  1. 创建job:
BEGIN
  dbms_job.submit(job => :job_name, what => 'job_action', next_date => TO_DATE('01-JAN-2021 00:00:00', 'DD-MON-YYYY HH24:MI:SS'), interval => 'INTERVAL 1 DAY');
END;

在上面的代码中,我们创建了一个名为:job_name的job,并将其提交到数据库中。该job会在明天凌晨0点开始执行,并以一天为周期进行。
2. 查看job状态:

SELECT job, last_date, last_next_date, status
FROM dba_jobs
WHERE job = :job_name;

在上面的代码中,我们从dba_jobs表中查询job的状态。其中,job是job的名称,last_date是上一次执行的时间,last_next_date是下一次执行的时间,status是job的状态。
3. 取消job:

BEGIN
  dbms_job.remove(job => :job_name);
END;

在上面的代码中,我们使用dbms_job.remove方法来取消job。
4. 更新job:

BEGIN
  dbms_job.change(job => :job_name, what => 'new_action');
END;

在上面的代码中,我们使用dbms_job.change方法来更新job的操作。其中,new_action是新的操作。
dbms_job在10g后较少使用,dbms_scheduler将成为重点。虽然dbms_job提供了许多过程和方法,但dbms_scheduler功能更强大。Oracle引入dbms_scheduler来管理定时任务,替代dbms_job。我们也可以通过使用dbms_scheduler来实现类似的功能,以下是一个使用dbms_scheduler创建和管理定时任务的示例代码:

  1. 创建job:
BEGIN
  dbms_scheduler.create_job (job_name => :job_name, job_type => 'PLSQL_BLOCK',
    job_action => 'BEGIN
      -- your code here;
      END;', start_date => sysdate, repeat_interval => 'FREQ=DAILY; BYHOUR=16; BYMINUTE=00', enabled => true);
END;

在上面的代码中,我们创建了一个名为:job_name的job,它会在每天下午4点执行一次。其中,job_type是任务类型,job_action是任务执行的PL/SQL块,start_date是任务的启动时间,repeat_interval是任务的周期,enabled是任务是否启动。
2. 查看job状态:

SELECT job, state
FROM dba_scheduler_jobs
WHERE job_name = :job_name;

在上面的代码中,我们从dba_scheduler_jobs表中查询job的状态。其中,job是job的名称,state是job的状态。
3. 取消job:

BEGIN
  dbms_scheduler.drop_job (job_name => :job_name);
END;

在上面的代码中,我们使用dbms_scheduler.drop_job方法来取消job。
4. 更新job:

BEGIN
  dbms_scheduler.alter_job (job_name => :job_name, repeat_interval => 'FREQ=DAILY; BYHOUR=12; BYMINUTE=00',
    start_date => sysdate, enabled => true);
END;

在上面的代码中,我们使用dbms_scheduler.alter_job方法来更新job的周期、启动时间和是否启动。其中,repeat_interval是新的周期,start_date是新的启动时间,enabled是是否启动。

相关推荐

  1. oracle dbms_job 写法

    2024-02-16 09:42:03       55 阅读
  2. vue基本写法

    2024-02-16 09:42:03       36 阅读
  3. WPF EventSetter 写法

    2024-02-16 09:42:03       25 阅读
  4. mybatisplus QueryWrapper or 写法

    2024-02-16 09:42:03       39 阅读
  5. php将文本内容写入一个文件(面向过程写法)

    2024-02-16 09:42:03       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-16 09:42:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-16 09:42:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-16 09:42:03       82 阅读
  4. Python语言-面向对象

    2024-02-16 09:42:03       91 阅读

热门阅读

  1. Transformer?

    2024-02-16 09:42:03       45 阅读
  2. 程序员为什么不喜欢关电脑?

    2024-02-16 09:42:03       47 阅读
  3. c# linq 查询

    2024-02-16 09:42:03       41 阅读
  4. Spark中多分区写文件前可以不排序么

    2024-02-16 09:42:03       64 阅读
  5. Vue插槽

    Vue插槽

    2024-02-16 09:42:03      38 阅读
  6. JVM学习

    JVM学习

    2024-02-16 09:42:03      48 阅读
  7. 学习总结16

    2024-02-16 09:42:03       49 阅读
  8. AutoSAR(基础入门篇)9.5-实验:配置通信

    2024-02-16 09:42:03       46 阅读