【发布时间】:2019-11-06 09:12:49
【问题描述】:
在下面的函数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。
Exception的位置应该在函数体的末尾吗?
【问题讨论】:
标签: sql oracle exception plsql return