2017-08-23 64 views
1

dbms_schedulerでプロシージャを実行しようとしていますが、作成されていて実行中ではありません。データベースのバージョンはdbms_schedulerジョブを実行していないジョブを実行していません

BEGIN 
DBMS_SCHEDULER.CREATE_JOB (
     job_name => 'My_Count_Job', 
     job_type => 'STORED_PROCEDURE', 
     job_action => 'count_comp', 
     start_date => '28-APR-08 07.00.00 PM Asia/Calcutta', 
     repeat_interval => 'FREQ=DAILY;INTERVAL=2', /* every other day */ 
     auto_drop => FALSE, 
     enabled =>TRUE, 
     comments => 'My new job'); 
END; 
/
+0

あなたはそれが実行されていないことを確認するために知っていますか、またはあなただっ:あなたはスケジュールDBMS_SCHEDULER(DBMSスケジューラ)ジョブを作成してするのsqldeveloper(SQL Developerの)を使用している場合

、私はあなたがこのページを経るアドバイスうその出力がどこかに現れたと期待していますか?出力は誰にも見られません。 –

+0

@Tony Andrewsはい、dba_SCHEDULER_JOB_LOGSからselect *をチェックすることができます。 – Chirag

+1

これを実行し、出力をポストしてください: 'SELECT job_name、enabled、state、start_date FROM user_scheduler_jobs job_name = 'My_Count_Job'; ' – kfinity

答えて

2

考えられる理由の一部後述するように仕事を作成するには、Oracle 11.2.x

手順

create or replace procedure count_comp 
as 
Total_count number; 
begin 
select count(*) into Total_count from user_tables; 
dbms_output.put_line('Number '|| Total_count); 
end; 

を使用します。 job_queue_processesが低すぎる可能性があります 次のクエリを実行するかどうかを確認する v $ parameter where name = 'job_queue_processes';これはあなたが使用してパラメータを増やすことができ、問題がある場合は

はその後、実行中のジョブ

select count(*) from dba_scheduler_running_jobs; 
select count(*) from dba_jobs_running; 

の数を確認

alter system set job_queue_processes=1000; 

2)このパラメータがNULLでない場合max_job_slave_processesが 低すぎる可能性が一度に実行するdbms_schedulerジョブの数を制限します( )。この問題は、あなたが

exec dbms_scheduler.set_scheduler_attribute('max_job_slave_processes',null) 

3)セッションを使用して数を増やすか、単にそれをNULL可能である場合

select value from dba_scheduler_global_attribute 
where attribute_name='MAX_JOB_SLAVE_PROCESSES'; 

wをチェックするには、その後、実行中のジョブ

select count(*) from dba_scheduler_running_jobs; 

の数を確認します低すぎる可能性があります

4)スケジューラが無効になっていることを確認してください

select value from dba_scheduler_global_attribute where attribute_name='SCHEDULER_DISABLED' 

このクエリがtrueを返した場合、あなたはあなたの仕事の状況教えてくれますクエリの上 SQL>exec dbms_scheduler.set_scheduler_attribute('scheduler_disabled','false');

+0

Job_queue_processesは0だったので、私はそれを変更し、それは働いた。あなたの時間と答えに感謝@ nitin.sharma0180 – Chirag

0
SELECT JOB_NAME, STATE FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME = 'partition_table_plapp2'; 

を使用してこの問題を解決することができます

select JOB_NAME, STATUS, ERROR#, ADDITIONAL_INFO from ALL_SCHEDULER_JOB_RUN_DETAILS where job_name = 'partition_table' ; 

予定、DISABLED、ENABLEDを上記のクエリは、ジョブの実行中に何が問題になったかを示します。

あなたの仕事で何が問題になったのかが分かれば、さらに調査することができます。 http://www.opencodez.com/oracle/oracle-job-scheduler-guide-examples-part-1.htm

関連する問題