9

我正在尝试手动运行计划的作业,该作业看起来像这样

  DBMS_SCHEDULER.CREATE_JOB (
   job_name           =>  'UPDATE_PLAYER_STATES',
   job_type           =>  'STORED_PROCEDURE',
   job_action         =>  'PLAYER_STATE_UPDATER',
   repeat_interval    =>  'FREQ=DAILY;BYHOUR=0', /* every day at Midnight */
   job_class          =>  'DEFAULT_JOB_CLASS',
   enabled            =>  true,
   auto_drop          =>  false);

现在,当我使用运行该过程时,execute PLAYER_STATE_UPDATER我可以看到所需的结果,但是该作业无法执行,如下所示

select log_date, job_name, status, run_duration
from dba_scheduler_job_run_details where job_name='UPDATE_PLAYER_STATES' or status='FAILED';


    LOG_DATE                    JOB_NAME        STATUS   RUN_DURATION 
------------- -----------------------------------------------------------------
23-AUG-11 00.20.24.288887000 +01:00 UPDATE_PLAYER_STATES    FAILED    0 0:0:0.0    
22-AUG-11 10.27.24.537659000 +01:00 UPDATE_PLAYER_STATES    FAILED    0 0:0:0.0    
22-AUG-11 10.28.50.447042000 +01:00 UPDATE_PLAYER_STATES    FAILED    0 0:0:0.0    
22-AUG-11 10.30.30.018891000 +01:00 UPDATE_PLAYER_STATES    FAILED    0 0:0:0.0    
25-AUG-11 10.59.02.332579000 +01:00 UPDATE_PLAYER_STATES    FAILED    0 0:0:0.0    
25-AUG-11 10.59.15.980730000 +01:00 UPDATE_PLAYER_STATES    FAILED    0 0:0:0.0    
25-AUG-11 10.59.27.823131000 +01:00 UPDATE_PLAYER_STATES    FAILED    0 0:0:0.0    
25-AUG-11 11.01.04.798364000 +01:00 UPDATE_PLAYER_STATES    FAILED    0 0:0:0.0    
24-AUG-11 00.20.24.419251000 +01:00 UPDATE_PLAYER_STATES    FAILED    0 0:0:0.0    
25-AUG-11 00.20.24.299180000 +01:00 UPDATE_PLAYER_STATES    FAILED    0 0:0:0.0    
25-AUG-11 09.35.24.798535000 +01:00 UPDATE_PLAYER_STATES    FAILED    0 0:0:0.0    

并且手动执行作业也dbms_scheduler.run_job('UPDATE_PLAYER_STATES');因错误而失败

Error starting at line 1 in command:
dbms_scheduler.run_job('UPDATE_PLAYER_STATES')
Error report:
Unknown Command

我错过了什么。

4

2 回答 2

17

当您尝试手动运行作业时,看起来您根本没有在 SQL Developer 中使用正确的语法。你需要使用execute dbms_scheduler.run_job('UPDATE_PLAYER_STATES'). 当然,这并不能解释为什么这项工作失败了。

我的猜测是作业配置有问题,甚至无法启动;但我不明白它是什么。您可以尝试在 中包含架构名称,job_action以确保它没有在错误的架构中查找。

其他列中是否有任何有趣的东西dba_scheduler_job_run_details——特别是error#additional_info

于 2011-08-25T11:55:05.987 回答
10

您正在手动运行 JOB:

dbms_scheduler.run_job('UPDATE_PLAYER_STATES')

Oracle 认为这是一个命令,但不是,这就是您收到错误消息“未知命令”的原因。

正确的执行方式是:

BEGIN
   dbms_scheduler.run_job('UPDATE_PLAYER_STATES');
END;

一旦你实现了执行它,如果你的架构没有足够的权限,那么你会看到类似“对象不存在或你没有权限”之类的东西,这可能是问题的根本原因

最好的祝福 :)

于 2017-01-31T16:05:47.717 回答