У меня есть процедура, определенная как:
CREATE OR REPLACE PROCEDURE foo (
AS_OF_DATE_IN IN DATE DEFAULT TRUNC(sysdate)-1
) AS ...
, которая может быть выполнена следующими способами:
-- passes '11-NOV-2011'
exec foo('11-NOV-2011');
--set DEFAULT value (yesterday's date)
exec foo();
--makes things more difficult, as default value isn't set
exec foo(NULL);
Что я хочу сделать, это:
AS_OF_DATE_IN:=NVL(AS_OF_DATE_IN, TRUNC(sysdate)-1);
но выдает ошибку переназначения.
Кроме обертывания всех случаев использования AS_OF_DATE_IN с NVL (), есть ли более эффективный способ справиться с этой ситуацией?Я сделал довольно глупую ошибку - я пишу процедуру, а не функцию.Процедура не возвращает значение.