В функции test2
ниже, если я поставлю RETURN V_VALUE;
после
Предложение EXCEPTION, при выполнении code2 возникает системная ошибка ORA-06503: Function returned without value
.
CREATE OR REPLACE FUNCTION TEST2
(P1 IN VARCHAR2)
RETURN NUMBER AS V_VALUE NUMBER;
BEGIN
SELECT(
SELECT 1/TO_NUMBER(P1)
FROM DUAL
)
INTO V_VALUE
FROM DUAL;
--RETURN V_VALUE;
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
RETURN V_VALUE; --if I put RETURN clause after EXCEPTION, "ORA-06503: Function returned without value" raised
END;
/
SELECT TEST2('1') FROM DUAL;
Однако, когда я помещаю RETURN V_VALUE;
перед предложением EXCEPTION, оператор select возвращает 1
, как и ожидалось.
Должна ли позиция исключения находиться в конце тела функции?