Which DBD::Oracle Version is for Me?

Posted in: Technical Track

1, 2, 3, 4, 5, 6, 9, or 10. It ain’t no Feist song, but she got it right. Notice that she mentions no 7 or 8 in it. Well, that is also true for version support in release 1.21 of DBD::Oracle.

With some of the new functionality that was introduced in DBD::Oracle 1.21, you can no longer use the Oracle 7 and most early 8 clients to build DBD::Oracle.

I hope this little table will help you choose which version of DBD::Oracle is right for you.

Oracle Version
DBD::Oracle Version <8 8.0.3 – 8.0.6 8iR1 – R2 8iR3 9i – 11g
0.1 – 16 Y Y Y Y Y
1.17 Y Y Y Y Y
1.18 N N N Y Y
1.19 N N N Y Y
1.20 N N N Y Y
1.21 N N N Y Y
1.22 N N N N Y

As there are dozens and dozens of different versions of Oracle’s clients, I did not bother to list any of them, just the major release versions of Oracle that are out there.

Note that one can still connect to any Oracle version with the older DBD::Oracle versions. The only problem you will have is that some of the newer OCI and Oracle features available in later DBD::Oracle releases will not be available to you.

So to make a short story a little longer:

  1. If you are using Oracle 7 or early 8, get a 9 client and you can use any DBD::Oracle version.
  2. If you have to use an Oracle 7 client, then DBD::Oracle 1.17 should work.
  3. Same thing for 8 up to R2, use 1.17, if you are lucky and have the right patch-set you might go with 1.18.
  4. For 8iR3, you can use any of the DBD::Oracle versions up to 1.21. Again, this depends on your patch-set. If you run into trouble, go with 1.19.
  5. After 9, you can use any version you want.
  6. For you Luddites out there, ORAPERL still works and is still included but not updated anymore.
  7. You will notice I have 1.22 listed, which is the next version of DBD::Oracle where support for Oracle 8 clients has been dropped. Sorry for this–it was just getting too hard to maintain, especially with many new functions being introduced in 10g and 11g.
  8. It seems that the 10g client can only connect to 9 and 11 DBs, while the 9 can go back to 7 and even get to 10. I am not sure what the 11g client can connect to.


Want to talk with an expert? Schedule a call with our team to get the conversation started.

2 Comments. Leave new

We are trying to install DBD::Oracle 1.22 in Linux Red Hat and getting following error. Can anyone help us to resolve this issue.
Thanks in Advance.

Here it is where it is failing to compile.
PERL_DL_NONLAZY=1 /usr/bin/perl “-MExtUtils::Command::MM” “-e”
“test_harness(0, ‘blib/lib’, ‘blib/arch’)” t/*.t
t/01base…………….# Test loading DBI, DBD::Oracle and version
# Failed test ‘install_driver’
t/01base…………….NOK 4# in t/01base.t at line
Failed to load Oracle extension and/or shared libraries:
install_driver(Oracle) failed: Can’t load
for module DBD::Oracle: libclntsh.so.10.1: cannot open shared object
file: No such file or directory at
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230.
at (eval 7) line 3
Compilation failed in require at (eval 7) line 3.
Perhaps a required shared library or dll isn’t installed where expected
at t/01base.t line 19
The remaining tests will probably also fail with the same error.


Looks like some sort of permissions problem or you do not have ‘ORACLE_HOME’ and ‘LD_LIBRARY_PATH’ ENV variables set correctly.

I also noticed that you are using 64-bit perl which also might be your problem as you have to use the 64-bit client.

This is not really the right spot for this sort of question. You will most likely find your answer at: https://www.nntp.perl.org/group/perl.dbi.users/

Try searching that form.



Leave a Reply

Your email address will not be published. Required fields are marked *