这是我第一次尝试创建一个包,所以我必须错过一些非常明显的东西(没有任何Google搜索引擎似乎甚至认为它值得一提)。如何在Oracle包中执行私有过程?
显然,如果程序包体中没有包含在规范部分中的程序,那么这些程序是私有的。我得到的问题是,我似乎无法弄清楚如何参考这些私人包裹,一旦我已经使他们。并且SQL Developer拒绝给我任何比'执行完成并且警告'更有用的消息,这对我没有帮助...
作为一个例子,这就是我一直在尝试的,不起作用的抛出上述编译器错误):
CREATE OR REPLACE PACKAGE BODY testPackage AS
PROCEDURE privateProc; --Forward declaration
PROCEDURE publicProc IS
BEGIN
EXECUTE privateProc();
END;
PROCEDURE privateProc IS
BEGIN
DBMS_OUTPUT.PUT_LINE('test');
END;
END testPackage;
我也试着将其称为testPackage.privateProc
,这也不奏效。
我在做什么错?
这很有帮助。我正确地拨打了电话,但我不知道我需要一个“前向声明”。 – 2012-10-04 18:22:10
@最终用户 - 只有在调用之前不声明私有过程时,才需要前向声明。就我个人而言,我发现以正确的顺序声明程序比给予自己额外的签名更容易维护。 – APC 2013-04-22 08:59:43