oracle作业只能手动运行

Sap*_*121 1 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;
Run Code Online (Sandbox Code Playgroud)

我有这个工作,运行良好,当我手动执行它,但它从来没有开始,每当我设置的开始日期,我已经尝试设置时区和一切,但它似乎并没有帮助.

任何可能的问题/解决方案的想法?

谢谢

Wer*_*eit 5

DATE值不支持任何时区,因此AT TIME ZONE ...与之结合使用TO_DATE是无用的.尝试TO_TIMESTAMP_TZ或使用TIMESTAMP文字,例如start_date => TIMESTAMP '2019-11-12 11:20:00 UTC'或尝试start_date => SYSTIMESTAMP

你的实际问题是start_date,仔细看看:

start_date => To_Date('12-NOV-2019 11:20 AM', 'dd-mon-yyyy hh:mi AM' AT TIME ZONE 'GMT')
Run Code Online (Sandbox Code Playgroud)

12-NOV-2019- 今天我们有12-NOV- 2018,所以你的工作将在一年内开始运作.

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

我不确定,也许你必须添加一个分号并尝试PLSQL_BLOCK比率STORED_PROCEDURE,即

job_type => 'PLSQL_BLOCK',
job_action => 'SIIMA_JOB_LIMPA_TAB_pkg.LIMPAR_TAB_proc;'
Run Code Online (Sandbox Code Playgroud)