dimanche 25 avril 2010
Perl DBD::Oracle et le client Oracle 8.1.7
Par david techer, dimanche 25 avril 2010 à 19:02 :: Oracle
DB::Oracle 1.24 incompatible avec le client 8.1.7
La toute dernière version de DBD Oracle est la 1.24. Elle ne peut pas être compilée avec le client 8.1.7. En effet, la tentative de compilation aboutit à Â
.... In file included from Oracle.xs:1: Oracle.h:135: error: expected declaration specifiers or ‘...’ before ‘OCIXMLType’ Oracle.c: In function ‘XS_DBD__Oracle__db_ora_lob_append’: Oracle.xs:358: warning: unused variable ‘startp’ Oracle.c: In function ‘boot_DBD__Oracle’: Oracle.c:1862: error: ‘OCI_FETCH_CURRENT’ undeclared (first use in this function) Oracle.c:1862: error: (Each undeclared identifier is reported only once Oracle.c:1862: error: for each function it appears in.) make: *** [Oracle.o] Error 1Il s'avère que
'OCI_FETCH_CURRENT'
n'est pas défini dans le fichier oci.h de la 8.1.7.
La seule solution est de prendre une version compatible: DBD::Oracle 1.20
Compilation/installation de DBD::Oracle 1.20
Si les variables d'environnement pour Oracle et LD_LIBRAY_PATH et PATH sont à  jour
root@monroe:/tmp/DBD-Oracle-1.20# env|grep -E '(ORA|PATH)' LD_LIBRARY_PATH=/u01/app/oracle/product/8.1.7/lib:/lib:/usr/lib:/usr/local/lib: ORACLE_BASE=/u01/app/oracle PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games ORA_NLS33=/u01/app/oracle/product/8.1.7/ocommon/nls/admin/data ORACLE_HOME=/u01/app/oracle/product/8.1.7alors on peut procéder à  la compilation/installation
wget http://ftp.u-strasbg.fr/CPAN/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.20.tar.gz -O - |tar xvzf - cd DBD-Oracle-1.20/ perl Makefile.PL && make && make install