我们可以跳过一些必需的参数来执行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'
如果它们没有默认值,则必须为它们指定一个值。这就是“强制性”的含义。强制性和选择性之间的选择应该始终明确。如果将“优先级”定义为强制性的,那么“非优先级”应该是可选的。如果您编写一个过程,您将很快看到为什么参数是必需的。