Обработка запроса к базе возвращающего большой объем данных

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
Ivan Pivtsaev
Сообщения: 2
Зарегистрирован: 13 сен 2005, 10:29
Откуда: Краснодар
Контактная информация:

13 сен 2005, 11:05

Есть запрос возвращающий более 4000 строк каждая гдето 200байт
Пытаюсь обработать его в Perl и вывести его следующим образом:
my $sth = $dbh->prepare( $sql2 );
$sth->execute();
while ( my($P1, $P2, $P3, $P4) = $sth->fetchrow_array) {
print "$P1 $P2 $P3 $P4\n";
};
не получается, останавливается всегда на одной и тойже записи.
Вывел все что выводилось в отдельный файл получил размер файла ровно 8кб.
По всей видимости именно столько и передается в Perl.
Как получить все что возвращает запрос, может кто сталкивался с такой же проблемой? Помогите пожалуйста.
UUU
Сообщения: 309
Зарегистрирован: 17 фев 2004, 09:27
Откуда: Иваново
Контактная информация:

15 сен 2005, 16:45

1. Попробуй на локальной машине, а не на хостинге, если получится также - проблема не в модуле, а в данных :-)
2. сосчитать, сколько записей в выборке и выводи по несколько строк :-)

Никогда не замечал ограничений :-)
Ivan Pivtsaev
Сообщения: 2
Зарегистрирован: 13 сен 2005, 10:29
Откуда: Краснодар
Контактная информация:

15 сен 2005, 17:25

Да дело действительно было в данных все остальное плод моего воображения ;-) просто как-то странно обрабатывались пустые значения некоторые выводились на некоторых глючило. Поставил в запросе NVL заменил пустые значения на символ пробела и все заработало.
Остался один вопрос, почему некоторые пустые значения все-таки выводились?
UUU
Сообщения: 309
Зарегистрирован: 17 фев 2004, 09:27
Откуда: Иваново
Контактная информация:

16 сен 2005, 08:39

Все таки сдается мне, что приведенный кодв первом посте - это не тот, рабочий код, который записывает всего 8 кб.
Скорее всего у тебя проблема именно в обработчике твоем., а не в стандартном модуле.
Ответить