【发布时间】:2019-11-05 13:26:54
【问题描述】:
下面的 Oracle 函数将“A”分配给数字变量。
但是 Exception 子句没有捕捉到INVALID_NUMBER 系统异常。
CREATE OR REPLACE FUNCTION TEST2
(P1 IN VARCHAR2)
RETURN NUMBER AS V_VALUE NUMBER;
BEGIN
SELECT(
--SELECT 1/TO_NUMBER(P1)
SELECT 'A'
FROM DUAL
)
INTO V_VALUE
FROM DUAL;
RETURN V_VALUE;
EXCEPTION
WHEN INVALID_NUMBER THEN -- If I change INVALID_NUMBER to OTHERS, then it works.
RETURN -1;
END;
/
SELECT TEST2('1') FROM DUAL;
当我将INVALID_NUMBER 更改为OTHERS 时,它就可以工作了。
如何修改上面的代码来触发INVALID_NUMBER异常?
【问题讨论】: