【发布时间】:2013-01-05 10:55:32
【问题描述】:
是否可以将命名参数传递给类型为“stored_procedure”的 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;
我收到以下错误: 甲骨文
-27484:没有程序的作业不支持参数名称。 ORA-06512:在“SYS.DBMS_ISCHED”,第 207 行 ORA-06512:在 “SYS.DBMS_SCHEDULER”,第 602 行 ORA-06512:第 2 行
我通过使用argument_position设置成功地设置了set_job_argument_value的参数值。但是在某些情况下,我需要运行存储过程,而我只需要为其设置某些参数,而这是行不通的。有没有办法将命名参数传递给调度程序作业运行的存储过程?
【问题讨论】:
标签: stored-procedures plsql oracle10g named-parameters dbms-scheduler