`
xurichusheng
  • 浏览: 346231 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

一个 oracle job 实例

阅读更多

1、创建表

-- create table
CREATE TABLE g_test(c_id NUMBER(28) PRIMARY KEY,c_date DATE);

 

2、创建序列

--create sequence
CREATE SEQUENCE seq_test MINVALUE 1 MAXVALUE 999999999999999999999999999 
START WITH 1 INCREMENT BY 1 NOCACHE;

 

3、创建存储过程

-- create procedure
CREATE OR REPLACE PROCEDURE P_TEST AS
  V_SEQ NUMBER(28);
BEGIN
  SELECT SEQ_TEST.NEXTVAL INTO V_SEQ FROM dual;
  IF V_SEQ <= 999999999999999999999999999 THEN
    INSERT INTO G_TEST VALUES (V_SEQ, SYSDATE);
  END IF;
END P_TEST;
/

 

4、创建job

-- create job
BEGIN
 -- 每一分钟执行一次存储过程 P_TEST
 -- job_action : 存储过程名
 -- start_date : 执行job时间/日期
 -- repeat_interval : 间隔时间
 dbms_scheduler.create_job(job_name => 'Job_g_test_insert',
                           job_type => 'stored_procedure',
                           job_action => 'P_TEST',
                           start_date => TRUNC(SYSDATE),
                           repeat_interval => 'sysdate+1/1440');
 --启用job
 -- name即为上面的job_name
 dbms_scheduler.enable(NAME => 'Job_g_test_insert');
 -- 运行Job
 dbms_scheduler.run_job(job_name => 'Job_g_test_insert',
                        use_current_session => FALSE);
END;
/

 

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

 

5、停止job

-- 停止job
BEGIN
  dbms_scheduler.disable(NAME => 'Job_g_test_insert');
END;
/

 

6、删除job

-- 删除job
BEGIN
  dbms_scheduler.drop_job(JOB_NAME => 'Job_g_test_insert');
END;
/

 

 

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 实例的详细过程和相关知识点: 一、创建 Job 实例 要创建一个 Job 实例,需要使用 dbms_job....

    oracle job实例 测试通过

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

    Oracle 创建 job 实例

    例如,可能需要每分钟将一个表中的数据更新到另一个表中,这样的任务可以通过创建 Oracle 的 Job 来实现。 #### 一、准备工作 1. **创建目标表**:首先需要创建一个用于存储定时更新数据的目标表。 ```sql ...

    linux下oracle创建实例总结

    完成以上步骤后,即可成功创建一个新的 Oracle 数据库实例。这涉及到环境变量的配置、必要目录的创建、密码文件的建立以及初始化参数文件的详细设置。通过这些步骤,能够确保 Oracle 实例的安全运行和高效管理。

    linux下oracle手动建实例

    3. **SID (System Identifier)**:每个Oracle实例都有一个唯一的SID来标识它。 4. **数据库认证方式**:常见的认证方式包括密码文件认证、操作系统认证等。 5. **脚本编写**:创建数据库及执行数据库管理任务通常...

    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的实例

    1. **Job No**: 这是一个由`dbms_job.submit()`过程返回的`BINARY_INTEGER`类型值,用于唯一标识一个Job。 2. **What**: 指将要执行的PL/SQL代码块。 3. **Next Date**: 表示Job首次执行的时间。如果不指定,则Job...

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

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

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

    使用`DBMS_JOB`包中的`SUBMIT`过程来创建一个新的作业。例如: ```sql DECLARE job_feeid_create NUMBER; BEGIN DBMS_JOB.SUBMIT(job_feeid_create, 'wlk_check_fee;', SYSDATE, 'TRUNC(SYSDATE+1)'); COMMIT...

    oracle进阶实例代码

    在Oracle中,函数也是一种数据库对象,它可以接受参数并返回一个结果。函数通常用于执行简单的计算或逻辑判断。 示例代码中出现了一个名为`FUN_QUERY`的函数: ```sql CREATE OR REPLACE FUNCTION FUN_QUERY...

    【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 AQ使用实例

    本文将通过一个实例来详细介绍 Oracle AQ 的使用。 一、AQ 的安装和配置 AQ 需要在 Oracle 数据库中安装和配置。首先,需要创建两个用户 bz_admin 和 bz,然后授予它们相应的权限。bz_admin 用于管理 AQ,而 bz ...

    job 存储过程 视图 游标结合实例

    Oracle Job是一个计划任务管理工具,允许用户在预设的时间执行数据库操作。这可以是定时运行的SQL查询、存储过程或其他数据库任务。创建Job通常使用DBMS_SCHEDULER或者DBMS_JOB包,它们提供了调度、监控和控制作业的...

    Oracle数据库基本操作实例

    创建一个视图,用于存储各部门平均工资及其等级的信息。 3. **使用视图查询**: ```sql SELECT dname, t1.deptno, grade, avg_sal FROM v$_dept_avg_sal_info t1 JOIN dept ON (t1.deptno = dept.deptno) ...

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

    Job是Oracle的一个调度工具,它允许用户在特定时间或按固定频率执行数据库操作,如存储过程、PL/SQL块或者SQL查询。创建Job的过程包括定义任务、指定执行时间以及关联执行的SQL或PL/SQL代码。例如,`MYPROC.prc`可能...

    Oracle JOB,procedure,cursor 的使用

    创建一个Oracle JOB通常涉及以下几个步骤:定义作业(DBMS_SCHEDULER.CREATE_JOB),指定执行时间(DBMS_SCHEDULER.SET_ATTRIBUTE),启动作业(DBMS_SCHEDULER.RUN_JOB),以及监控和管理作业状态(DBMS_SCHEDULER....

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

    上述代码创建了一个Job,每隔一分钟执行一次`test_proc`过程。其中,`test_proc`过程可以用来执行任何需要的任务,比如数据同步。 ##### Job的常用Interval值: - 每天凌晨12点:`'TRUNC(SYSDATE+1)'` - 每天上午8...

Global site tag (gtag.js) - Google Analytics