dbms_scheduler.run_job ('jobName) не запускается - PullRequest
7 голосов
/ 25 августа 2011

Я пытаюсь запустить запланированное задание вручную, задание выглядит примерно так

  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

Чего мне не хватает.

Ответы [ 2 ]

17 голосов
/ 25 августа 2011

Когда вы пытаетесь запустить задание вручную, похоже, что вы просто не используете правильный синтаксис в SQL Developer.Вам нужно использовать execute dbms_scheduler.run_job('UPDATE_PLAYER_STATES').Конечно, это не объясняет, почему работа терпит неудачу.

Я предполагаю, что с конфигурацией задания что-то не так, что она даже не запускается;но я не вижу, что это.Вы можете попытаться включить имя схемы в job_action, чтобы убедиться, что оно не выглядит в неправильной схеме.

Есть ли что-то интересное в других столбцах dba_scheduler_job_run_details, в частности error# илиadditional_info

7 голосов
/ 31 января 2017

вы вручную запускаете JOB как:

dbms_scheduler.run_job('UPDATE_PLAYER_STATES')

Oracle считает, что это команда, но это не так, поэтому вы получаете сообщение об ошибке "Неизвестная команда".

правильный способ его выполнить:

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

Если вы добились его выполнения, если ваша схема не имеет достаточных прав , вы увидите что-тонапример, «Объект не существует или у вас нет прав», что, вероятно, коренная причина проблемы .

С наилучшими пожеланиями:)

...