Skip to content
Oracle database driver for the DBI module
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


DBD::Oracle  --  an Oracle 7 and Oracle 8 interface for Perl 5.

   Copyright (c) 1994,1995,1996,1997,1998  Tim Bunce, England.

   You may distribute under the terms of either the GNU General Public
   License or the Artistic License, as specified in the Perl README file,
   with the exception that it cannot be placed on a CD-ROM or similar media
   for commercial distribution without the prior approval of the author.



   THE DBD::Oracle MODULE IS ALPHA SOFTWARE. It is *only* 'Alpha'
   because the interface (api) is not finalised. The Alpha status does
   not reflect code quality or stability.

   NEWS: The new enhanced Oracle 8 OCI is now supported by DBD::Oracle
   versions above 0.54. If the new code causes you problems you can
   build DBD::Oracle for Oracle 8 to use the Oracle 7 OCI by doing:
       perl Makefile.PL -8

|  NOTE:
|  The only currently supported interface is via, the        |
|  oraperl emulation layer. This is fairly complete and stable.         |
|  Execute "perldoc Oraperl" after installing for full information.     |


    The DBI requires one or more 'driver' modules to talk to databases.
    Fetch, build and install the DBI module as per it's README file.
    Then delete its source directory tree since it's no longer needed.
    Use the 'perldoc DBI' command to read the DBI documentation.
    Fetch the DBD::Oracle driver module and unpack it.
    Follow the guidelines in this README file caefully.

*** *BEFORE* BUILDING, TESTING AND INSTALLING this you will need to:

    Build, test and install Perl 5 (at least 5.003, preferably
    version 5.004_01 or later).
    It is very important to TEST it and INSTALL it!

    Build, test and install the DBI module (at least DBI 0.86).
    It is very important to TEST it and INSTALL it!

    Remember to *read* the DBI README file and this one CAREFULLY!

    Install enough Oracle software to enable DBD::Oracle to build.
    That usually includes Pro*C.


    perl Makefile.PL            # use a perl that's in your PATH

If you have problems see the 'IF YOU HAVE PROBLEMS' section below.
If it's builds without error you can then run the tests. For the
main test to work it must be able to connect to an Oracle database.

