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.

Reply via email to