DBD-Oracle
view release on metacpan or search on metacpan
README.help.txt view on Meta::CPAN
You probably built DBD::Oracle for static linking rather than dynamic
linking. See 'For platforms which require static linking' above for
more info. If your platform supports dynamic linking then try to work
out why DBD::Oracle got built for static linking.
-------------------------------------------------------------------------------
Error: Syntax warnings/errors relating to 'signed'
Remove the /* and */ surrounding the '/* #define signed */' line in dbdimp.h
-------------------------------------------------------------------------------
ORA-00900: invalid SQL statement "begin ... end"
You probably don't have PL/SQL Oracle properly/fully installed.
-------------------------------------------------------------------------------
Connection/Login slow. Takes a long time and may coredump
Oracle bug number: 227321 related to changing the environment before
connecting to oracle. Reported to be fixed in 7.1.6 (or by patch 353611).
To work around this bug, do not set any environment variables in your
oraperl script before you call ora_login, and when you do call
ora_login, the first argument must be the empty string. This means
that you have to be sure that your environment variables ORACLE_SID
and ORACLE_HOME are set properly before you execute any oraperl
script. It is probably also possible to pass the SID to ora_login as
part of the username (for example, ora_login("", "SCOTT/TIGER@PROD",
"")), although I have not tested this.
This workaround is based on information from Kevin Stock.
Also check $ORACLE_HOME/otrace/admin. If it contains big *.dat files
then you may have otrace enabled. Try setting EPC_DISABLED=TRUE
in the environment of the database and listener before they're started.
Oracle 7.3.2.2.0 sets this to FALSE by default, which turns on tracing
of all SQL statements, and will cause very slow connects once that
trace file gets big. You can also add (ENVS='EPC_DISABLED=TRUE') to
the SID_DESC part of listener.ora entries. (With thanks to Johan
Verbrugghen jverbrug@be.oracle.com)
-------------------------------------------------------------------------------
Connection/Login takes a long time
Try connect('', 'user/passwd@tnsname', ''). See README.login.txt and
item above.
-------------------------------------------------------------------------------
Error: ORA-00604: error occurred at recursive SQL level (DBD: login failed)
This can happen if TWO_TASK is defined but you connect using ORACLE_SID.
-------------------------------------------------------------------------------
Error: ld: Undefined symbols _environ _dlopen _dlclose ...
Environment: SunOS 4.1.3, Oracle 7.1.6 Steve Livingston <mouche@hometown.com>
If you get link errors like: ld: Undefined symbols _environ _dlopen _dlclose ...
and the link command line includes '-L/usr/5lib -lc' then comment out the
'CLIBS= $(OTHERLIBS) -L/usr/5lib -lc' line in the Makefile.
-------------------------------------------------------------------------------
Error: fatal: relocation error: symbol not found: main
Environment: Solaris, GCC
Do not use GNU as or GNU ld on Solaris. Delete or rename them, they are
just bad news. In the words of John D Groenveld <groenvel@cse.psu.edu>:
Run, don't walk, to your console and 'mv /opt/gnu/bin/as /opt/gnu/bin/gas;
mv /opt/gnu/bin/ld /opt/gnu/bin/gld'. You can add -v to the gcc command
in the Makefile to see what GCC is using.
-------------------------------------------------------------------------------
Error: relocation error:symbol not found:setitimer
Environment: SVR4, stephen.zander@mckesson.com
Error: can't load ./blib/arch/auto/DBD/Oracle/Oracle.so for module DBD::Oracle:
DynamicLinker:/usr/local/bin/perl:relocation error:symbol not found:setitimer
Fix: Try adding the '-lc' to $ORACLE_HOME/rdbms/lib/sysliblist (just
make sure it's not on a new line).
-------------------------------------------------------------------------------
Error: relocation error:symbol not found:mutex_init
Environment: UnixWare 7.x, earle.nietzel@es.unisys.com
On the UnixWare 7.x platform the compiler flag -Kthread is commonly used
when compiling for mulithread however in this case you should use -lthread.
The compiler will complain that you should be using -Kthread and not
-lthread, you should ignore these messages. Besure to check this compiler
flag in $ORACLE_HOME/lib/sysliblist also.
-------------------------------------------------------------------------------
Error: Undefined symbols __cg92_used at link time.
Environment: Solaris, GCC
Fix: If you're compiling Oracle applications with gcc on Solaris you need to
link with a file called $ORACLE_HOME/lib/__fstd.o. If you compile with the
SparcWorks compiler you need to add the command line option on -xcg92
to resolve these symbol problems cleanly.
Alligator Descartes <descarte@hermetica.com>
-------------------------------------------------------------------------------
Environment: SunOS 4.1.3, Oracle 7.1.3 John Carlson <carlson@tis.llnl.gov>
Problem: oraperl and DBD::Oracle fail to link. Some messing around with
the library order makes the link succeed. Now I get a "Bad free()" when
ora_logoff is called.
Solution:
In my case, this was caused by a faulty oracle install. The install grabbed
the wrong version of mergelib (The X11R6 one) instead of the one in
$ORACLE_HOME/bin. Try a more limited path and reinstall Oracle again.
-------------------------------------------------------------------------------
Environment: SGI IRIX
From Dennis Box <dbox@fndapl.fnal.gov>:
Details instructions are available from http://misdev.fnal.gov/~dbox/n32/
(To build IRIX n32 format using the Oracle n32 toolkit.)
From Mark Duffield <duffield@ariad.com>: (possibly now out of date)
Oracle only supports "-32" and "-mips2" compilation flags, not "-n32".
Configure and build perl with -32 flag (see perl hints/irix_6.sh file
in the perl distribution).
Rebuild DBI (which will now use the -32 flag).
Rebuild DBD::Oracle (which will now use the -32 flag).
Since IRIX depends on the perl executable in /usr/sbin, you'll have to
keep it around along with the one you just built. Some care will need
to be taken to make sure that you are getting the right perl, either
through explicitly running the perl you want, or with a file header in
your perl file. The file header is probably the better solution of the two.
In summary, until Oracle provides support for either the "-n32" or the "-64"
compiler switches, you'll have to have a perl, DBI, and DBD-Oracle which are
compiled and linked "-32". I understand that Oracle is working on a 64bit
versions of V7.3.3 for SGI (or MIPS ABI as they call it), but I don't have
any firm dates.
You may also need to use perl Makefile.PL -p.
( run in 1.213 second using v1.01-cache-2.11-cpan-71847e10f99 )