2014-12-04 3 views
0

Я хочу выполнить процедуру, поскольку она не имеет параметров. Некоторые из них не являются необязательными. не могу выполнить его, только принимая только мои параметры приоритета.Можем ли мы выполнить декларацию ORACLE, пропустив некоторые обязательные параметры?

+2

Если они не имеют значения по умолчанию, вы должны указать значение для них. В этом смысл «обязательный» –

+0

Выбор между обязательным и необязательным должен всегда быть ясным. Если вы определяете «приоритет» как обязательные, то, как следствие, «неприоритет» должен быть необязательным. Если вы напишете процедуру, вы очень быстро увидите, почему параметр является обязательным. – tvCa

ответ

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' 
Смежные вопросы