是否可以將命名參數傳遞給dbms_scheduler作業,類型爲'stored_procedure'?我已經試過這樣:爲Oracle dbms_scheduler作業存儲過程設置命名參數
-- 1) example dummy procdure
CREATE OR REPLACE PROCEDURE my_test_proc (
param1 IN NVARCHAR2,
param2 IN NUMBER,
param3 IN NUMBER
) IS
BEGIN
-- ...
END;
-- 2)Example dummy job:
BEGIN
dbms_scheduler.create_job(
job_name => 'my_test_job'
,job_type => 'STORED_PROCEDURE'
,job_action => 'my_test_proc'
,start_date => sysdate
,number_of_arguments => 3
,enabled => FALSE
,auto_drop =>FALSE
);
END;
-- 3)Set named param value:
BEGIN
dbms_scheduler.set_job_argument_value(
job_name => 'my_test_job'
,argument_name => 'param1'
,argument_value => 'some value'
);
END;
我獲得以下錯誤:ORA
-27484: Argument names are not supported for jobs without a program. ORA-06512: at "SYS.DBMS_ISCHED", line 207 ORA-06512: at "SYS.DBMS_SCHEDULER", line 602 ORA-06512: at line 2
我成功地用argument_position設置中設置的參數值與set_job_argument_value。但是可能會出現這種情況,我需要運行存儲過程,我只需要設置某些參數,但這不可行。有沒有辦法將命名參數傳遞給調度程序作業引起的存儲過程?
[通過調度作業將參數傳遞給Oracle存儲過程]的可能的複製(http://stackoverflow.com/questions/9179775/passing-arguments-to-oracle-stored-procedure-through-scheduler-job ) – Vadzim