我们可以跳过一些必需的参数来执行ORACLE程序吗?

我们可以跳过一些必需的参数来执行ORACLE程序吗?,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 complet

我想执行这个过程,因为它没有任何参数,其中一些参数不是可选的。
我不能只使用优先级参数来执行它。

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

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'

如果它们没有默认值,则必须为它们指定一个值。这就是“强制性”的含义。强制性和选择性之间的选择应该始终明确。如果将“优先级”定义为强制性的,那么“非优先级”应该是可选的。如果您编写一个过程,您将很快看到为什么参数是必需的。