stored-procedures – 通过调度程序作业将参数传递给oracle存储
发布时间:2021-04-01 13:46:53 所属栏目:站长百科 来源:网络整理
导读:我有一个从dbms作业调用的存储过程.即 DBMS_SCHEDULER.RUN_JOB ('Procedure_JB',FALSE); 一个java代码存储过程,在执行一些操作后,异步启动Procedure_JB.然后这个Procedure_JB调用Procedure_PRogram,然后程序将调用存储过程. 如何将参数传递给我的存储过程?
我有一个从dbms作业调用的存储过程.即 DBMS_SCHEDULER.RUN_JOB ('Procedure_JB',FALSE); 一个java代码存储过程,在执行一些操作后,异步启动Procedure_JB.然后这个Procedure_JB调用Procedure_PRogram,然后程序将调用存储过程. 如何将参数传递给我的存储过程? >我必须传递给工作的论据来自java. 解决方法定义您的作业Procedure_JB以接受参数.然后使用dbms_scheduler.set_job_argument_value定义要传递到作业将要运行的程序的参数的值.一个例子(取自 https://forums.oracle.com/forums/thread.jspa?threadID=483135)-- create a stored procedure with two arguments create or replace procedure myproc (arg1 in varchar2,arg2 in varchar2) is BEGIN null; END; / -- create a program with two arguments and define both begin dbms_scheduler.create_program ( program_name=>'myprog',program_action=>'myproc',program_type=>'STORED_PROCEDURE',number_of_arguments=>2,enabled=>FALSE ) ; dbms_scheduler.DEFINE_PROGRAM_ARGUMENT( program_name=>'myprog',argument_position=>1,argument_type=>'VARCHAR2',DEFAULT_VALUE=>'13'); dbms_scheduler.DEFINE_PROGRAM_ARGUMENT( program_name=>'myprog',argument_position=>2,argument_type=>'VARCHAR2'); dbms_scheduler.enable('myprog'); end; / -- create a job pointing to a program and set both argument values begin dbms_scheduler.create_job('myjob',program_name=>'myprog'); dbms_scheduler.set_job_argument_value('myjob',1,'first arg'); dbms_scheduler.set_job_argument_value('myjob',2,'second arg'); dbms_scheduler.enable('myjob'); end; / (编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