2017-05-03 21 views
0

DBMS 스케줄러를 사용하여 1am에 야간에 실행되는 데이터베이스 작업이 있습니다.예약 된 작업을 수동으로 실행 중입니다. LAST_RUN_DATE가 업데이트되지 않습니다.

나는 언제든지 수동으로 작업을 실행할 수 있기를 원합니다.

난 내가 DBA_SCHEDULER_JOBS에 작업을 볼 때 그러나 LAST_RUN_DATE 열이 여전히 작업이 날짜를 보유하고,이 모든 잘 작동하고, 작업이 실행 않습니다

execute dbms_scheduler.run_job('JOB_NAME'); 

을 실행하여이 작업을 수행 내가 수동으로 실행했을 때가 아니라 1시에 스케줄러에서 마지막으로 실행되었습니다. 이것은 누군가에게 이해가 되는가? 작업을 실행 한 마지막 시간을 가져서 사용자를 실행 상태로 표시 할 수 있기를 원합니다.

select log_date, job_name, status, run_duration 
    from dba_scheduler_job_run_details 
where job_name='JOB_NAME' 
:

SELECT LAST_START_DATE 
    FROM DBA_SCHEDULER_JOBS 
WHERE job_name='JOB_NAME'; 

내 작품은 주위의 마지막 날짜를 얻기 위해 이것을 사용하는 것입니다하지만 잘하지 않는 것, 내가 LAST_RUN_DATE을 찾고 있어요 쿼리입니다

+0

"제대로 된 것 같지 않음": 정교하게 말하십시오. –

답변

2

dbms_scheduler.run_job의 선택적 매개 변수 use_current_session은 생략 될 경우 TRUE로 기본 설정됩니다. FALSE이 매개 변수를 설정하면 last_start_date를 업데이트합니다 :

execute dbms_scheduler.run_job('JOB_NAME', use_current_session => false); 

그러나이 매개 변수를 설정하여 그 결과 같은 다른 부작용이있을 수 있습니다. 자세한 내용은 해당 Oracle 버전에 대한 Oracle 설명서를 참조하십시오.

12.1 docs (강조 광산) :

use_current_session :

이 작업 실행이 절차는 항상 나누었던 작업 호출 된 것과 같은 세션에서 발생해야하는지 여부를 지정

이로 실행 작업 소유자의 스키마에서 사용자가 신임을 지정하지 않으면 신임장에 지정된 사용자를 사용하여 작업이 실행됩니다.

은 use_current_session가 TRUE로 설정된 경우 :

당신은 작업을 테스트하고 명령 행에서 가능한 모든 오류를 볼 수 있습니다.

상태, run_count, last_start_date, last_run_duration 및 * _scheduler_jobs의 failure_count가 업데이트되지 않습니다.

RUN_JOB은 정기적으로 예약 된 작업 실행과 병행하여 실행할 수 있습니다. use_current_session가 FALSE로 설정되어

는 :

당신은 오류 정보를 찾기 위해 작업 로그를 확인해야합니다. 모든 관련 * _scheduler_jobs의 필드가 업데이트됩니다. 정기적으로 예약 된 작업이 실행되고 있으면 RUN_JOB이 실패합니다.

+0

감사합니다. 이것은 내가 찾고 있었던 바로 그 것이다. – kev670