CLIENT_TEXT_IO.PUT_LINE WebUtil при записи файлов CSV - PullRequest
1 голос
/ 06 января 2012

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

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

1 Ответ

0 голосов
/ 31 мая 2013

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

...