日期:2014-05-16 浏览次数:20400 次
DBMS_SCHEDULER.CREATE_JOB ( job_name IN VARCHAR2, job_type IN VARCHAR2, job_action IN VARCHAR2, number_of_arguments IN PLS_INTEGER DEFAULT 0, start_date IN TIMESTAMP WITH TIME ZONE DEFAULT NULL, repeat_interval IN VARCHAR2 DEFAULT NULL, end_date IN TIMESTAMP WITH TIME ZONE DEFAULT NULL, job_class IN VARCHAR2 DEFAULT 'DEFAULT_JOB_CLASS', enabled IN BOOLEAN DEFAULT FALSE, auto_drop IN BOOLEAN DEFAULT TRUE, comments IN VARCHAR2 DEFAULT NULL, credential_name IN VARCHAR2 DEFAULT NULL, destination_name IN VARCHAR2 DEFAULT NULL);
JOB_NAME:指定任务的名称,必选值,注意要确保指定的名称唯一。
JOB_TYPE:任务执行的操作类型,必选值,有下列几个可选值:
PLSQL_BLOCK:表示任务执行的是一个PL/SQL 匿名块。
STORED_PROCEDURE:表示任务执行的是ORACLE 过程(含PL/SQL PROCEDURE 和JAVA PROCEDURE),本例中正是指定这一参数值。
EXECUTABLE:表示任务执行的是一个外部程序,比如说操作系统命令。
CHAIN:表示任务执行的是一个CHAIN。
JOB_ACTION:任务执行的操作,必选值,应与JOB_TYPE 类型中指定的参数相匹配。比如说对于PL/SQL 匿名块,此处就可以放置PL/SQL 块的具体代表,类似DECLARE .. BEGIN ..END这类;如果是ORACLE 过程,那么此处应该指定具体的过程名,注意由于任务执行,即使过程中有OUT之类参数,实际执行时也不会有输出的。
START_DATE:指定任务初次执行的时间,本参数可为空,当为空时,表示任务立刻执行,效果等同
于指定该参数值为SYSDATE。
NUMBER_OF_ARGUMENTS:指定该JOB 执行时需要附带的参数的数量,默认值为0,注意当JOB_TYPE 列值为PLSQL_BLOCK 或CHAIN 时,本参数必须设置为0,因为上述两种情况下不支持附带参数。
END_DATE:指定任务的过期时间,默认值为NULL。任务过期后,任务的STATE 将自动被修改为COMPLETED,ENABLED 被置为FALSE。如果该参数设置为空的话,表示该任务永不过期,将一直按照REPEAT_INTERVAL 参数设置的周期重复执行,直到达到设置的MAX_RUNS 或MAX_FAILURES 值。
JOB_CLASS:指定任务关联的CLASS,默认值为DEFAULT_JOB_CLASS。关于JOB CLASS 的信息就关注本系列的后续文章。
ENABLED:指定任务是否启用,默认值为FALSE。FALSE 状态表示该任务并不会被执行,除非被用户手动调用,或者用户将该任务的状态修改为TRUE。
AUTO_DROP:当该标志被置为TRUE 时,ORACLE 会在满足条件时自动删除创建的任务
任务已过期;
任务最大运行次数已达MAX_RUNS 的设置值;
任务未指定REPEAT_INTERVAL 参数,仅运行一次;
该参数的默认值即为TRUE。用户在执行CREATE_JOB 过程时可以手动将该标志指定为FALSE,当参数值设置为FALSE 时,即使满足上述提到的条件任务也不会被自动删除这种情况下,唯一能够导致任务被删除的情况,就是用户主动调用DROP_JOB 过程。
整理自三思笔记