The Oracle::OCI module provides access to the entire Oracle OCI interface. Every feature Oracle offers can be accessed via OCI. Including Transparent Application Failover (TAF) and bulk loading.
The Oracle::OCI module bootstraps itself at build time. Automatically creating perl interfaces to all the OCI functions in your installed version of Oracle. It lets you write OCI code in perl: OCIHandleAlloc($env, my $dschp, OCI_HTYPE_DESCRIBE, 0, 0); OCIDescribeAny($dbh, $dbh, oci_buf_len($table), OCI_OTYPE_NAME, 1, OCI_PTYPE_TABLE, $dschp); OCIAttrGet($dschp, OCI_HTYPE_DESCRIBE, my $parmp, 0, OCI_ATTR_PARAM, $dbh, 'OCIParamPtr'); OCIAttrGet($parmp, OCI_DTYPE_PARAM, my $numcols, 0, OCI_ATTR_NUM_COLS, $dbh, 2); OCIAttrGet($parmp, OCI_DTYPE_PARAM, my $collst, 0, OCI_ATTR_LIST_COLUMNS, $dbh, 'OCIParamPtr'); That may seem a little low-level, but that's not the point. This is an enabling technology and what it enables is huge: access to the *entire* Oracle OCI interface. Soon there'd be modules built on top of Oracle::OCI that provide higher-level interfaces to specific areas of functionality, like LOBs, bulk loading, objects, advanced queuing, etc etc. Oracle::OCI also integrates very well with DBI and DBD::Oracle. You can use a $dbh or $sth wherever it would be reasonable to. I've not worked on it since 2001 as I very rarely use Oracle these days. The Oracle::OCI module had moved beyond proof-of-concept but still needs a little love before it's ready for prime-time. Interesting? Interested? Tim.