2012-07-04 2 views
2

Я использую SQL Developer для отладки кода, как показано ниже, результат вывода будет отображаться в диалоге отладки ТОЛЬКО после завершения всей хранимой процедуры. Нужно ли включать некоторые конфигурации?Отладочный вывод разработчика oracle SQL

Благодаря

FOR j IN REVERSE 1..i LOOP 
    DBMS_OUTPUT.PUT_LINE(emp_tab(j).first_name); 
    END LOOP; 

журнал

Connecting to the database hr. 
Executing PL/SQL: ALTER SESSION SET PLSQL_DEBUG=TRUE 
Executing PL/SQL: CALL DBMS_DEBUG_JDWP.CONNECT_TCP('192.168.1.4', '53475') 
Debugger accepted connection from database on port 53475. 
Source breakpoint occurred at line 24 of EMP_LIST.pls. 
Source breakpoint occurred at line 24 of EMP_LIST.pls. 
Source breakpoint occurred at line 24 of EMP_LIST.pls. 
Source breakpoint occurred at line 24 of EMP_LIST.pls. 
Source breakpoint occurred at line 24 of EMP_LIST.pls. 
Source breakpoint occurred at line 24 of EMP_LIST.pls. 
Executing PL/SQL: CALL DBMS_DEBUG_JDWP.DISCONNECT() 
Shelli 
Hermann 
David 
Mozhe 
Sundar 
Ellen 
Process exited. 
Disconnecting from the database hr. 
Debugger disconnected from database. 

ответ

4

Если вы используете DBMS_OUTPUT для отладки, вы не увидите никакого вывода, пока процесс не завершится. Вот так работает DBMS_OUTPUT.

Похоже, вы успешно используете отладчик SQL Developer, однако это гораздо более эффективный способ отладки хранимой процедуры. Вы, по-видимому, устанавливаете точки останова, чтобы вы могли проверить значения переменных на этих контрольных точках. Нет необходимости печатать значения.