2012-01-06 3 views
1

Мы переносим наши формы Oracle и отчеты Oracle с 6i до 10g по Windows 7. Но когда мы изменили новый ПК с Windows 7, пользователи сообщили о нескольких отчетах и ​​некоторых формах, которые генерируют CSV файлы, они генерировали неполные данные или файлы в пустых -не записи, а только заголовки.CLIENT_TEXT_IO.PUT_LINE WebUtil при вводе файлов CSV

Оглядевшись, мы находим, что, когда мы используем BETWEEN CLAUSE так:

SELECT id, name, lastname FROM employee WHERE date_start BETWEEN :P_INIT_DATE AND :P_FINAL DATE 

Полученный файл был пустым или с записями с несовпадающими датами, поэтому мы вывели там были проблемы между Windows 7 даты понимания и база данных Oracle или что-то еще, мы пока не знаем. Мы могли бы решить все это, сделав двойное преобразование TO_DATE(TO_CHAR(:P_DATE)), но теперь, когда мы хотим создать файл CSV с формами 10g, используя CLIENT_TEXT_IO.PUT_LINE, мы экспериментируем с странным поведением. Webutil начинает писать файл, но когда это достигает определенного количества строк, он снова перезаписывает тот же файл, начинающийся в начале файла CSV. Поэтому, когда вы открываете файл в excel, вы видите только последние строки X.

Я бы очень признателен за любую помощь в решении этих проблем. Нет конкретного вопроса, я просто объясню возникшую проблему, ища помощь

+0

Не знаю - но это могло бы помочь: https://forums.oracle.com/forums/thread.jspa?threadID=566110 –

ответ

0

CLIENT_TEXT_IO кэширует записи перед тем, как записать их в свой файл. Я видел несколько разных порогов в диапазоне, который вы цитируете. Если код формы выдает SYNCHRONIZE; каждый записанный так много записей, кеш будет краснет каждый SYNCHRONIZE. На данный момент я не пишу большие файлы, но в прошлом 100 записей за SYNCHRONIZE работали хорошо. Проверьте свои тайминги тщательно; 100 может быть слишком мало записей за SYNCHRONIZE. Поскольку число, которое я видел, варьируется от магазина к магазину, я бы сказал, что он НЕ относится исключительно к количеству записей, но сколько байтов вы вставляете в свой кеш.