У меня есть сценарий perl, который подключается к базе данных Oracle, открывает текстовый файл и загружает данные из файла в таблицу базы данных. Этот сценарий отлично работает на моей машине для разработки (32-разрядная версия Windows XP), однако при загрузке Сценарий к производственному серверу (Windows 2003 64-разрядная версия) и запустить его из командной строки, он открывает perl.exe - не удается найти компонентные окна, в сообщении говорится
Это приложение не удалось запустить, потому что OCI.dll не был найден. Повторная установка приложения может решить эту проблему.
Вывод командной строки:
install_driver (Oracle) не удалось: не удается загрузить
'C: /Perl64/lib/auto/DBD/Oracle/Oracle.dll' для модуля DBD :: Oracle:
load_file:% 1 не является допустимым приложением Win32 в
C: /Perl64/lib/DynaLoader.pm строка 191. в (eval 14) строка 3 Компиляция
failde in require в (eval 14) строке 3. Возможно, требуется общий доступ
библиотека или dll не установлена, где ожидается в
c: \ Гарантия \ ГарантияImport.pl строка 15
Я переустановил клиент oracle, я попытался удалить активный perl и клиент oracle, а затем установить клиент oracle перед perl, поскольку слышал, что это может вызвать проблему.
Я подумал, что это могут быть разрешения, поэтому я написал простой Perl-скрипт для открытия в oci.dll и вызвал ошибку, если не смог, он смог открыть его правильно.
Я убедился, что C: \ oracle \ product \ 10.2.0 \ client_1 \ bin находится в переменной окружения PATH.
Я могу подключиться к базе данных, используя SQLPlus
Я добавил OCI.dll в тот же каталог, что и скрипт perl.
и у меня наконец-то закончились идеи ... может кто-нибудь что-нибудь предложить, я рву свои волосы, пытаясь заставить это работать.
Подробнее
Сервер работает под управлением ActivePerl 5.14.1 Build 1401 (64-разрядная версия)
База данных Oracle 10 г
Клиент Oracle 10.2.0