0

例如,我将创建此过程

Create procedure MyProc (name varchar2:='', married varchar2:='', surname varchar2:='') IS
...
...
...
END;

现在我想有时像这样使用它

MyProc (name=>'George', married=>'NO');

有时我需要像这样使用它

MyProc (name=>'Warren', surname=>'Palas');

有时我需要像这样使用它......

MyProc (name=>'Joey', married=>'YES', surname=>'BigJoey');

我怎样才能获得这个身份?感谢您的每一个建议

4

1 回答 1

0

如下指定您的过程并像您已经完成的那样使用“=>”方法调用应该可以实现这一点。

PROCEDURE MyProc (name IN yourtable.name%type, 
married IN yourtable.married%type := NULL,
surname IN yourtable.surname%type := NULL)

通过默认规范中的参数,它使参数成为“可选参数”。没有默认值的参数称为必需参数。

您还可以在包中指定您的过程并重载它。重载一个过程意味着在同一个包中创建多个同名的过程。过程的调用方式决定了实际执行的过程。

决定走哪条路可以取决于每种呼叫类型所需的处理之间的不同程度。通常,重载是代码抽象、结构化和维护目的的良好实践。

于 2012-08-08T14:34:16.813 回答