web-dev-qa-db-ja.com

dbms_scheduler.run_job( 'jobName)が実行に失敗する

スケジュールされたジョブを手動で実行しようとしています。ジョブは次のようになります

_  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
_

私は何が欠けていますか。

8
Manoj

ジョブを手動で実行しようとすると、SQL Developerで正しい構文を使用していないように見えます。 execute dbms_scheduler.run_job('UPDATE_PLAYER_STATES')を使用する必要があります。もちろん、それはジョブが失敗している理由を説明していません。

私の推測では、ジョブの構成に問題があり、開始することさえできないようです。しかし、それが何であるかはわかりません。 job_actionにスキーマ名を含めて、スキーマが間違って検索されないようにしてみてください。

dba_scheduler_job_run_detailsの他の列、特にerror#additional_infoに関心のあるものはありますか?

16
Dave Costa

次のように、JOBを手動で実行しています。

dbms_scheduler.run_job('UPDATE_PLAYER_STATES')

Oracleはこれをコマンドだと考えていますが、そうではないため、「不明なコマンド」というエラーメッセージが表示されます。

正しい方法それを実行するには:

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

実行すると、スキーマ十分な権限がない場合の場合、「オブジェクトが存在しないか、権限がない」などのメッセージが表示されます問題の根本的な原因

宜しくお願いします :)

7
Ramiro Juarez