ORACLE JOB 使用基础

来源:互联网 发布:hadoop用python 编辑:程序博客网 时间:2024/05/29 17:58
 

一、ORACLE JOB概述

定时在后台执行相关操作。

例如:每天晚上点将一张表的数据保存到另一张表中;定时备份数据库等操作。

二、创建ORACLE JOB

1、  创建表

/*1、创建表*/

create table job_table(

       j_id number(12),

       j_date date

)

2、  创建序列

/*2、创建序列*/

create sequence job_seq

minvalue 1 maxvalue 999999999999 start with 1 increment by 1;

3、  创建过程

/*3、创建存储过程*/

create or replace procedure job_pro

            is

            begin

                   insert into system.job_table values(job_seq.nextval,sysdate);

 end;

4、  创建job

DECLARE JOB NUMBER;
BEGIN

  SYS.DBMS_JOB.SUBMIT(JOB => JOB,                     
                      WHAT => 'job_pro;',                    
                      NEXT_DATE => sysdate,                    
                      INTERVAL => 'trunc(sysdate)+1+1/1440');
  COMMIT;

END;

DECLARE  JOB NUMBER;
BEGIN
  DBMS_JOB.SUBMIT(JOB,'job_pro;',SYSDATE, 'trunc(sysdate)+1+1/1440');
  COMMIT;
END;

           

            代码讲解:

            job:该参数是工作号(由submit()过程返回的binary_integer),它在问题中唯一标识工作。

            what: 可以理解为,具体要做的操作,这里指向一个存储过程。

            next_date:该参数指示何时此操作被执行。

            interval:该参数指示一个工作重复执行的频度。

            no_parse:该蚕食指示此工作在提交时或执行时是否应进行语法分析,TRUE:标识第一次执行时进行语法分析;FALSE:指示立即进行语法分析

 

注意:如果在job => job, 这里,改成“job => :job,”,oracle则会报“并非所有变量都已绑定”异常。声明了变量后,请把这个冒号去掉!

 PS:dbms_job package包含以下过程:

 ·Broken()过程;

·change()过程;

·interval()过程;

·isubmit()过程;

·next_date()过程;

·remove()过程;

·run()过程;

·submit()过程;

·user_export()过程;

·what()过程;

原创粉丝点击