繁体   English   中英

使用提供的/默认参数的Oracle存储过程调用

[英]Oracle stored procedure call with provided/default parameters

假设我具有以下Oracle存储过程签名:

procedure my_procedure(parameter_1 varchar2, parameter_2 varchar2 default 'someDefaultValue', parameter_3 varchar2 default 'anotherDefaultValue', parameter_4 varchar2 default 'oneMoreDefaultValue')

如果我对此存储过程进行以下调用:

BEGIN my_procedure('one','two'); END;

我很确定在存储过程中, parameter_1将保持值one

但是,哪个变量将保留值two

谢谢!

当您将第二个参数的值传递为2时,第二个参数会将其作为传递值。 请参阅以下示例

CREATE OR REPLACE PROCEDURE my_procedure (
    parameter_1     VARCHAR2,
    parameter_2     VARCHAR2 DEFAULT 'someDefaultValue',
    parameter_3     VARCHAR2 DEFAULT 'anotherDefaultValue',
    parameter_4     VARCHAR2 DEFAULT 'oneMoreDefaultValue'
)
AS
BEGIN
    DBMS_OUTPUT.put_line ('first param ' || parameter_1);
    DBMS_OUTPUT.put_line ('second param ' || parameter_2);
    DBMS_OUTPUT.put_line ('third param ' || parameter_3);
    DBMS_OUTPUT.put_line ('fourth param ' || parameter_4);
END;

并通过执行程序

SET SERVEROUTPUT ON SIZE 30000;

BEGIN
    my_procedure ('one', 'two');
END;

和输出

first param one
second param two
third param anotherDefaultValue
fourth param oneMoreDefaultValue

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM