【问题标题】:How to create procedure where you can choose which attributes to use如何创建可以选择使用哪些属性的过程
【发布时间】:2012-08-08 13:58:17
【问题描述】:

例如,我将创建这个过程

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');

如何获得此状态?感谢您的每一个建议

【问题讨论】:

  • 我会远离(存储)'YES''NO' 作为“布尔”值,而是使用(字符)'1'(真)和'0'(假)。然后在您的存储过程中,使用实际的BOOLEAN 数据类型(无法存储...)。

标签: sql plsql procedure


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2011-12-05
    • 2011-11-14
    • 1970-01-01
    • 2010-09-17
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多