oracle module for Qore
by David Nichols

Requires qore 0.8.6+ and oracle 9i+ headers and libraries to build in order to
support the maximum feature set (oracle instant client is also supporteed - see
BUILD AND INSTALL below)

The "oracle" DBI driver is stable and has been extensively tested.
*) transaction management is supported
*) automatic transparent character set conversion is supported when necessary
*) threading support
*) it's possible to call functions and procedures
*) the "optimal-numbers" option is set by default as of module version 2.2
*) supports a server timezone setting for correctly handling date/time value
   when communicating with a DB server in another time zone
*) it's possible to bind and retrieve *LOB values
*) named types, nested tables, collections are supported for binding by value
   and retrieving on output
*) the prepared statement API is support (SQLStatement class)

The driver's name is "oracle" and the Datasource type constant is SQL::DSOracle
ex: my Datasource $db(DSOracle, $user, $pass, $db);
ex: my Datasource $db(("type": "oracle", "user": $user, "pass": $pass, "db": $db));
ex: my Datasource $db("oracle:user/pass@db(al32utf8)%host:1521{optimal-numbers}");

Documentation in docs/oracle-module-doc.html

test/example script: test/db-test.q

Note that a highly modified form of ocilib (http://orclib.sourceforge.net) is included here to provide most of the named type and collection support to the module.  ocilib was written by Vincent Rogier and the code is included here under the terms of the LGPL 2.1 (same license as the rest of this module).


BUILD AND INSTALL
-----------------

If you have Oracle 9i or higher or have Oracle Instant Client with development
files included, you can build the oracle module.

Make sure your ORACLE_HOME is set before calling configure (otherwise use the
--with-oracle configure option).  

Header files and libraries must be available in the standard locations.

Oracle Instant Client installation: Make sure the ORACLE_INSTANT_CLIENT
environment variable is set before you run configure (or use the
--with-oracle-instant-client configure option).

Note that on HPUX I have not found a working instant client for 32-bit
PA-RISC, for some reason libnnz10 would not link.

Additionally on HP-UX 11.23 PA-RISC there have been stability and locking
problems with Oracle 10g client libraries; I have not been able to identify
the source.

These problems do not affect any other port and appear to be caused by bugs in
the Oracle client libraries somewhere.

So far I haven't been able to locate the problem.  Use the Oracle driver on
HP-UX PA-RISC with Oracle 10G libraries at your own risk.

Also note that with the instant client distributions (except for oracle 11g
instant client rpms), the libclntsh.sl1.10.* (libclntsh.so.10.*,
libclntsh.dylib.10.*) must be manually symlinked to libclintsh.sl (libclntsh.so,
libclntsh.dylib) in order to link with the included Oracle libraries.

configure options:
--with-oracle=<dir>                 : directory of Oracle installation ("oracle" module)
--with-oracle-instant-client=<dir>  : directory of Oracle Instant Client installation ("oracle" module)

configure
make
sudo make install

The configure script will find out where your qore module directory is found and set this for the install directory.


BUILD FROM SVN
--------------

reconf.sh
configure
make
sudo make install
