2014-12-04 29 views
0

我想执行该过程,因为它没有参数,其中一些参数不是可选的。 我不能通过只考虑我的优先参数来解决这个问题。我们可以通过跳过一些强制性参数来执行ORACLE处理吗?

+2

如果他们没有,你必须为它们指定值的默认值。这就是“强制性”的含义 – 2014-12-04 09:14:20

+0

强制性和可选性之间的选择应该始终清晰。如果您将“优先级”定义为强制性的,那么“非优先级”应该是可选的。如果你写一个过程,你很快就会明白为什么一个参数是强制性的。 – tvCa 2014-12-04 12:28:10

回答

0

您不能跳过强制参数,但是你可以忽略可选:

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' 
相关问题