DBD::Oracle 1.23 Released

Posted in: Technical Track

The “Sesame Street” Version of DBD::Oracle (1.23) has been released.

You can find it at CPAN DBD::Oracle.

DBD::Oracle is the Perl module that works with the DBI module to provide access to Oracle databases. It is maintained by me, John Scoles, under the auspices of The Pythian Group as open source/free software.

This release is largely a maintenance release that fixes a number of bugs.

New stuff includes the ability to fetch Oracle embedded types directly into an oracle object; a big thank you goes out to Tomas Pokorny for that patch.

Also, UTF8 support has been expanded and cleaned up for BLOBs and execute_array and thanks go out to Milo van der Leij, David Mansfield for most of the work on this.

Also a big thanks Alex Buttery, Jim McCullars, Charles Jardine, Eric Simon, and Chris Underhill, who helped out with some clean up of the code, READMEs, and the POD.

I have also now added two private statement functions ora_stmt_type_name and ora_stmt_type which will get the OCI type name and type for the currently prepared statement.

The complete change list

  • Fix from rt.cpan.org, ticket # 44788: bool in_lite should be char in_literal
  • Fix for UTF8 and blobs by John Scoles with Milo van der Leij
  • Fix for some warnings and one bug in ocitrace.h from Charles Jardine
  • Fix in case there may be a bug in Oracle 11g where the OCI_ATTR_DATA_SIZE may return 0, which should never happen; John Scoles
  • Fix on the Makefile.PL for a possible SQL bug in instantclient from Martin Evans
  • Added a change from a suggestion from Martin Evans for making ref cursors faster
  • Added rt.cpan.org Ticket # 42328: ora_objects attribute for extended embedded objects support; from Tomas Pokorny
  • Fix for rt.cpan.org Ticket # 42328; user-defined types from different schema in describe_obj; from Tomas Pokorny
  • Added a README for Sun; suggested by Jim McCullars
  • Clean up of white space and formatting to 4 tabs; from John Scoles
  • Fix for GCC 4.3 warnings; from Eric Simon
  • Standardized the dbd_verbose levels so they are all 3 and over; from John Scoles
  • Added private statement functions ora_stmt_type_name and ora_stmt_type; from John Scoles
  • Update to POD; from Chris Underhill
  • Added README.win64.txt with content from Alex Buttery
  • Fix for rt.cpan.org Ticket # 21920: Bug with Oracle DBD for Mac OS X Instant Client; from boingolover
  • Added a few more constants to get rid of magic numbers; from John Scoles
  • Fix for rt.cpan.org Ticket # 38267: Inserts/Updates to BLOBs via synonyms fails; from John Scoles
  • Fix for rt.cpan.org Ticket # 39603 build problem and fix missing functions in oci.def; from Zoltán Sebestyén
  • Fix for rt.cpan.org Ticket # 39374: Makefile.PL: error when reducing echo messages from make; from Tippa
  • Fix for rt.cpan.org Ticket # 39232: binding large XMLTYPE fails on 64-bit Perl; from Jeff Klein
  • Fix for rt.cpan.org Ticket # 38749: Warning of a NULL column in an aggregate function; also added ora_oci_success_warn to display silent OCI warnings; from John Scoles
  • Patch for UTF8 check on execute_array from David Mansfield and a little by John Scoles
Want to talk with an expert? Schedule a call with our team to get the conversation started.

3 Comments. Leave new


Can you please confirm whether using DBI/DBD and connnecting “/as sysdba” work or does not work?

Am referring to one where you it can be invoke as similar to as if you are doing sqlplus “/as sysdba”.

Using DBI with username as password and SYSDBA works, but I tried some example where you do not need to specify username and password and ora_session_mode and ORA_SYSDBA but this does not seem to work.

Any confirmation on whether this is possible or not will be very much appreciated. Thanks in advance.


it might but I have never tried it myself.

I should be as simple as

use DBD::Oracle qw(:ora_session_modes);
$dbh = DBI->connect($dsn, "", "", {ora_session_mode => ORA_SYSDBA });

However Sysdba is usually disabled for anything but a ‘local’ user. Perhaps this is your problem.



Hi John,

Thanks for the update, tried that and a similar example from CPAN as below:

$dsn = “dbi:Oracle:”;
$ENV{ORACLE_SID} = “orcl”;
delete $ENV{TWO_TASK};

$dbh = DBI->connect($dsn, “”, “”, { ora_session_mode => ORA_SYSDBA });

Both gives core dump. Anyway, I’ll try on a separate Perl install, maybe I need an updated module. Can’t re-install the DBI module as am not the SA for the box.

I’ll post it in a Perl Beginner forum maybe someone can already confirm whether it work or does not.

FYI, am testing this local on the server where the Oracle DB is where sqlplus / as sysdba works.

Thanks again for the update.


Leave a Reply

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