У меня странная проблема с модулем perl и DBI. Иногда я могу успешно получить запрос, но иногда, когда я добавляю строку кода, которая удаленно связана с доступом к базе данных или чем-то в этом роде, я получаю сообщение об ошибке:
DBD :: Oracle :: st fetchrow_array failed: ERROR не выполняется инструкция (возможно, вам нужно сначала вызвать execute) [для инструкции «select * from (...)»] в строке 18 script.pl.
Я проверил с помощью sqlplus, что у моей команды select здесь нет проблем (конечно, поэтому я сказал, что скрипт иногда работает!)
Если я добавил точку с запятой после команды select в скрипте perl, я получил еще одну ошибку:
Ошибка подготовки DBD :: Oracle :: db: ORA-00911: недопустимый символ (ОШИБКА DBD: ошибка, возможно, рядом с индикатором ‹*> в char 970 в 'select * from (...)‹ *>;') [для утверждения » select * from (...); "] в строке 13 script.pl.
Может ли кто-нибудь подсказать мне, что здесь происходит? Это потому, что команда sql слишком длинная (~ 900 символов)?
perldoc DBD::Oracle
или DBD :: Oracle; такжеperldoc DBI
или DBI. Некоторые драйверы имеют странные ограничения на одновременную активацию двух дескрипторов операторов или аналогичные правила. - person Jonathan Leffler   schedule 12.05.2011