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);
更多的搜索出現後,我可以定義鏈中的步驟的參數。解決方法是將它們存儲在表中並從每個步驟中查找它們。我在這裏找到了這個答案:http://www.freelists.org/post/oracle-l/Passing-Arguments-to-Scheduler-Chains,1 – John