首页 > PL/SQL挑战 > Oracle VALUE_ERROR异常(挑战题编号000005)

Oracle VALUE_ERROR异常(挑战题编号000005)

2015年4月10日 发表评论 阅读评论

 问题:一下哪几个选项运行完后,屏幕显示"-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挑战 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.