Which DBD::Oracle Version is for Me?

Jul 24, 2008 / By John Scoles

Tags:

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.

Cheers!

2 Responses to “Which DBD::Oracle Version is for Me?”

  • Ummey Johra says:

    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
    t/01base…………….ok
    1/6
    # Failed test ‘install_driver’
    t/01base…………….NOK 4# in t/01base.t at line
    22.
    Failed to load Oracle extension and/or shared libraries:
    install_driver(Oracle) failed: Can’t load
    ‘/root/.cpan/build/DBD-Oracle-1.22/blib/arch/auto/DBD/Oracle/Oracle.so’
    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.

  • John Scoles says:

    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: http://www.nntp.perl.org/group/perl.dbi.users/

    Try searching that form.

    Cheers!

Leave a Reply

  • (will not be published)

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>