Don't worry about most warnings, specifically "end-of-loop code not
reached", "ANSI C forbids braced-groups within expressions", "cast
increases required alignment of target type" and "passing arg 2 of
`oerhms' with different width due to prototype".

You will need to set either the TWO_TASK or ORACLE_SID environment
variables to the correct values for your database. Consult Oracle
documentation for more details. Test your setting by connecting to
the database using an Oracle tool such as sqlplus. Once you can do
that then you can test DBD::Oracle knowing that it should work.

The supplied test will connect to the database using the value of the
ORACLE_USERID environment variable so you should set that to the correct
value before starting the test. Please read README.login.

    make test

    make install (if the tests look okay)


Make sure you are using a recent perl 5.003 or preferably 5.004 and
make sure it's on your path so you can say 'perl Makefile.PL' and
not '/path/to/perl Makefile.PL'.

If you have build/link or core dump problems try:
	perl Makefile.PL -p
If it helps then please let me know (and please include a copy
of the log from the failed default build, the log from the build that
worked, plus the output of the "perl -V" command).

The new enhanced Oracle 8 OCI is now supported by DBD::Oracle versions
above 0.54. If the new code causes you problems you can build
DBD::Oracle for Oracle 8 to use the Oracle 7 OCI API by doing:
   perl Makefile.PL -8

Do not hand edit the generated Makefile unless you are completely sure
you understand the implications! Always try to make changes via the
Makefile.PL command line and/or editing the Makefile.PL.
You should not need to make any changes. If you do please let me
know so that I can try to make it automatic in a later release.

If you just can't login or login takes a long time then read
README.login and possibly edit to suit.

If you can't get it to build on a minimally configured client system
then read README.client, it might help but basically I can't help much.
Others on the dbi-users mailing list probably can.

If you have linking problems (errors related to libraries or functions)
then you could try forcing a 'static' build using:

  make realclean
  perl Makefile.PL LINKTYPE=static
  make perl       (you'll need to use and install _this_ new perl binary)
  make test
  make -f Makefile.aperl inst_perl MAP_TARGET=perl  (install new perl)
  make install                                      (install DBD::Oracle)

>>> Also carefully read the file which is full of useful
>>> tips and workarounds for various problems of various systems.


Please don't post problems to comp.lang.perl.* or perl5-porters.
This software is supported via the dbi-users mailing list.  For more
information and to keep informed about progress you can join the
mailing list via (if you are unable to use the
web you can subscribe by sending a message to, it
may take a few days to be processed).

Please post details of any problems (or changes you needed to make) to and CC them to me at But note...


1. A complete log of all steps of the build, e.g.:

    (do a make realclean first)
    perl Makefile.PL -v        (note the -v for verbose)
    make test
    make test TEST_VERBOSE=1   (only if any of the t/* tests fail)

    Make sure to include the 'stderr' output. The best way to do this is
    to use the "script" command (man script). If that's not available
    then (assuming you're not using csh) do "command > command.log 2>&1"
    The "2>&1" is required (after the stdout redirect) to redirect stderr
    to the same place.

2. Full details of which version of Oracle you're using (if it
   wasn't automatically found and printed by "perl Makefile.PL")

3. The output of perl -V       (that's a capital V, not lowercase)

4. If you get errors like "undefined symbol", "symbol not found",
   "undefined reference", "Text relocation remains" or any similar
   error then include the output of "perl Makefile.PL -s XXX"
   where XXX is the name of one of the symbols.
   Please don't send the entire output of this command,
   just any obviously 'interesting' parts (if there are any).
   See also the LINKTYPE=static notes above.

5. If you get a core dump, rebuild DBD::Oracle with debugging
   enabled by executing: perl Makefile.PL -g  (note the -g option)
   then rerun the code to get a new core dump file, finally use a 
   debugger (gdb, sdb, dbx, adb etc) to get a stack trace from it.
   NOTE: I may not be able to help you much without a stack trace!
   It is worth fetching and building the GNU GDB debugger (4.15) if
   you don't have a good debugger on your system. If desparate try:
     make perl; ./perl script; echo '$c' | adb ./perl core

6. If the stack trace mentions XS_DynaLoader_dl_load_file then rerun
   make test after setting the environment variable PERL_DL_DEBUG to 2.

It is important to check that you are using the latest version before
posting. If you're not then I'm *very* likely to simply say "upgrade to
the latest". You would do yourself a favour by upgrading beforehand.

Please remember that I'm _very_ busy. Try to help yourself first,
then try to help me help you by following these guidelines carefully.
And remember, please don't mail me directly - use the dbi-users
mailing list.


Examples and other info:     -- READ IT FIRST IF YOU HAVE ANY PROBLEMS AT ALL!
README.clients  -- building/using DBD::Oracle on minimally configured systems
README.login    -- help for login problems
README.longs    -- examples dealing with LONG types (blobs)

DBI 'home page': (sadly often
out of date)

Master archive site for Perl DB information:
Mailing list archive:                /DBI/perldb-interest/
Perl 4 Oraperl (v2.4)                /perl4/oraperl/

Searchable index of the dbi-users mailing list:

IOUW 1996 Paper on connecting Oracle to the Web:

Jeff Stander's stuff stands out for Oraperl:
Directories of interest might be

Send stuff for the archive in
	format if by mail to me (
	And drop the .uu if using ftp, putting file(s) in

Some platforms on which the DBI and DBD::Oracle modules run:

	Solaris 1 and 2
	Windows NT (using Perl5.004)
	HP-UX 9 and 10
	Unisys U6000/300
	SCO 3
	Sequent DYNIX/ptx 2
	Motorola M88100 (SVR3.2)
	DEC Alpha
	DG/UX 5.4
	SGI IRIX 5 & 6
	AIX 3 & 4
	Pyramid SMP DC/OSx
	and others

(please let me know if your system is not listed).


See the large file for lots of hints and advice about build and
runtime issues.

Something went wrong with that request. Please try again.