| ||||||||||
Ключевые слова: perl, dbd, oracle, redhat, (найти похожие документы)
From: Роман Сотников <roman.sotnikov@gmail.com.> Newsgroups: email Date: Mon, 12 Oct 2008 17:02:14 +0000 (UTC) Subject: Установка DBD::Oracle на Perl5 RHEL4-U4-x86_64-AS ------------------- Потребовалось мне установить DBD::Oracle для Perl5 на RedHat RHEL4-U4-x86_64-AS. Пришлось несколько раз присесть, и в итоге хочу поделиться опытом. Первое что надо было поставить это клиент Oracle. Мы поставили Oracle 9i вот в такой конфигурации: Перед запуском runInstaller надо выполнить команду export LD_ASSUME_KERNEL=2.4.19. Установленные компоненты: network utilities sql*plus jdbc/oci interfaces call interface programmer xml developer's kit Для того чтобы работал DBD::Oracle, необходимо поставить DBI. Я взял со cpan.org вот это DBI-1.607. После этого ставим, я делал под рутом: perl Makefile.PL make make test make install Все встало без проблем. После этого ставим DBD::Oracle, так же под рутом, вот тут-то проблемы и начались: Первое что надо сделать, это добавить в профиль пользователя переменные окружения: В .bash_profile добавляем: ORACLE_HOME=/u01/app/oracle/product/9.2.0 export ORACLE_HOME LD_LIBRARY_PATH=/u01/app/oracle/product/9.2.0/lib export LD_LIBRARY_PATH unset USERNAME После этого я пытался ставить DBD-Oracle-1.22. Он вставать отказался. При сборке вылетала ошибка: Oracle.h:115: error: conflicting types for 'OCIXMLTypeCreateFromSrc' Oracle.h:115: note: an argument type that has a default promotion can't match an empty parameter name list declaration /u01/app/oracle/product/9.2.0/rdbms/demo/ociap.h:10054: error: previous declaration of 'OCIXMLTypeCreateFromSrc' was here Oracle.h:115: error: conflicting types for 'OCIXMLTypeCreateFromSrc' Oracle.h:115: note: an argument type that has a default promotion can't match an empty parameter name list declaration /u01/app/oracle/product/9.2.0/rdbms/demo/ociap.h:10054: error: previous declaration of 'OCIXMLTypeCreateFromSrc' was here make: *** [Oracle.o] Error 1 Я написал письмо в mailing list dbi-users at perl.org Там посоветовали попробовать поставить другую версию DBD::Oracle. Я попытался поставить DBD::Oracle 1.20 - безуспешно. Встала только версия DBD::Oracle 1.19. Ставил вот так: perl Makefile.PL -p make make test make install После этого надо дать права на чтение-запуск на директорию /u01/app/oracle (путь может отличаться) Я сделал так: chmod -R 774 oracle При этом пользователь от имени которого запускаются скрипты, входит в группу dba. После этого выполнил простейший скрипт: ora.pl #!/usr/bin/perl use DBI; $ENV{ORACLE_HOME}="/u01/app/oracle/product/9.2.0"; $ENV{NLS_LANG}="AMERICAN_CIS.CL8MSWIN1251"; my $db="192.192.192.9"; my $dbsid="SID"; my $dbuser="user"; my $dbpass="passwd"; $db = DBI->connect("dbi:Oracle:host=$db;sid=$dbsid", $dbuser, $dbpass); $sql0=$db->prepare(qq{ select 'OK' from dual }); $sql0->execute(); while(@row=$sql0->fetchrow_array){ print $row[0]."\n"; } Скрипт вернул OK. Надеюсь, кому-нибудь это поможет :) Удачи!
| ||||||||||
|
|
|