Oracle VALUE_ERROR异常(挑战题编号000005)
问题:一下哪几个选项运行完后,屏幕显示"-6502"
提示:VALUE_ERROR定义在STANDARD包里:
VALUE_ERROR EXCEPTION;
PRAGMA EXCEPTION_INIT (VALUE_ERROR, '-6502');
选项1:
DECLARE
l_string VARCHAR2(5);
BEGIN
l_string := '123456';
EXCEPTION
WHEN VALUE_ERROR
THEN
DBMS_OUTPUT.PUT_LINE (SQLCODE);
END;
/
选项2:
DECLARE
l_number NUMBER := 10;
l_string VARCHAR2(5);
BEGIN
l_string := l_number;
EXCEPTION
WHEN VALUE_ERROR
THEN
DBMS_OUTPUT.PUT_LINE (sqlcode);
END;
/
选项3:
DECLARE
l_number NUMBER := POWER (10, 5);
l_string VARCHAR2(5);
BEGIN
l_string := l_number;
EXCEPTION
WHEN VALUE_ERROR
THEN
DBMS_OUTPUT.PUT_LINE (sqlcode);
END;
/
选项4:
DECLARE
l_string VARCHAR2(5) := 'ABC';
l_number NUMBER;
BEGIN
l_number := l_string;
EXCEPTION
WHEN VALUE_ERROR
THEN
DBMS_OUTPUT.PUT_LINE (sqlcode);
END;
/
选项5:
DECLARE
l_string VARCHAR2(5);
BEGIN
SELECT '1234546' INTO l_string
FROM dual;
EXCEPTION
WHEN VALUE_ERROR
THEN
DBMS_OUTPUT.PUT_LINE (SQLCODE);
END;
/
选项6:
DECLARE
l_number NUMBER;
l_string VARCHAR2(5) NOT NULL := 'abc';
BEGIN
l_string := l_number;
EXCEPTION
WHEN VALUE_ERROR
THEN
DBMS_OUTPUT.PUT_LINE (SQLCODE);
END;
/
答案:http://www.anguora.com/plsql挑战答案/
分类: PL/SQL挑战