【问题标题】:Optional output cursor as parameter可选输出光标作为参数
【发布时间】:2015-08-12 06:31:29
【问题描述】:

我正在尝试满足两个应用程序的需求。

一个调用带有 2 个游标的过程,另一个调用带有 1 个游标的过程。

两者都是OUT SYS_REFCURSOR

由于程序定义的不同,对一个应用程序的更改将破坏另一个应用程序。

我想知道是否有可能与OUT SYS_REFCURSOR 具有相同的过程,但第二个参数是可选的。这是通过定义默认值在项目的其他部分完成的。

我试过谷歌搜索和定义默认值,但无济于事。这似乎不是一个非常普遍的问题。

有没有办法通过可选的OUT SYS_REFCURSOR 来定义这个定义?

这是我的代码:

PROCEDURE Proc_GetQ (qList OUT SYS_REFCURSOR, qStack OUT SYS_REFCURSOR);

我希望 qStack 是可选的。

谢谢, JFIT

【问题讨论】:

    标签: oracle parameters cursor default-value optional-parameters


    【解决方案1】:

    method overloading 呢?

    PROCEDURE Proc_GetQ (qList OUT SYS_REFCURSOR, qStack OUT SYS_REFCURSOR);
    PROCEDURE Proc_GetQ (qList OUT SYS_REFCURSOR);
    

    创建一个同名、逻辑相似的过程(最好在里面调用2参数版本,在外面只传递一个),但只需要一个OUT参数。

    【讨论】:

    • 非常感谢。对于我正在简化的问题。有两种方法需要这个。我现在收到此错误:“Proc_GetQ”的声明太多与此调用匹配。尽管我已经按照你的要求做了。它似乎来自调用其中之一的过程。但定义不同,所以不知道为什么不匹配。
    • PLS-00307,嗯?这些“Proc_GetQ”是否在同一个包中?你能列出这个包中所有方法的声明吗?还有你调用这些过程的代码。
    • @JFit 很高兴也能看到您的新单参数程序代码。
    • 现在一切都很好,谢谢@miraclefoxx - 我使用了你所使用的方法,就像你展示的那样。将光标拉出到较小的方法中并包裹原始。非常感谢您的回答:)
    猜你喜欢
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 2014-07-10
    • 2011-01-14
    • 2021-11-23
    • 2011-05-16
    • 2013-11-26
    • 2013-11-30
    相关资源
    最近更新 更多