Я хочу просмотреть вывод, когда программа переходит во время обработки некоторых записей. Чтение строки не поможет, поскольку она просто извлекается из буфера и ничего больше. Например:Как найти dbms_output.put_line() альтернативу печати содержимого по строкам каждый раз, когда он вызывается на каждой итерации?
DECLARE
CURSOR cEmploee IS SELECT * FROM g_emploees;
iTotal INTEGER := 0;
iCount INTEGER := 0;
BEGIN
SELECT COUNT(*) FROM g_emploees INTO iTotal;
FOR rLine IN cEmploee loop
dbms_output.put_line('Porcessed['||rLine.id||']: '|| ((iCount/iTotal)*100) || '%')
iCount := iCount + 1;
END LOOP;
END;
- Я не могу использовать dbms_output.get_line(), Так что перестань маркировка он ответил!
- Я не могу передать вывод в файл только для чтения!
Есть ли команда/настройки для СУБД, которые я могу использовать для того, чтобы просмотреть обработанное% и печатают линию для обрабатываться в каждой итерации, а не в конце, как целая куча линий, сохраняющиеся в буфере (Распечатка строки должна показывать каждое точное время в PL/SQL, когда «dbms_output.put_line» вызывается не как 500 строк в конце выполнения)?
Нет. Там нет такой опции. Выход будет отображаться только после завершения процедуры. –
Возможный дубликат [Есть ли способ сбросить вывод из PL/SQL в Oracle?] (Http://stackoverflow.com/questions/1472587/is-there-any-way-to-flush-output-from-pl -sql-in-oracle) – user272735
Это также дубликат [Как заставить dbms_output.put_line печатать строки за строкой при вызове на каждой итерации] (http://stackoverflow.com/questions/39099366/how-to-make- dbms-output-put-line-to-print-line-by-line-when-called-in-every-it) и был создан, потому что первый был закрыт как дубликат. –