oracle作业仅手动运行

时间:2018-11-12 12:47:12

标签: sql oracle plsql schedule sql-job

PROCEDURE CRIAR_JOB_LIMPA_proc IS
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
    job_name        => 'JOB_LIMPA_TAB',
    job_type        => 'STORED_PROCEDURE',
    job_action      => 'SIIMA_JOB_LIMPA_TAB_pkg' || '.LIMPAR_TAB_proc',
    start_date      => To_Date('12-NOV-2018 11:20 AM', 'dd-mon-yyyy hh:mi AM' AT TIME ZONE 'GMT'),
    repeat_interval => 'FREQ=minutely;interval=3',
     comments             => 'Inserir em tabela backup e apagar na original',
    enabled         => TRUE);
END;

我有这份工作,当我手动执行它时运行良好,但是无论何时设置开始日期,尝试设置时区和其他所有内容都永远不会开始。

对可能的问题/修复有任何想法吗?

谢谢

1 个答案:

答案 0 :(得分:5)

AT TIME ZONE ...值不支持任何时区,因此TO_DATETO_TIMESTAMP_TZ结合使用是没有用的。尝试使用start_date => TIMESTAMP '2019-11-12 11:20:00 UTC'或使用TIMESTAMP文字,例如start_date => SYSTIMESTAMP或尝试start_date => To_Date('12-NOV-2019 11:20 AM', 'dd-mon-yyyy hh:mi AM' AT TIME ZONE 'GMT')

您的实际问题是开始日期,请仔细查看:

12-NOV-2019

PLSQL_BLOCK-今天我们有11月12日- 2018 ,因此您的工作将在一年内开始。

如果这次工作还没有开始,请在一年后再次问这个问题:-)

我不确定,也许您必须添加分号并尝试STORED_PROCEDUREjob_type => 'PLSQL_BLOCK', job_action => 'SIIMA_JOB_LIMPA_TAB_pkg.LIMPAR_TAB_proc;' 费率,即

{{1}}