gpt4 book ai didi

stored-procedures - 通过调度程序作业将参数传递给oracle存储过程

转载 作者:行者123 更新时间:2023-12-04 07:50:06 26 4
gpt4 key购买 nike

我有一个从dbms作业中调用的存储过程。 IE。

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;
    /

    关于stored-procedures - 通过调度程序作业将参数传递给oracle存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9179775/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com