2012-05-22 3 views
3

Oracle (11R2) DBMS 스케줄러에 작업 체인을 구축 중입니다. 체인에는 두 단계가 있습니다. 각 단계는 동일한 프로그램을 실행하지만 다른 인수를 사용합니다. 체인, 단계, 규칙 등을 정의하는 방법을 알 수 있지만 단계에 대한 인수 값을 설정하는 방법을 알 수 없습니다.Oracle 작업 체인의 단계에 대한 인수 값을 정의하십시오.

dbms_scheduler.set_job_argument_value(
    job_name => 'MY_JOB', 
    argument_position => 1, 
    argument_value => 'foo'); 

내 질문은 : 어떤 DBMS_SCHEDULER의 FUNC/PROC 나는 작업 단계에 대한 인수를 설정 부를 것이다 나는 프로그램에, 나는이 같은 인수를 설정 한 통화입니다 작업을 구축

? 아래 예제를 사용하여 'MY_CHAIN'에서 'STEP_1'에 대한 인수를 설정하는 방법은 무엇입니까?

감사합니다, 존

DBMS_SCHEDULER.CREATE_CHAIN (
    chain_name => 'MY_CHAIN', 
    rule_set_name => NULL, 
    evaluation_interval => NULL, 
    comments => 'Chain calls 2 steps. Same program but with different arg values.'); 

DBMS_SCHEDULER.DEFINE_CHAIN_STEP (
    chain_name => 'MY_CHAIN', 
    step_name => 'STEP_1', 
    program_name => 'MY_PROGRAM'); 

DBMS_SCHEDULER.DEFINE_CHAIN_STEP (
    chain_name => 'MY_CHAIN', 
    step_name => 'STEP_2', 
    program_name => 'MY_PROGRAM'); 

DBMS_SCHEDULER.CREATE_JOB (
    job_name  => 'MY_CHAIN_JOB', 
    job_type  => 'CHAIN', 
    job_action  => 'MY_CHAIN', 
    repeat_interval => 'freq=daily;byhour=12;byminute=0;bysecond=0', 
    enabled   => TRUE); 
+0

더 많은 검색을 마치면 체인의 단계에 대한 인수를 정의 할 수 있습니다. 해결책은 테이블에 저장하고 각 단계에서 조회하는 것입니다. 나는이 대답을 여기에서 발견했다 : http://www.freelists.org/post/oracle-l/Passing-Arguments-to-Scheduler-Chains,1 – John

답변

1

들은 물론 같은 저장 프로 시저 또는 실행 파일을 참조 할 수 있지만, 나는이 두 가지 서로 다른 프로그램을 정의 할 필요가 거라고 생각합니다.

전 인수 값을 수정하지 않으면 전 익명 블록 프로그램 유형을 사용하여 저장 프로 시저에 인수를 지정하는 경향이 있습니다. 프로그램 인수 항목을 모두 추가하지 않으면 충분히 복잡합니다.