`

oracle job实例(转)

阅读更多

 

转 http://xurichusheng.iteye.com/blog/1328406

定时执行的job

1、创建表

Sql代码   收藏代码
  1. -- create table  
  2. CREATE TABLE g_test(c_id NUMBER(28) PRIMARY KEY,c_date DATE);  

 

2、创建序列

Sql代码   收藏代码
  1. --create sequence  
  2. CREATE SEQUENCE seq_test MINVALUE 1 MAXVALUE 999999999999999999999999999   
  3. START WITH 1 INCREMENT BY 1 NOCACHE;  

 

3、创建存储过程

Sql代码   收藏代码
  1. -- create procedure  
  2. CREATE OR REPLACE PROCEDURE P_TEST AS  
  3.   V_SEQ NUMBER(28);  
  4. BEGIN  
  5.   SELECT SEQ_TEST.NEXTVAL INTO V_SEQ FROM dual;  
  6.   IF V_SEQ <= 999999999999999999999999999 THEN  
  7.     INSERT INTO G_TEST VALUES (V_SEQ, SYSDATE);  
  8.   END IF;  
  9. END P_TEST;  
  10. /  

 

4、创建job

Sql代码   收藏代码
  1. -- create job  
  2. BEGIN  
  3.  -- 每一分钟执行一次存储过程 P_TEST  
  4.  -- job_action : 存储过程名  
  5.  -- start_date : 执行job时间/日期  
  6.  -- repeat_interval : 间隔时间  
  7.  dbms_scheduler.create_job(job_name => 'Job_g_test_insert',  
  8.                            job_type => 'stored_procedure',  
  9.                            job_action => 'P_TEST',  
  10.                            start_date => TRUNC(SYSDATE),  
  11.                            repeat_interval => 'sysdate+1/1440');  
  12.  --启用job  
  13.  -- name即为上面的job_name  
  14.  dbms_scheduler.enable(NAME => 'Job_g_test_insert');  
  15.  -- 运行Job  
  16.  dbms_scheduler.run_job(job_name => 'Job_g_test_insert',  
  17.                         use_current_session => FALSE);  
  18. END;  
  19. /  

 

到这一步后,就可以查询表 g_test,看到数据了。

 

5、停止job

Sql代码   收藏代码
  1. -- 停止job  
  2. BEGIN  
  3.   dbms_scheduler.disable(NAME => 'Job_g_test_insert');  
  4. END;  
  5. /  

 

6、删除job

Sql代码   收藏代码
  1. -- 删除job  
  2. BEGIN  
  3.   dbms_scheduler.drop_job(JOB_NAME => 'Job_g_test_insert');  
  4. END;  
  5. /  

 

 

repeat_interval 参数:

     1/24 :一小时

     1/1440 : 一分钟

     1/(3600*24) : 一秒钟

     sysdate+1 : 每天运行一次

     sysdate+1/24 : 每一小时运行一次

     sysdate+1/1440 : 每一分钟运行一次

     sysdate+1/(3600*24) : 每一秒钟运行一次

     sysdate+7 : 每星期运行一次

 

以上时间间隔不能保证任务(job)的下一次运行在一个特定的时间,仅仅能够指定一个任务两次运行之间的时间间隔。

特定日期或时间的例子:

trunc(sysdate+1) : 每天午夜12点

trunc(sysdate+1)+(8*60+30)/(24*60) : 每天早上8:30

trunc(last_date(sysdate)+1) : 每个月第1天的午夜12点

next_day(trunc(sysdate),"tuesday"+12/24) : 每星期二中午12点

分享到:
评论

相关推荐

    oracle 创建job实例

    Oracle 创建 Job 实例 Oracle 创建 Job 实例是指在 Oracle 数据库中创建一个计划任务,用于在特定的时间点执行特定的操作。以下是创建 Job 实例的详细过程和相关知识点: 一、创建 Job 实例 要创建一个 Job 实例...

    oracle job实例 测试通过

    从给定的Oracle Job实例测试通过的描述与代码片段中,我们可以提炼出多个关于Oracle数据库管理、编程与作业调度的关键知识点。以下是对这些知识点的详细解释: ### 1. 创建序列(Sequence) 在Oracle数据库中,...

    Oracle 创建 job 实例

    ### Oracle 创建 Job 实例 在 Oracle 数据库管理与开发中,创建定时任务是十分常见的需求之一。例如,可能需要每分钟将一个表中的数据更新到另一个表中,这样的任务可以通过创建 Oracle 的 Job 来实现。 #### 一、...

    linux下oracle创建实例总结

    ### Linux 下 Oracle 10.2.0 创建实例详尽指南 #### 一、环境配置与准备 在开始创建 Oracle 数据库实例之前,确保已经安装了 Oracle 10.2.0 版本,并完成了相应的环境变量配置。下面将详细介绍环境配置的步骤。 *...

    linux下oracle手动建实例

    ### Linux 下 Oracle 手动建实例详解 #### 一、概述 在Linux环境中手动构建Oracle实例是一项高级且复杂的任务,通常适用于需要定制化配置或特殊需求的场景。本文档将根据给定的信息,详细介绍如何在Linux环境下手动...

    oraclejob例子

    3. **Oracle Job实例** 例如,创建一个每小时运行的简单PL/SQL作业,用于更新统计数据: ```sql BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name =&gt; 'UPDATE_STATISTICS', job_type =&gt; 'PLSQL_BLOCK', job_...

    手动创建oracle实例

    手动创建Oracle实例是一个涉及多个步骤的过程,这不仅考验着数据库管理员对Oracle数据库系统的理解,也体现了其在系统配置与管理方面的能力。以下将基于提供的文件信息,深入解析手动创建Oracle实例的关键步骤及相关...

    Oracle中job的实例

    ### Oracle中的Job定时任务详解与应用 #### 一、Oracle Job概述 在Oracle数据库中,Job是一种非常重要的机制,用于实现数据库的定时任务自动化。它主要用于执行预定义的PL/SQL代码块,如存储过程或者匿名块等。Job...

    oracle10g创建、启用、执行、停用、删除、查询job实例

    oracle10g创建、启用、执行、停用、删除、查询job实例

    oracle创建job实例[参考].pdf

    Oracle数据库中的作业(Job)是实现定时任务的重要机制,它允许管理员或开发人员安排特定的PL/SQL块在预设的时间点或周期性地执行。在Oracle中创建和管理作业主要涉及以下几个步骤和知识点: 1. **创建作业**: ...

    oracle进阶实例代码

    根据提供的标题、描述、标签及部分内容,我们可以提炼出Oracle数据库中的几个重要的知识点,这些知识点主要集中在存储过程(Stored Procedure)与函数(Function)的创建与使用上,同时也涉及到了游标(Cursor)的...

    【RAC】rac中如何指定job的运行实例.pdf

    在RAC环境中,管理任务的执行通常涉及到了解如何指定特定的job在特定的实例上运行,这在数据库的日常管理和维护中是一个重要的知识点。 在Oracle数据库中,job是通过DBMS_JOB和DBMS_SCHEDULER这两个包来管理的。这...

    oraclejob+存储过程的使用示例.pdf

    以下是一个创建Job的实例: 1. 创建一个名为`pig`的表,其中包含一个日期类型的字段`a`: ```sql SQL&gt; create table pig(a date); Table created SQL&gt; commit; Commit complete ``` 2. 创建一个存储过程`bb`,其...

    Oracle数据库基本操作实例

    根据提供的文件信息,我们可以深入探讨Oracle数据库中的基本操作实例,主要围绕SQL语言展开,包括数据定义语句、数据操作语句以及数据控制语句等方面。 ### 数据定义语句 数据定义语句主要用于创建、修改或删除...

    Oracle利用job和dblink高级数据库同步技术

    本文将深入探讨如何利用Oracle的Job和DBLink功能进行高级数据库同步技术,以确保数据的一致性和实时性。 首先,让我们了解Oracle Job。Job是Oracle的一个调度工具,它允许用户在特定时间或按固定频率执行数据库操作...

    Oracle JOB,procedure,cursor 的使用

    以下是一些关于Oracle JOB、PROCEDURE和CURSOR的实例应用: 1. 使用JOB定时执行存储过程:你可以创建一个存储过程,例如更新表中的数据,然后设定一个JOB在每天凌晨执行这个过程,确保数据保持最新。 2. 游标的...

    Oracle AQ使用实例

    "Oracle AQ使用实例" Oracle AQ(Advanced Queuing)是一种消息队列技术,可以实现异步消息传递,在企业级应用中扮演着重要角色。本文将通过一个实例来详细介绍 Oracle AQ 的使用。 一、AQ 的安装和配置 AQ 需要...

    oracle job 例子

    Oracle Job 是 Oracle 数据库中的一个特性,用于在指定的时间执行一系列数据库操作,这些操作可以是 PL/SQL 块、存储过程或者包。这个功能在数据库管理、数据维护、批处理任务等方面非常实用。在本篇文章中,我们将...

    oracle数据库之间同步数据 dbLink +job方式

    dbLink(Database Link)是Oracle提供的一种机制,用于连接两个不同的Oracle数据库实例。它为跨数据库查询提供了便利,可以方便地访问其他数据库中的表或视图。通过创建dbLink,可以在一个数据库中执行SQL语句来操作...

Global site tag (gtag.js) - Google Analytics