Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Отладка функции в PL/SQL Developer 10  [new]
sossisson
Member

Откуда: Заветы Ильича
Сообщений: 157
Привет!
Написал я функцию. В этой функции есть переменная типа Varchar2 (3200), которая наполняется данными в цикле, в общем эта переменная к концу работы цикла в длину более 3000 знаков. Я поставил breakpoint и в режиме debug пытаюсь посмотреть значение данной переменной, но в результате получаю "банан" - программа пишет "Large value".
скажите, как можно посмотреть что же у меня туда записалось, а желательно вообще выгрузить в файл значение переменной?
Спасибо.
29 май 14, 16:36    [16092793]     Ответить | Цитировать Сообщить модератору
 Re: Отладка функции в PL/SQL Developer 10  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
dbms_output.
29 май 14, 16:46    [16092885]     Ответить | Цитировать Сообщить модератору
 Re: Отладка функции в PL/SQL Developer 10  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Зачем в файл, пиши в таблицу
29 май 14, 16:46    [16092886]     Ответить | Цитировать Сообщить модератору
 Re: Отладка функции в PL/SQL Developer 10  [new]
sossisson
Member

Откуда: Заветы Ильича
Сообщений: 157
tru55,
Что, специально для этого случая таблицу создать?
29 май 14, 17:21    [16093260]     Ответить | Цитировать Сообщить модератору
 Re: Отладка функции в PL/SQL Developer 10  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
Камрад sossisson,

Создай для всех таких случаев таблицу и процедуру, которая будет в ету таблицу писАть
И будет тебе отладочное счастье! :-)))
+ Отладочное счастье здесь! :)
CREATE TABLE debug_tab(
   id NUMBER GENERATED AS IDENTITY
 , txt_1 VARCHAR2(4000 BYTE)
 , txt_2 VARCHAR2(4000 BYTE)
 , txt_3 VARCHAR2(4000 BYTE)
 , txt_4 VARCHAR2(4000 BYTE)
 , systs TIMESTAMP DEFAULT SYSTIMESTAMP);

CREATE OR REPLACE PROCEDURE debug_proc(p_txt IN VARCHAR2) 
IS
   PRAGMA autonomous_transaction;
BEGIN
   INSERT INTO debug_tab(txt_1, txt_2, txt_3, txt_4)
   VALUES( SUBSTRB(p_txt, 1, 4000), SUBSTRB(p_txt, 4001, 8000)
         , SUBSTRB(p_txt, 8001, 12000), SUBSTRB(p_txt, 12001, 16000) );
   COMMIT;
END;
/

BEGIN
   LOOP
      ...
      debug_proc(my_str);
   END LOOP;
END;
/

SELECT * FROM debug_tab
WHERE ...
ORDER BY ...;
29 май 14, 19:49    [16094148]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить