SUBMIT 过程 - 创建作业定义并将其存储在数据库中

SUBMIT 过程创建作业定义并将其存储在数据库中。

作业由作业标识、要执行的存储过程、第一次执行作业的时间以及用于计算作业的下次运行日期和时间的日期函数组成。

语法

阅读语法图跳过直观语法图DBMS_JOB.SUBMIT(job ,what,next_date,interval,no_parse)

参数

job
类型为 DECIMAL(20) 的输出自变量,用于指定已指定给作业的标识。
what
类型为 VARCHAR(1024) 的输入自变量,用于指定动态可执行 SQL 语句的名称。
next_date
类型为 TIMESTAMP(0) 的可选输入自变量,用于指定作业的下次运行日期和时间。缺省值为 SYSDATE
interval
类型为 VARCHAR(1024) 的可选输入自变量,用于指定一个日期函数,在对该函数求值后,将会提供下次执行后再次执行的日期和时间。如果 interval 设置为 NULL,那么该作业仅运行一次。NULL 是缺省值。
no_parse
类型为 BOOLEAN 的可选输入自变量。如果设置为 true,那么不会在创建作业时对 SQL 语句进行语法检查;而是仅在第一次执行作业时执行语法检查。如果设置为 false,那么会在创建作业时对 SQL 语句进行语法检查。缺省值为 false。

权限

对 DBMS_JOB 模块的 EXECUTE 特权。

示例

示例 1:以下示例使用存储过程 job_proc 创建作业。第一次执行该作业将大约在 5 分钟内,并且按 interval 自变量的设置 (SYSDATE + 1) 一天运行一次。
SET SERVEROUTPUT ON@

BEGIN
  DECLARE jobid           INTEGER;
  CALL DBMS_JOB.SUBMIT(jobid,'CALL job_proc();',SYSDATE + 5 minutes, 'SYSDATE + 1');
  CALL DBMS_OUTPUT.PUT_LINE('jobid: ' || jobid);
END@
此命令的输出如下所示:
SET SERVEROUTPUT ON
DB20000I  The SET SERVEROUTPUT command completed successfully.

BEGIN
  DECLARE jobid           INTEGER;
  CALL DBMS_JOB.SUBMIT(jobid,'CALL job_proc();',SYSDATE + 5 minutes, 'SYSDATE + 1');
  CALL DBMS_OUTPUT.PUT_LINE('jobid: ' || jobid);
END
DB20000I  The SQL command completed successfully.

jobid: 1