0
我想执行该过程,因为它没有参数,其中一些参数不是可选的。 我不能通过只考虑我的优先参数来解决这个问题。我们可以通过跳过一些强制性参数来执行ORACLE处理吗?
我想执行该过程,因为它没有参数,其中一些参数不是可选的。 我不能通过只考虑我的优先参数来解决这个问题。我们可以通过跳过一些强制性参数来执行ORACLE处理吗?
您不能跳过强制参数,但是你可以忽略可选:
CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 IN NUMBER DEFAULT 1, p3 IN NUMBER)
AS
BEGIN
NULL;
END;
BEGIN
myproc(p1=>1, p3=>2);
END;
----
anonymous block completed
BEGIN
myproc(p3=>2);
END;
-----
PLS-00306: wrong number or types of arguments in call to 'MYPROC'
如果他们没有,你必须为它们指定值的默认值。这就是“强制性”的含义 – 2014-12-04 09:14:20
强制性和可选性之间的选择应该始终清晰。如果您将“优先级”定义为强制性的,那么“非优先级”应该是可选的。如果你写一个过程,你很快就会明白为什么一个参数是强制性的。 – tvCa 2014-12-04 12:28:10