Chris Hamel wrote:
I have been pulling my hair out for two days with this problem I'm
getting trying to install DBD::Oracle:

$ make test

        gcc -maix32 -c  -I/apps/oracle/product/oracle816/rdbms/demo -I/
apps/oracle/product/oracle816/rdbms/public -I/apps/oracle/product/
oracle816/rdbms/demo -I/apps/oracle/product/oracle816/rdbms/public -I/
apps/oracle/product/oracle816/plsql/public -I/apps/oracle/product/
oracle816/network/public -I/i2/lib/perl5/site_perl/5.10.0/aix-thread-
multi/auto/DBI  -D_THREAD_SAFE -D_ALL_SOURCE -D_ANSI_C_SOURCE -
D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -fno-strict-
aliasing -pipe -I/usr/local/include -D_LARGE_FILES -O    -DVERSION=
\"1.21\"  -DXS_VERSION=\"1.21\"  "-I/i2/lib/perl5/5.10.0/aix-thread-
multi/CORE"  -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=
\"8.1.6\" -DUSE_ORA_OCI_STMNT_FETCH  Oracle.c

Oracle.c: In function 'boot_DBD__Oracle':
Oracle.c:2041: error: 'OCI_FETCH_CURRENT' undeclared (first use in
this function)
Oracle.c:2041: error: (Each undeclared identifier is reported only
once
Oracle.c:2041: error: for each function it appears in.)
make: The error code from the last command is 1.

The header files you are using from Oracle appear to be missing a definition for OCI_FETCH_CURRENT. On my system with instant client and the sdk it is defined in oci.h like this:

oci.h:#define OCI_FETCH_CURRENT 0x01 /* refetching current position */

Looking at your compile line above I'm guessing you are using Oracle 8.1.6 and that OCI_FETCH_CURRENT was not available in 8.1.6 )or at least not defined). The latest release of DBD::Oracle contains new scrollable cursor support which will need OCI_FETCH_CURRENT. I cannot say if 8.1.6 supports OCI_FETCH_CURRENT but unless you are using scrollable cursors (which I doubt since your previous DBD::Oracle didn't support them) you could one of the following:

1. replace OCI_FETCH_CURRENT on line 2041 of Oracle.c with 0x01.

2. get a recent instant client and instant client sdk and compile DBD::Oracle against that.


I am absolutely stumped.  I have read all of the relevant readme files
and searched the web (and usenet) and am at my wits end.  Not knowing
c or Oracle well, it does hamper my ability to solve this mystery on
my own.

If anyone has any advice or guidance, it would be greatly appreciated.

Background:
- Running on AIX 5.3
- Perl 5.10 recently installed with gcc, threads enabled.  Perl is
working great, as is DBI
Oracle, SQL Plus, etc. working fine on the box
- Previous instance of Perl (5.8.0), DBI (1.43) and DBD::Oracle (1.15)
are still working fine (meaning I'm not down).  I recall I had to do
some funny stuff to get DBD::Oracle to work last time, but it was all
within the readme files
- I am not root...  installed Perl locally using: ./Configure -des -
Dusethreads -Dcc=gcc -Dprefix=/i2
- Reinstalled Perl, DBI, and this using xlc_r (alias cc_r), and it
gave me even more errors
- Would love to do 64 bit Perl, but gcc seemed to puke -- not
important for now

Thank you in advance to anyone who can point me in the right
direction.
Chris



Hope this helps.

Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com

Reply via email to