oracle Sql 语句创建JOB

改造:  SQL Window模式

DECLARE
  JOB_ID PLS_INTEGER;
BEGIN
  --作业 1
  SYS.DBMS_JOB.SUBMIT(JOB       => JOB_ID,
                      WHAT      => 'PRC_MATCHING();',
                      NEXT_DATE => SYSDATE,
                      INTERVAL  => 'TRUNC(SYSDATE+1)+6/24');
  --作业2
  SYS.DBMS_JOB.SUBMIT(JOB       => JOB_ID,
                      WHAT      => 'PRC_MATCHING();',
                      NEXT_DATE => SYSDATE,
                      INTERVAL  => 'TRUNC(SYSDATE+1)+6/24');
  --作业3
  SYS.DBMS_JOB.SUBMIT(JOB       => JOB_ID,
                      WHAT      => 'PRC_MATCHING();',
                      NEXT_DATE => SYSDATE,
                      INTERVAL  => 'TRUNC(SYSDATE+1)+6/24');
  COMMIT;
END;
/

SQL 命令行模式:

variable jobno number;
begin
         dbms_job.submit(:jobno, 'PRC_MATCHING();', sysdate, 'SYSDATE+1/48', TRUE);
         commit;
end;

原文:

如果直接用ORACLE里面提供的JOB脚本创建,会提示

ORA-01008 并非所有变量都已关联,

--------------------------------------------------

下面这个是正确的,已经测试通过可以创建

declare   
      job_id   pls_integer; 
begin
sys.dbms_job.submit(job => job_id,
                      what => 'up_scm_border(''102'');',
                      next_date => to_date('07-03-2008 06:00:00', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'TRUNC(SYSDATE+1)+6/24');
commit;
end;
/

下面的这个还包含一个要点,就是ORACLE的时间格式

update dba_jobs set last_date=to_date('2008-3-1 20:23:01','yyyy-mm-dd hh24:mi:ss') where job=201

你可能感兴趣的:(oracle Sql 语句创建JOB)