我正在尝试调试PLSQL中的匿名代码块。
DECLARE
l_pls PLS_INTEGER;
BEGIN
NULL;
l_pls := 2222222222;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(dbms_utility.format_error_backtrace);
dbms_output.put_line(dbms_utility.format_error_stack);
dbms_output.put_line(sqlerrm);
END;
但是,当按CTRL+SHIFT+F10时(在tools-preferences-debugger中选择了单步执行选项之后),调试器不会在第一行停止等待,而是执行该块。
Connecting to the database RBIP.
Executing PL/SQL: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( 'XX.XX.XX.XX', 'XXXXX' )
Debugger accepted connection from database on port XXXXX.
Executing PL/SQL: CALL DBMS_DEBUG_JDWP.DISCONNECT()
ORA-06512: at line 5
ORA-01426: numeric overflow
ORA-01426: numeric overflow
Process exited.
Disconnecting from the database RBIP.
Debugger disconnected from database.
如何使调试器工作?
1条答案
按热度按时间tv6aics11#
错误为
ORA-01426:数字溢出
PLS_INTEGER
数据类型的最大值为2,147,483,647(2^31 - 1)。使用
NUMBER
数据类型。