`
leihualin666
  • 浏览: 30375 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle实现每天定时执行一个计划任务 .

阅读更多
创建测试表
SQL> create table a(a date);

表已创建。

创建一个自定义过程
SQL> create or replace procedure test as
  2  begin
  3  insert into a values(sysdate);
  4  end;
  5  /

过程已创建。

创建JOB
SQL> variable job1 number;
SQL>
SQL> begin
  2  dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');  --每天1440分钟,即一分钟运行test过程一次
  3  end;
  4  /

PL/SQL 过程已成功完成。

运行JOB
SQL> begin
  2  dbms_job.run(:job1);
  3  end;
  4  /

PL/SQL 过程已成功完成。

SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a;

时间
-------------------
2001/01/07 23:51:21
2001/01/07 23:52:22
2001/01/07 23:53:24

删除JOB
SQL> begin
  2  dbms_job.remove(:job1);
  3  end;
  4  /

PL/SQL 过程已成功完成。


select job,to_char(next_date,'yyyy-mm-dd hh24:mi:ss') from all_jobs;


----------job的使用:

DBMS_JOB.SUBMIT(:jobno,//job号
                'your_procedure;',//要执行的过程
                trunc(sysdate)+1/24,//下次执行时间
                'trunc(sysdate)+1/24+1'//每次间隔时间
               );
删除job:dbms_job.remove(jobno);
修改要执行的操作:job:dbms_job.what(jobno,what);
修改下次执行时间:dbms_job.next_date(job,next_date);
修改间隔时间:dbms_job.interval(job,interval);
停止job:dbms.broken(job,broken,nextdate);
启动job:dbms_job.run(jobno);
例子:
VARIABLE jobno number;
begin
      DBMS_JOB.SUBMIT(:jobno,
              'Procdemo;',//Procdemo为过程名称
               SYSDATE, 'SYSDATE + 1/720');
         commit;
end;

-----修改job_queue_processes的值(保证其不为0否则JOB不自动运行)
可通过select * from v$parameter;查看其值;
方法1,startup pfile='C:/oracle/ora90/database/initorcl.ora';
需要修改initorcl.ora文件的job_queue_processes参数,然后重新启动数据库以后才能生效
方法2,alter system set job_queue_processes=10
不需要重新启动数据库就能生效,系统自动修改init.ora文件



1)、 每分钟执行
Interval => TRUNC(sysdate,'mi') + 1 / (24*60)
2)、 每天定时执行
例如:每天的凌晨2点执行
Interval => TRUNC(sysdate) + 1 +2 / (24)
3)、 每周定时执行
例如:每周一凌晨2点执行
Interval => TRUNC(next_day(sysdate,2))+2/24 --星期一,一周的第二天
4)、 每月定时执行
例如:每月1日凌晨2点执行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+2/24
5)、 每季度定时执行
例如每季度的第一天凌晨2点执行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 2/24
6)、 每半年定时执行
例如:每年7月1日和1月1日凌晨2点
Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24
7)、 每年定时执行
例如:每年1月1日凌晨2点执行
Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+2/24



分享到:
评论

相关推荐

    oracle每天定时备份-自动创建计划任务.zip

    本压缩包“oracle每天定时备份-自动创建计划任务.zip”提供了一套自动化方案,帮助用户设置Oracle数据库的每日定时备份,并通过操作系统任务调度器进行触发。 在Oracle数据库中,我们可以使用RMAN(恢复管理器)...

    ORACLE定时任务不能自动执行的检查修复步聚

    Oracle 定时任务是 Oracle 数据库中的一种功能,可以根据设置的计划执行某些任务。但是,在某些情况下,Oracle 定时任务可能不能自动执行。这可能是由于某个版本的 BUG 导致的。下面将介绍如何检查和修复 Oracle ...

    任务计划+批处理实现Oracle数据库的定时备份

    Windows的任务计划程序允许用户设置定期执行特定任务,如运行一个批处理文件。创建任务计划的过程如下: 1. 打开“控制面板”或“开始菜单”,搜索“任务计划程序”并打开。 2. 在“任务计划程序”窗口中,点击右侧...

    Oracle定时执行存储过程

    oracle 是一个功能强大的关系型数据库管理系统,可以执行各种复杂的任务,其中包括定时执行存储过程。定时执行存储过程可以让 oracle 自动执行某些操作,而不需要人工干预。下面我们将详细讲解 oracle 中的定时执行...

    oracle定时任务

    在这个例子中,我们创建了一个名为`my_task`的作业,它每天执行一次`my_package.my_procedure`这个PL/SQL过程。 2. **配置任务参数** - `job_name`是作业的唯一标识符。 - `job_type`指明作业类型,如PL/SQL块、...

    oracle定时任务.txt

    ### Oracle定时任务实现方法 #### 一、使用`DBMS_JOB` 在Oracle数据库中,`DBMS_JOB`包提供了一种简单的方式来安排周期性或一次性的工作。以下将详细介绍如何使用`DBMS_JOB`来创建、运行和管理定时任务。 ##### ...

    Oracle中实现定时任务的分析与应用.pdf

    Oracle数据库中的定时任务实现主要依赖于Oracle Job Queue,这是一个强大的任务调度工具,允许用户自定义任务的执行时间,以满足各种业务需求。Oracle Job Queue的工作原理是通过操作系统进程,在预定的时间点自动...

    Oracle Job定时任务

    Oracle Job 定时任务是 Oracle 数据库中的一种定时执行任务的机制,它允许用户在指定的时间点或每天的某个时间点自行执行任务。 一、查询系统中的 Job 可以通过以下视图查询系统中的 Job: * `DBA_JOBS`: 查询所有...

    SpringBoot定时任务实现Oracle和mysql数据同步

    Spring Boot作为Java领域的一个热门微服务框架,提供了强大的定时任务功能,能够帮助我们实现不同数据库间的数据同步,比如Oracle到MySQL。本篇文章将详细讲解如何利用Spring Boot的定时任务特性,结合Java的相关...

    oracle定时任务详解

    Oracle定时任务是Oracle系统中一个强大的功能,能够帮助系统管理员自动化许多日常维护工作,提高工作效率。通过对DBMS_JOB API的熟练掌握,可以更加灵活高效地管理这些任务。同时,合理的规划和监控也是非常重要的,...

    plsql创建存储过程并创建job定时任务执行-详细笔记文档总结

    * 每半年定时执行:`interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24` * 每年 1 月 1 日凌晨 1 点执行:`interval => ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24` 四、job 定时任务执行示例 下面是一个...

    使用PL/SQL Developer图形界面轻松实现oracle定期计划任务

    在Oracle数据库管理中,定期执行任务是不可或缺的一部分,这通常涉及到数据库维护、数据清理、备份等操作。PL/SQL Developer是一款强大的Oracle开发工具,它提供了一个直观的图形用户界面(GUI),使得设置定期计划...

    利用windows任务计划调用oracle存储过程

    结合Oracle数据库,我们可以利用任务计划程序调用Oracle存储过程,实现定时的数据处理、备份或其他业务逻辑。本文将深入探讨如何实现这一功能。 首先,理解Oracle存储过程是关键。存储过程是预编译的SQL和PL/SQL...

    oracle定时执行存储过程.pdf

    ### Oracle定时执行存储过程知识点详解 #### 一、概述 在Oracle数据库中,定时执行存储过程是一项非常实用的功能,尤其适用于需要定期执行的任务,比如数据备份、数据清理、统计汇总等场景。通过设置定时任务,可以...

    在Oracle中实现后台自动执行的定时操作

    在Oracle数据库中,实现后台自动执行的定时操作是一项关键技能,尤其对于那些需要定期执行的任务,比如数据备份、数据清理、统计报告生成等。本文将深入探讨如何在Oracle中通过JOB队列机制来实现这样的定时任务,...

    Oracle定时任务详解.docx

    Oracle定时任务,通常被称为DBMS_JOB,是一种在Oracle数据库中实现定时执行任务的机制。它允许用户安排PL/SQL代码块在预设的时间点或按照特定的间隔执行,无需依赖操作系统级别的定时任务如Windows的任务计划程序或...

    oracle 定时任务,使用存储过程更新数据

    5. **文件名称列表**:`oracle定时任务`和`存储过程`这两个文件名可能是指包含有关如何在实际环境中设置和使用这些功能的文档或脚本。在学习和实践中,可以参考这些文件以获取更具体的步骤和示例。 综上所述,...

    oracle 定时任务

    Oracle定时任务,也被称为Oracle调度(Oracle Scheduler),是Oracle数据库系统中的一个重要组件,用于安排数据库内的作业自动执行。这些作业可以包括数据备份、清理过期记录、运行统计分析等日常维护任务。Oracle ...

    利用Crontab实现对Oracle数据库的定时备份.rar

    - 安排Crontab任务后,确保系统按计划执行并生成了预期的备份文件。可以使用`journalctl -u cron`或者`grep CRON /var/log/syslog`来查看Cron的日志,检查是否有错误信息。 5. **备份策略优化**: - 根据业务需求...

Global site tag (gtag.js) - Google Analytics