[libterralib] 01/02: Remove Oracle drivers too

Alastair McKinstry mckinstry at moszumanska.debian.org
Fri Aug 7 07:58:02 UTC 2015


This is an automated email from the git hooks/post-receive script.

mckinstry pushed a commit to tag debian/4.3.0+dfsg.2-1
in repository libterralib.

commit 433b594f8afe369da1ebb94d579cc417c2eb9689
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Wed Aug 5 10:21:19 2015 +0100

    Remove Oracle drivers too
---
 build/qt/Oracle/Oracle.pro                         |    40 -
 build/qt4/Oracle/Oracle.pro                        |    71 -
 src/terralib/drivers/Oracle/OCI/include/cdemodp0.h |   109 -
 src/terralib/drivers/Oracle/OCI/include/kusapi.h   |   775 --
 src/terralib/drivers/Oracle/OCI/include/kustags.h  |  1034 --
 src/terralib/drivers/Oracle/OCI/include/nzerror.h  |   644 --
 src/terralib/drivers/Oracle/OCI/include/nzt.h      |  2750 -----
 src/terralib/drivers/Oracle/OCI/include/occi.h     |    78 -
 src/terralib/drivers/Oracle/OCI/include/occiAQ.h   |   374 -
 .../drivers/Oracle/OCI/include/occiCommon.h        |   872 --
 .../drivers/Oracle/OCI/include/occiControl.h       |  2060 ----
 src/terralib/drivers/Oracle/OCI/include/occiData.h |   936 --
 .../drivers/Oracle/OCI/include/occiObjects.h       |   990 --
 src/terralib/drivers/Oracle/OCI/include/oci.h      |  2366 -----
 src/terralib/drivers/Oracle/OCI/include/oci1.h     |   183 -
 src/terralib/drivers/Oracle/OCI/include/oci8dp.h   |   315 -
 src/terralib/drivers/Oracle/OCI/include/ociap.h    | 10240 -------------------
 src/terralib/drivers/Oracle/OCI/include/ociapr.h   |   157 -
 src/terralib/drivers/Oracle/OCI/include/ocidef.h   |   888 --
 src/terralib/drivers/Oracle/OCI/include/ocidem.h   |   112 -
 src/terralib/drivers/Oracle/OCI/include/ocidfn.h   |   253 -
 src/terralib/drivers/Oracle/OCI/include/ociextp.h  |   281 -
 src/terralib/drivers/Oracle/OCI/include/ocikp.h    | 10223 ------------------
 src/terralib/drivers/Oracle/OCI/include/ocikpr.h   |   168 -
 src/terralib/drivers/Oracle/OCI/include/ocixad.h   |   316 -
 src/terralib/drivers/Oracle/OCI/include/ocixmldb.h |   139 -
 src/terralib/drivers/Oracle/OCI/include/odci.h     |   657 --
 src/terralib/drivers/Oracle/OCI/include/oratypes.h |   295 -
 src/terralib/drivers/Oracle/OCI/include/ori.h      |  2094 ----
 src/terralib/drivers/Oracle/OCI/include/orid.h     |   372 -
 src/terralib/drivers/Oracle/OCI/include/orl.h      |  3628 -------
 src/terralib/drivers/Oracle/OCI/include/oro.h      |   883 --
 src/terralib/drivers/Oracle/OCI/include/ort.h      |  2593 -----
 src/terralib/drivers/Oracle/TeOCIConnect.cpp       |   456 -
 src/terralib/drivers/Oracle/TeOCIConnect.h         |   136 -
 src/terralib/drivers/Oracle/TeOCICursor.cpp        |  1391 ---
 src/terralib/drivers/Oracle/TeOCICursor.h          |   300 -
 src/terralib/drivers/Oracle/TeOCIOracle.cpp        |  3589 -------
 src/terralib/drivers/Oracle/TeOCIOracle.h          |   352 -
 src/terralib/drivers/Oracle/TeOCISDO.cpp           |  3097 ------
 src/terralib/drivers/Oracle/TeOCISDO.h             |  1310 ---
 src/terralib/drivers/Oracle/TeOracleDefines.h      |    49 -
 src/terralib/drivers/Oracle/TeOracleSpatial.cpp    |  3588 -------
 src/terralib/drivers/Oracle/TeOracleSpatial.h      |   325 -
 src/terralib/drivers/Oracle/ociap.h                | 10093 ------------------
 45 files changed, 71582 deletions(-)

diff --git a/build/qt/Oracle/Oracle.pro b/build/qt/Oracle/Oracle.pro
deleted file mode 100644
index 84490cd..0000000
--- a/build/qt/Oracle/Oracle.pro
+++ /dev/null
@@ -1,40 +0,0 @@
-CONFIG += dll
-TARGET = te_oracle
-
-include (../config.pri)
-
-DEFINES += TLORACLE_AS_DLL
-
-LIBS += -lterralib 
-
-win32 {
-     !win32-g++:QMAKE_LIBDIR += $$TERRALIBPATH/dependencies/win32/Oracle/lib
-     else:LIBS += -L$$TERRALIBPATH/dependencies/win32/Oracle/lib
-
-     LIBS += -loci
-}
-
-unix:LIBS += -L$${TERRALIBPATH}/dependencies/linux/Oracle/lib \
-		-lclntsh -lnnz10
-
-INCLUDEPATH += $$TERRALIBPATH/src/terralib/drivers/Oracle  \
-	      $$TERRALIBPATH/src/terralib/drivers/Oracle/OCI/include
-
-HEADERS += $$TERRALIBPATH/src/terralib/drivers/Oracle/TeOracleSpatial.h \
-	$$TERRALIBPATH/src/terralib/drivers/Oracle/TeOCIOracle.h \
-	$$TERRALIBPATH/src/terralib/drivers/Oracle/TeOCIConnect.h \
-	$$TERRALIBPATH/src/terralib/drivers/Oracle/TeOCICursor.h \
-	$$TERRALIBPATH/src/terralib/drivers/Oracle/TeOCISDO.h \
-	$$TERRALIBPATH/src/terralib/drivers/Oracle/TeOracleDefines.h 
-
-SOURCES += $$TERRALIBPATH/src/terralib/drivers/Oracle/TeOracleSpatial.cpp \
-	$$TERRALIBPATH/src/terralib/drivers/Oracle/TeOCIOracle.cpp \
-	$$TERRALIBPATH/src/terralib/drivers/Oracle/TeOCIConnect.cpp \
-	$$TERRALIBPATH/src/terralib/drivers/Oracle/TeOCICursor.cpp \
-	$$TERRALIBPATH/src/terralib/drivers/Oracle/TeOCISDO.cpp 
-
-unix {
-	create_link.commands = cd $${TERRALIBPATH}/dependencies/linux/Oracle/lib/ && ln -sf libclntsh.so.10.1 libclntsh.so
-	QMAKE_EXTRA_UNIX_TARGETS += create_link
-	PRE_TARGETDEPS += create_link
-}
\ No newline at end of file
diff --git a/build/qt4/Oracle/Oracle.pro b/build/qt4/Oracle/Oracle.pro
deleted file mode 100644
index 202654e..0000000
--- a/build/qt4/Oracle/Oracle.pro
+++ /dev/null
@@ -1,71 +0,0 @@
-CONFIG += dll
-TARGET = te_oracle
-
-include (../config.pri)
-# Path definitions
-# ----------------------------------------------------------
-ORSRCPATH = $${TERRALIBPATH}/src/terralib/drivers/Oracle
-ORDEP = $${TERRALIBPATH}/dependencies
-win32:ORDEP = $${ORDEP}/win32
-unix:ORDEP = $${ORDEP}/linux
-ORDEP = $${ORDEP}/Oracle
-# ----------------------------------------------------------
-
-DEFINES += TLORACLE_AS_DLL
-
-LIBS += -lterralib 
-
-win32 {
-     !win32-g++:QMAKE_LIBDIR += $${ORDEP}/lib
-     else:LIBS += -L$${ORDEP}/lib
-
-     LIBS += -loci
-}
-
-unix:LIBS += -L$${ORDEP}/lib \
-		-lclntsh -lnnz10 -lociei
-
-INCLUDEPATH += $${ORSRCPATH}  \
-              $${ORSRCPATH}/OCI/include
-
-HEADERS += $${ORSRCPATH}/TeOracleSpatial.h \
-        $${ORSRCPATH}/TeOCIOracle.h \
-        $${ORSRCPATH}/TeOCIConnect.h \
-        $${ORSRCPATH}/TeOCICursor.h \
-        $${ORSRCPATH}/TeOCISDO.h \
-        $${ORSRCPATH}/TeOracleDefines.h
-
-SOURCES += $${ORSRCPATH}/TeOracleSpatial.cpp \
-        $${ORSRCPATH}/TeOCIOracle.cpp \
-        $${ORSRCPATH}/TeOCIConnect.cpp \
-        $${ORSRCPATH}/TeOCICursor.cpp \
-        $${ORSRCPATH}/TeOCISDO.cpp
-
-unix {
-    create_link.commands = cd $${ORDEP}/lib/ && ln -sf libclntsh.so.10.1 libclntsh.so
-    QMAKE_EXTRA_TARGETS += create_link
-    PRE_TARGETDEPS += create_link
-}
-
-include (../install_cfg.pri)
-
-CONFIG(copy_dir_files) {
-    ora.path = $${DEPLOY_DIR}/include/Oracle/OCI/include
-    ora.files = $${ORSRCPATH}/OCI/include/*.h
-
-    include.path = $${DEPLOY_DIR}/include/Oracle
-    include.files = $${ORSRCPATH}/*.h
-
-    INSTALLS += ora include
-}
-#Oracle dependencies install
-unix {
-    cop_dps.commands = cp -f $${ORDEP}/lib/* $${target.path}
-    QMAKE_EXTRA_TARGETS += cop_dps
-    POST_TARGETDEPS += cop_dps
-}
-win32 {
-    bin.files = $${ORDEP}/bin/*.dll
-    bin.path = $${DEPLOY_DIR}/bin
-    INSTALLS += bin
-}
diff --git a/src/terralib/drivers/Oracle/OCI/include/cdemodp0.h b/src/terralib/drivers/Oracle/OCI/include/cdemodp0.h
deleted file mode 100644
index 85afa1c..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/cdemodp0.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * $Header$
- */
-
-/* Copyright (c) 1998, 1999, Oracle Corporation.  All rights reserved.
-*/
-
-/*
-   NAME
-     cdemodp0.h - C Demo program for Direct Path api
-
-   DESCRIPTION
-     - Internal data structs, macros, & defines for cdemodp driver.
-
-   NOTES
-     Structures, macros, constants used only by cdemodp.c.
-
-   MODIFIED   (MM/DD/YY)
-   mjaeger     07/14/99 - bug 808870: OCCS: convert tabs, no long lines
-   abrumm      12/22/98 - lint
-   cmlim       11/17/98 - take away hardcoded MAX_RECLEN; now a session parm
-   cmlim       10/06/98 - correct typo
-   cmlim       10/02/98 - added externref
-   cmlim       09/16/98 - internal data structs, macros, & defines for cdemodp
-   cmlim       09/16/98 - Creation (abrumm 04/07/98)
-
-*/
-
-
-#ifndef cdemodp0_ORACLE
-# define cdemodp0_ORACLE
-
-# include <oratypes.h>
-# include <oci.h>
-
-/* partial field context structure, maintained by field setting function */
-struct pctx
-{
-  ub1   valid_pctx;                              /* partial context is valid */
-  ub4   pieceCnt_pctx;                            /* count of partial pieces */
-  ub4   row_pctx;                               /* which row in column array */
-  ub4   col_pctx;                            /* which column in column array */
-  ub4   len_pctx;                            /* length of this column so far */
-  int   fd_pctx;                 /* open file descriptor data is coming from */
-  char *fnm_pctx;                                /* filename for data source */
-};
-
-/* CLEAR_PCTX(struct pctx pctx)
- *   Macro to clear the partial context state
- */
-#define CLEAR_PCTX(pctx) \
-  ((pctx).valid_pctx = FALSE,   (pctx).pieceCnt_pctx = 0,    \
-   (pctx).row_pctx = UB4MAXVAL, (pctx).col_pctx = UB4MAXVAL, \
-   (pctx).len_pctx = 0,         (pctx).fd_pctx  = -1,        \
-   (pctx).fnm_pctx = (char *)0)
-
-#define SET_PCTX(pctx, rowoff, coloff, clen, fd, fnm) \
-  ((pctx).valid_pctx = TRUE,   (pctx).pieceCnt_pctx++,     \
-   (pctx).row_pctx = (rowoff), (pctx).col_pctx = (coloff), \
-   (pctx).len_pctx += (ub4)(clen), (pctx).fd_pctx = (fd),  \
-   (pctx).fnm_pctx = (fnm))
-
-#define LEN_PCTX(pctx) ((pctx).len_pctx)
-
-/* Does the input record correspond to the first piece of a row?
- * Note that a row which is not pieced is a first piece too.
- */
-#define FIRST_PIECE(pctx)       \
-( (pctx).valid_pctx == FALSE || \
- ((pctx).valid_pctx == TRUE  && ((pctx).pieceCnt_pctx == 1)))
-
-/* return values from field_set() */
-#define FIELD_SET_COMPLETE   0
-#define FIELD_SET_ERROR      1
-#define FIELD_SET_BUF        2
-#define FIELD_SET_PARTIAL    3
-
-/* return values from do_convert() */
-#define CONVERT_SUCCESS      0
-#define CONVERT_ERROR        1
-#define CONVERT_NEED_DATA    2
-#define CONVERT_CONTINUE     3
-
-/* return values from do_load() */
-#define LOAD_SUCCESS     0
-#define LOAD_ERROR       1
-#define LOAD_NEED_DATA   2
-#define LOAD_NO_DATA     3
-
-/* state values for simple_load() */
-#define RESET             1 /* initial state, reset data structures to empty */
-#define GET_RECORD        2                             /* get input records */
-#define FIELD_SET         3     /* assign fields of input records to columns */
-#define DO_CONVERT        4   /* convert column array input to stream format */
-#define DO_LOAD           5                        /* load the direct stream */
-#define END_OF_INPUT      6                            /* no more input data */
-
-/* Secondary buffer sizes for OUTOFLINE fields; no science here, just a WAG */
-#define SECONDARY_BUF_SIZE (1024*1024)           /* size of secondary buffer */
-#define SECONDARY_BUF_SLOP (8*1024)  /* get another field if this much avail */
-
-#define STATICF
-
-#ifndef externref
-# define externref extern
-#endif
-
-
-#endif                                              /* cdemodp0_ORACLE */
diff --git a/src/terralib/drivers/Oracle/OCI/include/kusapi.h b/src/terralib/drivers/Oracle/OCI/include/kusapi.h
deleted file mode 100644
index ba962b8..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/kusapi.h
+++ /dev/null
@@ -1,775 +0,0 @@
-/*
- * $Header$
- */
-
-/* Copyright (c) Oracle Corporation 1996, 1997. All Rights Reserved. */ 
- 
-/* NOTE:  See 'header_template.doc' in the 'doc' dve under the 'forms' 
-      directory for the header file template that includes instructions. 
-*/
- 
-/* 
-   NAME 
-     kusapi.h - Kernel Utility Statistics Application Programming Interface
-
-   DESCRIPTION 
-     Declarations of types and functions of the API used to retrieve 
-     statistics from the SGA
-
-   PUBLIC FUNCTION(S) 
-     kusdb_connect - connect to a database
-     kuscx_allocate - allocate continuation context
-     kuscx_free - free continuation context
-     kuscx_init - initialize continuation context
-     kusdb_get_info - retrieve database information
-     kusdb_get_memory - copy SGA contents into user-allocated memory
-     kusdb_disconnect - disconnect from database
-     kusdb_error_text - format message for last error
-     kustv_allocate_handle - allocate a TLV handle
-     kustv_dump - dump a TLV buffer
-     kustv_free_handle - free a TLV handle
-     kustv_get - get next entry in a TLV buffer
-     kustv_offset - return offset for current entry in TLV buffer
-     kussys_get_info - retrieve non-db-related info (noop for Oracle)
-     kussys_error_text - format message for last error (noop for Oracle)
-     kustvp1_put_one_byte - put TLV entry with 1 byte value into TLV buffer
-     kustvp2_put_two_bytes - put TLV entry with 2 byte value into TLV buffer
-     kustvp4_put_four_bytes - put TLV entry with 4 byte value into TLV buffer
-     kustv_put - put TLV entry into TLV buffer
-     kustvptg_put_tag - put TLV entry with empty value into TLV buffer
-     kustv_reinit_handle - reset offset for a TLV handle
-     kustv_buffer_state - return termination state for tlv buffer
-
-   NOTES
-     This interface is subject to change without notice
-
-   MODIFIED   (MM/DD/YY)
-   pabingha    03/14/97 - Add get_tagname argument
-   jstenois    11/05/96 - "Make kustv_dump() header CONST"
-   jstenois    11/01/96 - Use oratypes instead of sx.h
-   jstenois    08/15/96 - SGAAPI public include file
-   jstenois    08/15/96 - Creation
-
-*/
-
- 
-#ifndef KUSAPI
-# define KUSAPI
-
-# ifndef ORATYPES
-#  include <oratypes.h>
-# endif
-
-
-/*---------------------------------------------------------------------------
-                     PUBLIC TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-/* values for status code returned by API calls */
-
-typedef enum kusst
-  {
-
-    KUSSTOK =		1,	/* Success                              */
-    KUSSTEOB =		2,	/* Cursor at end of buffer.	        */
-    KUSSTNWR =		3,	/* Attempt to write to TLV when no      */
-				/*    length specified at init time	*/
-    KUSSTILN =		4,	/* Invalid length specified when	*/
-				/*    passing by value			*/
-    KUSSTTRNC =		5,	/* buffer was truncated			*/
-    KUSSTCONT =		6,	/* buffer is continued			*/
-    KUSSTALLC =		7,	/* unable to allocate memory		*/
-    KUSSTUNKC =		8,	/* unknown class tag specified		*/
-    KUSSTICH =		9,	/* Invalid context handle		*/
-    KUSSTIDH =		10,	/* Invalid database handle		*/
-    KUSSTITH =		11,	/* Invalid TLV handle			*/
-    KUSSTDIS =		12,	/* Stats collection disabled for database */
-    KUSSTERR =		13,	/* Unexpected error encountered		*/
-    KUSSTBINF =		14,	/* Input buffer contained a bad tag	*/
-    KUSSTBDKY =         15,     /* Bad index value for class tag	*/
-    KUSSTBFSML =	16,	/* Buffer is too small for data		*/
-    KUSSTIBE =		17,	/* Information buffer is empty          */
-    KUSSTDBDOWN =       18,     /* Database is unavaliable              */
-    KUSSTFILACC =       19,     /* File cannot be accessed              */
-    KUSSTINVDB =        20,     /* File is not a db root file (Rdb only)*/
-    KUSSTNODB =         21,     /* Db root file doesn't exist (Rdb only)*/
-    KUSSTBADVER =       22,     /* Db root file wrong version (Rdb only)*/
-    KUSSTCIU =          23,     /* Context is already in use            */
-    KUSSTDMPOP =        24,     /* Unable to open dump output file      */
-    KUSSTDMPCL =        25      /* Unable to close dump output file     */
-  } kusst;
-
-
-/* values returned by kustvstate */ 
-
-typedef enum kustvs
-  {
-    KUSTVS_CONT =	1,	/* tlv buffer terminated with KUSSTCONT	*/
-    KUSTVS_END =	2,	/* tlv buffer terminated with KUSSTBEND	*/
-    KUSTVS_TRUNC =	3,	/* tlv buffer terminated with KUSSTTRNC	*/
-    KUSTVS_UNK =	4	/* handle specified has not been used	*/
-                                /* to read or write a termination tag   */
-  } kustvs;
-
-
-/* Type Definitions for handles */
-
-typedef dvoid *kusdb_handle;	/* handle for connected database */
-typedef dvoid *kuscx_handle;	/* handle for continuation context */
-typedef dvoid *kustv_handle;	/* handle for TLV context */
-
-/* Data structure for use by kusdb_get_memory */
-
-typedef struct kusmem
-  {
-    ub1 *sga_address_kusmem;    /* SGA memory address */
-    ub4 length_kusmem;          /* Number of bytes to copy */
-    ub1 *dest_address_kusmem;   /* User-allocated destination for SGA data */
-  } kusmem;
-
-
-/*---------------------------------------------------------------------------
-                           PUBLIC FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-/* ---------------------------- kuscx_allocate ----------------------------- */
-/*
-  NAME
-    kuscx_allocate -  allocate continuation context
-  DESCRIPTION
-    Allocate space to track information about continuation context for a 
-    kusdb_get_info call.
-  PARAMETERS
-    context_handle - handle for the continuation context (in/out)
-  RETURN VALUE
-    status of call
-  NOTES
-    kuscx_init can be used to reinitilize a context that has been allocated 
-    and is no longer used for a TLV buffer
-*/
-
-kusst kuscx_allocate (/*_ kuscx_handle *context_handle _*/);
-
-
-
-
-/* ------------------------------ kuscx_free_handle ------------------------ */
-/*
-  NAME
-    kuscx_free_handle -  free continuation context
-  DESCRIPTION
-    free space used to track information about continuation context for a 
-    kusdb_get_info call.
-  PARAMETERS
-    context_handle - handle for the continuation context (in/out)
-  RETURN VALUE
-    status of call
-  NOTES
-    kuscx_init can be used to reinitilize a context that has been allocated
-    and is no longer used for a TLV buffer
-*/
-
-kusst kuscx_free_handle (/*_ kuscx_handle *context_handle _*/);
-
-
-
-
-/* ------------------------------ kuscx_init ------------------------------- */
-/*
-  NAME
-    kuscx_init -  initialize continuation context
-  DESCRIPTION
-    Reinitialize a context handle that has been previously allocated and used.
-  PARAMETERS
-    context_handle - handle for the continuation context (in/out)
-  RETURN VALUE
-    status of call
-  NOTES
-    kuscx_init is the semantic equivalent of freeing a context handle and then
-    allocating a new one.
-*/
-
-kusst kuscx_init (/*_ kuscx_handle *context_handle _*/);
-
-
-
-/* ----------------------------- kusdb_allocate ---------------------------- */
-/*
-  NAME
-    kusdb_allocate - allocate a database handle
-  DESCRIPTION
-    allocate resources for a database handle
-  PARAMETERS
-    db_handle - handle for the database context (in/out)
-  RETURN VALUE
-    kusst - status of attempt to allocate
-*/
-
-kusst kusdb_allocate (/*_ kusdb_handle *db_handle _*/);
-
-
-
-
-/* ----------------------------- kusdb_connect ----------------------------- */
-/*
-  NAME
-    kusdb_connect - connect to a database
-  DESCRIPTION
-    Connects to a database so that statistics for that database can be
-    retrieved.
-  PARAMETERS
-    db_handle - handle for the database context (in/out)
-    database_name_length - number of bytes in database_name parameter
-    database name - name of database
-    security_info_length - number of bytes in security_info parameter
-    security_info - security information used to attach to database
-  RETURN VALUE
-    status of attempt to connect
-  NOTES
-    If the status is not successful, call kusdb_error_text to get more 
-    information about the failure.
-    Refer to the documentation for the format of information in the
-    database_name and security_info parameters.
-*/
-
-kusst kusdb_connect (/*_
-	kusdb_handle db_handle,
-	ub4 database_name_length,
-	char *database_name,
-	ub4 security_info_length,
-	char *security_info
-	_*/);
-
-
-
-
-/* ---------------------------- kusdb_disconnect --------------------------- */
-/*
-  NAME
-    kusdb_disconnect - disconnect from a database
-  DESCRIPTION
-    Disconnect from the current database
-  PARAMETERS
-    db_handle - handle for the database (in/out)
-  RETURN VALUE
-    status of call
-  NOTES
-*/
-
-kusst kusdb_disconnect (/*_ kusdb_handle db_handle _*/);
-
-
-
-
-/* ------------------------------- kusdb_free ------------------------------ */
-/*
-  NAME
-    kusdb_free - free a database handle
-  DESCRIPTION
-    free resources for a database handle
-  PARAMETERS
-    db_handle - handle for the database context (in/out)
-  RETURN VALUE
-    kusst - status of attempt to free the handle
-*/
-
-kusst kusdb_free (/*_ kusdb_handle *db_handle _*/);
-
-
-
-
-/* ----------------------------- kusdb_get_info ---------------------------- */
-/*
-  NAME
-    kusdb_get_info - retrieve statistics for a database
-  DESCRIPTION
-    Retrieve requested statistics for the current database
-  PARAMETERS
-    db_handle - handle for the database (in)
-    context_handle - handle for the continuation context (in/out)
-    info_buf - TLV buffer indicating data to be returned (in)
-    info_buf_len - number of bytes in info_buffer (in)
-    result_buf - allocated TLV buffer to hold data returned (in/out)
-    result_buf_len - number of bytes in result_buf (in/out)
-    buffer_termination_status - indicates how buffer was terminated (normally,
-      truncated, or continued) (out)
-  RETURN VALUE
-    status of call
-  NOTES
-    If the status is not successful, call kusdb_error_text to get more 
-    information about the failure.
-    Refer to documentation for information on the format of the information
-    buffer and the result buffer
-*/
-
-kusst kusdb_get_info (/*_
-	kusdb_handle db_handle,
-	kuscx_handle ctx_handle,
-	ub1 *info_buffer,
-	ub4 info_buffer_length,
-	ub1 *result_buffer,
-	ub4 *result_buffer_length,
-	kustvs *buffer_termination_status
-	_*/);
-
-
-
-/* ----------------------------- kusdb_get_memory -------------------------- */
-/*
-  NAME
-    kusdb_get_memory - copy SGA contents into user-allocated memory
-  DESCRIPTION
-    Copy SGA memory into user-allocated memory regions. User provides
-    an array of kusmem structures. Each kusmem structure in the array
-    describes a distinct copy to be done by this routine.
-  PARAMETERS
-    db_handle - handle for the database (in)
-    mem_array_length - number of elements in mem_array (in)
-    mem_array - address of an array of kusmem structures (in/out)
-  RETURN VALUE
-    status of call:
-        KUSSTOK - call succeeded, all requested data copied
-        KUSSTIDH - invalid database handle
-        KUSSTDBDOWN - database is down
-        KUSSTERR - unexpected error
-  NOTES
-     User should prepare each kusmem structure in array by filling in
-     values for sga_address_kusmem, length_kusmem and dest_address_kusmem
-     prior to making this call. 
-
-     User is reponsible for allocating and deallocating the memory used
-     by mem_array and each region that a dest_address_kusmem points to.
-*/
-
-kusst kusdb_get_memory (/*_
-	kusdb_handle db_handle,
-        ub4 mem_array_length,
-        kusmem *mem_array
-	_*/);
-
-
-
-
-/* ---------------------------- kusdb_error_text --------------------------- */
-/*
-  NAME
-    kusdb_error_text - error text
-  DESCRIPTION
-    Display information about status of last kusdb call
-  PARAMETERS
-    db_ctx - context whose errors are to be returned (in)
-    text_buf - buffer to hold error message (in/out)
-    text_buf_len - number of bytes in text buffer (in)
-    text_len_out - number of bytes written into text_buf
-  RETURN VALUE
-    status of call
-  NOTES
-*/
-
-kusst kusdb_error_text (/*_ kusdb_handle db_ctx, char *text_buf,
-			  ub4 text_buf_len, ub4 *text_len_out _*/);
-
-
-
-
-/* ------------------------ kustv_allocate_handle -------------------------- */
-/*
-  NAME
-    kustv_allocate_handle - allocate a handle for a TLV buffer
-  DESCRIPTION
-    allocates and initializes information for a TLV handle
-  PARAMETERS
-    tlv_handle - handle of the TLV buffer (in/out)
-    tlv_buffer - address of the TLV buffer for this handle (in)
-    buf_size - number of bytes in tlv_buffer (in)
-  RETURN VALUE
-    KUSSTALL	Unable to allocate memory
-  NOTES
-    kustv_reinit can be used to reinitialize a TLV handle that is no longer
-    needed.
-*/
-
-kusst kustv_allocate_handle (/*_
-	kustv_handle *tlv_handle,
-	ub1 *tlv_buffer,
-	ub4 buf_size
-	_*/);
-
-
-#ifndef _WINDOWS
-
-
-/* ------------------------------- kustv_dump -------------------------------*/
-/*
-  NAME
-    kustv_dump - dump tlv buffer
-  DESCRIPTION
-    Formats the content of a TLV buffer into the file specified by the caller
-  PARAMETERS
-    tlv_handle - handle of the TLV buffer to be dumped (in)
-    header - ASCIZ string to be displayed before dumping the buffer (in)
-    data_flg - flag to indicate if the contents of the value fueld in the TLV
-	should be displayed (in)
-    append_flg - flag to indicate if an existing instance of the output
-        file should be appended to (or replaced)
-    get_tagname - routine to get text associated with tags
-    directory - ASCIZ string containing a directory specification for the
-        output file (if absent, current default directory is used)
-    file_name - ASCIZ string containing a file name for the output file.
-        If absent, stderr is used and append_flg and directory are ignored.
-        If specified without an extension, the Oracle extension for an output
-        file on the given platform is used.
-  RETURN VALUE
-    KUSSTOK	Success
-    KUSSTITH	invalid tlv handle
-    KUSSTDMPOP  can't open dump file
-    KUSSTDMPCL  can't close dump file
-  NOTES
-*/
-
-kusst kustv_dump (/*_
-	kustv_handle tlv_handle,
-	CONST char *header,
-	int data_flg,
-        int append_flg,
-        CONST char *(*get_tagname)(ub2),
-        CONST char *directory,
-        CONST char *file_name
-	_*/);
-
-#endif
-
-
-/* ------------------------- kustv_free_handle ----------------------------- */
-/*
-  NAME
-    kustv_free_handle - free a handle for a TLV buffer
-  DESCRIPTION
-    Free a TLV handle that has already been created
-  PARAMETERS
-    tlv_handle - handle of the TLV buffer (in/out)
-  RETURN VALUE
-    status of call
-  NOTES
-    kustv_reinit_handle can be used to reinitialize a handle that is no 
-    longer needed.
-*/
-
-kusst kustv_free_handle (/*_ kustv_handle *tlv_handle _*/);
-
-/* ----------------------------- kussys_get_info --------------------------- */
-/*
-  NAME
-    kussys_get_info - retrieve non database specific data
-  DESCRIPTION
-    Retrieve non database specific information
-  PARAMETERS
-    context_handle - handle for the continuation context (in/out)
-    info_buf - TLV buffer indicating data to be returned (in)
-    info_buf_len - number of bytes in info_buffer (in)
-    result_buf - allocated TLV buffer to hold data returned (in/out)
-    result_buf_len - number of bytes in result_buf (in/out)
-    buffer_termination_status - indicates how buffer was terminated (normally,
-      truncated, or continued) (out)
-  RETURN VALUE
-    status of call
-  NOTES
-    This function is a noop for Oracle. It is included for compatability
-    with Rdb only.
-*/
-
-kusst kussys_get_info (/*_
-	kuscx_handle ctx_handle,
-	ub1 *info_buffer,
-	ub4 info_buffer_length,
-	ub1 *result_buffer,
-	ub4 *result_buffer_length,
-	kustvs *buffer_termination_status
-	_*/);
-
-
-
-
-
-/* ---------------------------- kussys_error_text -------------------------- */
-/*
-  NAME
-    kussys_error_text - error text
-  DESCRIPTION
-    Display information about status of last kustv call
-  PARAMETERS
-    text_buf - buffer to hold error message (in/out)
-    text_buf_len - number of bytes in text buffer (in)
-    text_len_out - number of bytes written into text_buf
-  RETURN VALUE
-    status of call
-  NOTES
-    This function is a noop for Oracle. It is included for compatability
-    with Rdb only.
-*/
-
-kusst kussys_error_text (/*_ char *text_buf,
-			  ub4 text_buf_len, ub4 *text_len_out _*/);
-
-
-
-
-/* ------------------------------ kustv_get -------------------------------- */
-/*
-  NAME
-    kustv_get - get next entry in tlv buffer
-  DESCRIPTION
-    Retrieves information about next entry in the tlv buffer and advances
-    pointer into the TLV buffer to the following entry.
-  PARAMETERS
-    tlv_handle - handle of the TLV buffer (in)
-    tag - tag for the next entry (out)
-    length - number of bytes in the value for the TLV entry (out)
-    value - pointer to value field for the TLV entry (out)
-  RETURN VALUE
-    KUSSTOK	Success
-    KUSSTITH	Invalid TLV handle
-  NOTES
-*/
-
-kusst kustv_get (/*_
-	kustv_handle tlv_handle,
-	ub2 *tag,
-	ub2 *length,
-	ub1 **value
-	_*/);
-
-
-
-
-
-/* ------------------------ kustv_reinit_handle ---------------------------- */
-/*
-  NAME
-    kustv_reinit_handle - reinitialize a TLV handle
-  DESCRIPTION
-    Reimitializes a TLV handle so that it can be used to read or write a new
-    TLV buffer.
-  PARAMETERS
-    tlv_handle - handle of the TLV buffer (in/out)
-    buffer - address of the TLV buffer
-    buffer_size - number of bytes in the TLV buffer
-  RETURN VALUE
-    KUSSTOK	Success
-    KUSSTITH	Invalid TLV handle
-  NOTES
-*/
-
-kusst kustv_reinit_handle (/*_ 
-	kustv_handle tlv_handle,
-	ub1 *buffer,
-	ub4 buffer_length
-	_*/);
-
-
-
-
-
-/* --------------------------- kustv_length -------------------------------- */
-
-/*
-  NAME
-    kustv_length - return length of a TLV buffer
-  DESCRIPTION
-    return the length of a TLV buffer associated with a TLV handle
-  PARAMETERS
-    tlv_handle - handle of the TLV buffer (in)
-    buffer_length - number of bytes in the buffer (out)
-  RETURN VALUE
-    KUSSTOK	Success
-    KUSSTITL	Invalid TLV handle
-  NOTES
-*/
-
-kusst kustv_length (/*_ 
-	kustv_handle tlv_handle,
-	ub4 buffer_length
-	_*/);
-
-
-
-
-/* ---------------------------- kustv_offset ------------------------------- */
-
-/*
-  NAME
-    kustv_offset - return offset of a TLV buffer
-  DESCRIPTION
-    return the current offset of a TLV buffer associated with a TLV handle
-  PARAMETERS
-    tlv_handle - handle of the TLV buffer (in)
-    offset - current offset for TLV buffer (out)
-  RETURN VALUE
-    KUSSTOK - success
-    KUSSTITH - invalid TLV handle
-  NOTES
-*/
-
-kusst kustv_offset (/*_ 
-	kustv_handle tlv_handle, 
-	ub4 *offset 
-	_*/);
-
-
-
-
-/* ------------------------ kustvp1_put_one_byte --------------------------- */
-
-/*
-  NAME
-    kustvp1_put_one_byte - Insert a TLV entry with a value field of 1 byte
-  DESCRIPTION
-    Adds a new TLV entry to the end of the current TLV buffer.  This entry
-    contains 1 byte.
-  PARAMETERS
-    tlv_handle - handle of the TLV buffer (in/out)
-    tag - tag for the new entry (in)
-    value - value for the new entry (in)
-  RETURN VALUE
-    status of the operation
-  NOTES
-*/
-
-kusst kustvp1_put_one_byte (/*_
-	kustv_handle tlv_handle,
-	ub2 tag,
-	ub1 value
-	_*/);
-
-
-
-
-/* ------------------------- kustvp2_put_two_bytes ------------------------- */
-
-/*
-  NAME
-    kustvp2_put_two_bytes - Insert a TLV entry with a value field of 2 byte
-  DESCRIPTION
-    Adds a new TLV entry to the end of the current TLV buffer.  This entry
-    contains 2 bytes.
-  PARAMETERS
-    tlv_handle - handle of the TLV buffer (in/out)
-    tag - tag for the new entry (in)
-    value - value for the new entry (in)
-  RETURN VALUE
-    status of the operation
-  NOTES
-*/
-
-kusst kustvp2_put_two_bytes (/*_
-	kustv_handle tlv_handle,
-	ub2 tag,
-	ub2 value
-	_*/);
-
-
-
-
-/* ----------------------- kustvp4_put_four_bytes -------------------------- */
-
-/*
-  NAME
-    kustvp4_put_four_bytes - Insert a TLV entry with a value field of 4 byte
-  DESCRIPTION
-    Adds a new TLV entry to the end of the current TLV buffer.  This entry
-    contains 4 bytes.
-  PARAMETERS
-    tlv_handle - handle of the TLV buffer (in/out)
-    tag - tag for the new entry (in)
-    value - value for the new entry (in)
-  RETURN VALUE
-    status of the operation
-  NOTES
-*/
-
-kusst kustvp4_put_four_bytes (/*_
-	kustv_handle tlv_handle,
-	ub2 tag,
-	ub4 value
-	_*/);
-
-
-
-
-/* ----------------------------- kustv_put --------------------------------- */
-
-/*
-  NAME
-    kustv_put - Insert a TLV entry
-  DESCRIPTION
-    Adds a new TLV entry to the end of the current TLV buffer.
-  PARAMETERS
-    tlv_handle - handle of the TLV buffer (in/out)
-    tag - tag for the new entry (in)
-    length - number of bytes in the new entry (in)
-    value - value for the new entry (in)
-  RETURN VALUE
-    status of the operation
-  NOTES
-*/
-
-kusst kustv_put (/*_
-	kustv_handle tlv_handle,
-	ub2 tag,
-	ub2 length,
-	dvoid *value
-	_*/);
-
-
-
-
-/* -------------------------- kustvptg_put_tag ----------------------------- */
-
-/*
-  NAME
-    kustvptg_put_tag - Insert a TLV entry with no value field
-  DESCRIPTION
-    Adds a new TLV entry to the end of the current TLV buffer.  the entry
-    contains a 0-length value field.
-  PARAMETERS
-    tlv_handle - handle of the TLV buffer (in/out)
-    tag - tag for the new entry (in)
-  RETURN VALUE
-    status of the operation
-  NOTES
-*/
-
-kusst kustvptg_put_tag (/*_
-	kustv_handle tlv_handle,
-	ub2 tag
-	_*/);
-
-
-
-
-
-/* -------------------------- kustv_buffer_state --------------------------- */
-
-/*
-  NAME
-    kustv_buffer_state - return termination state of TLV buffer
-  DESCRIPTION
-    Returns informationon how a TLV buffer was terminated.  This call returns
-    useful information only if a TLV handle was used to read or write the
-    termination tag.  The termination information is preserved 
-  PARAMETERS
-    tlv_handle - handle of the TLV buffer (in)
-    state - termination state for the TLV (out)
-  RETURN VALUE
-    status of the operation
-  NOTES
-*/
-
-kusst kustv_buffer_state (/*_
-	kustv_handle tlv_handle,
-	kustvs *state
-	_*/);
-
-
-#endif                                              /* kusapi */
diff --git a/src/terralib/drivers/Oracle/OCI/include/kustags.h b/src/terralib/drivers/Oracle/OCI/include/kustags.h
deleted file mode 100644
index aad8fd1..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/kustags.h
+++ /dev/null
@@ -1,1034 +0,0 @@
-/* copyright (c) Oracle Corporation 1995.  All Rights Reserved. */
-
-/*
-  NAME
-    kustags.h - definition of tags for statistics API
-  DESCRIPTION
-    Definitions of tags used for Oracle's statistics API.
-  PUBLIC FUNCTIONS
-    none
-  PRIVATE FUNCTIONS
-    none
-  NOTES
-    This file is a generated and should NOT BE EDITTED
-*/
-
-#ifndef ORATYPES
-#include <oratypes.h>
-#endif
-
-#ifndef KUSTAGS
-#define KUSTAGS
-
-/* DISABLE check_macro_naming */
-/* Lint exception approved 9/24/96 by BCCHANG and JMULLER */
-
-/* PUBLIC TYPES AND CONSTANTS */
-#define RMUST_T_ACCESS_MODE 15
-#define RMUST_T_ACTIVE_FLG 16
-#define RMUST_T_AIJ_COMMIT_FLG 17
-#define RMUST_T_AIJ_ENABLED_FLG 18
-#define RMUST_T_AIJ_STATUS 19
-#define RMUST_T_ALARM_ENABLED_FLG 20
-#define RMUST_T_ALLOCATION 21
-#define RMUST_T_ALS_MODE_FLG 22
-#define RMUST_T_ARPMS 23
-#define RMUST_T_ASCII_DEADLOCK 24
-#define RMUST_T_ASCII_STALL 25
-#define RMUST_T_ASCII_TIMEOUT 26
-#define RMUST_T_AUDIT_ENABLED_FLG 27
-#define RMUST_T_AUDIT_FIRST_FLG 28
-#define RMUST_T_AUDIT_FLUSH_FLG 29
-#define RMUST_T_AUTO_BKUP_FLG 30
-#define RMUST_T_FILID_SLOTNUM 31
-#define RMUST_T_BACKUP_DATE_ADT 32
-#define RMUST_T_BACKUP_DATE_FDT 33
-#define RMUST_T_BACKUP_DATE_TDT 34
-#define RMUST_T_BIOCNT 35
-#define RMUST_T_BKUP_ACTIVE_FLG 36
-#define RMUST_T_BKUP_VNO 37
-#define RMUST_T_CACHE_FILENAME 38
-#define RMUST_T_CALC_PNO 39
-#define RMUST_T_CKPT_BLOCKS 40
-#define RMUST_T_CKPT_TIME 41
-#define RMUST_T_CORRUPT_FLG 42
-#define RMUST_T_CPUTIM_RT 43
-#define RMUST_T_CREATE_DATE_ADT 44
-#define RMUST_T_CREATE_DATE_FDT 45
-#define RMUST_T_CREATE_DATE_TDT 46
-#define RMUST_T_CUR_ACTIVE_AIJ 47
-#define RMUST_T_CUR_AIJ_FILENAME 48
-#define RMUST_T_CUR_BKUP_FILENAME 49
-#define RMUST_T_CUR_BKUP_VNO 50
-#define RMUST_T_CUR_RCVR_VNO 51
-#define RMUST_T_DATA_CMIT_FLG 52
-#define RMUST_T_DBID 53
-#define RMUST_T_DBR_ACTIVITY 54
-#define RMUST_T_DBR_BUF_CNT 55
-#define RMUST_T_LSS_LAG_FDT 56
-#define RMUST_T_DB_BKUP_VNO 57
-#define RMUST_T_DEADLOCK_SEQ 58
-#define RMUST_T_DEADLOCK_SINCE_ADT 59
-#define RMUST_T_DEADLOCK_SINCE_TT 60
-#define RMUST_T_DEADLOCK_SINCE_RT 61
-#define RMUST_T_DEFERRED_SNAP_FLG 62
-#define RMUST_T_DEF_AIJ_FILENAME 63
-#define RMUST_T_DEF_ALLOCATION 64
-#define RMUST_T_DEF_BKUP_FILENAME 65
-#define RMUST_T_DEF_BUF_CNT 66
-#define RMUST_T_DEF_EXTENSION 67
-#define RMUST_T_DIOCNT 68
-#define RMUST_T_ENQCNT 69
-#define RMUST_T_EXTENSION 70
-#define RMUST_T_EXT_COUNT 71
-#define RMUST_T_EXT_ENABLED_FLG 72
-#define RMUST_T_EXT_PERCENT 73
-#define RMUST_T_FAST_COMMIT_FLG 74
-#define RMUST_T_FILENAME 75
-#define RMUST_T_FULL_BACKUP_TSN 76
-#define RMUST_T_GB_CNT 77
-#define RMUST_T_GB_ENABLED_FLG 78
-#define RMUST_T_HARD_DATA_LOSS_FLG 79
-#define RMUST_T_IMAGENAME 80
-#define RMUST_T_INCONSISTENT_FLG 81
-#define RMUST_T_INC_RES_DATE_ADT 82
-#define RMUST_T_INC_RES_DATE_FDT 83
-#define RMUST_T_INC_RES_DATE_TDT 84
-#define RMUST_T_INIT_ACTIVE_FLG 85
-#define RMUST_T_IS_STALLED 86
-#define RMUST_T_JOURNAL_CNT 87
-#define RMUST_T_JOURNAL_NAME 88
-#define RMUST_T_JOURNAL_STATUS 89
-#define RMUST_T_LAST_BKUP_VNO 90
-#define RMUST_T_LCKOPT_ENABLED_FLG 91
-#define RMUST_T_LINKAGE_DBID 92
-#define RMUST_T_LKID 93
-#define RMUST_T_LOCK_TIMEOUT 94
-#define RMUST_T_MAX_EXT_PAGCNT 95
-#define RMUST_T_MAX_GB_PER_USER 96
-#define RMUST_T_MAX_NODE_CNT 97
-#define RMUST_T_MAX_PNO 98
-#define RMUST_T_MAX_USER_CNT 99
-#define RMUST_T_MIN_EXT_PAGCNT 100
-#define RMUST_T_MIXED_FMT_FLG 101
-#define RMUST_T_MODIFIED_FLG 102
-#define RMUST_T_NEW_VERSION_FLG 104
-#define RMUST_T_NUMBIO 105
-#define RMUST_T_NUMDIO 106
-#define RMUST_T_OPEN_MODE_FLG 107
-#define RMUST_T_OPER_CLASS 108
-#define RMUST_T_OVERWRITE_FLG 109
-#define RMUST_T_OVERWRITTEN_FLG 110
-#define RMUST_T_PAG_BLKCNT 111
-#define RMUST_T_PGFCNT 112
-#define RMUST_T_PGFLTS 113
-#define RMUST_T_PID 114
-#define RMUST_T_PROCNAME 115
-#define RMUST_T_PSTATE 116
-#define RMUST_T_RESTORED_FLG 117
-#define RMUST_T_RTPMS 118
-#define RMUST_T_SFDB_FLG 119
-#define RMUST_T_SHUTDOWN_TIME 120
-#define RMUST_T_SNAPSHOT_FLG 121
-#define RMUST_T_SNAPS_ALLOWED_FLG 122
-#define RMUST_T_SNAPS_ENABLED_FLG 123
-#define RMUST_T_SOFT_DATA_LOSS_FLG 124
-#define RMUST_T_SPAMS_ENABLED_FLG 125
-#define RMUST_T_SPAMS_FLG 126
-#define RMUST_T_STALL_SINCE_ADT 127
-#define RMUST_T_STALL_SINCE_TT 128
-#define RMUST_T_STALL_SINCE_RT 129
-#define RMUST_T_STALL_THRESHOLD_RT 130
-#define RMUST_T_STAREA_NAME 131
-#define RMUST_T_STATS_ENABLED_FLG 132
-#define RMUST_T_STID 133
-#define RMUST_T_TIMEOUT_SEQ 134
-#define RMUST_T_TIMEOUT_SINCE_ADT 135
-#define RMUST_T_TIMEOUT_SINCE_TT 136
-#define RMUST_T_TIMEOUT_SINCE_RT 137
-#define RMUST_T_TSN_INTERVAL 138
-#define RMUST_T_USERNAME 139
-#define RMUST_T_VBN 140
-#define RMUST_T_VMSIZE 141
-#define RMUST_T_WSSIZE 142
-#define RMUST_T_THRESHOLD 143
-#define RMUST_T_BUF_BLOCK_CNT 144
-#define RMUST_T_FILID_CNT 145
-#define RMUST_T_STALL_INDEX 146
-#define RMUST_T_AIJ_LEOF 147
-#define RMUST_T_AIJ_PEOF 148
-#define RMUST_T_ALS_ACTIVE 149
-#define RMUST_T_CACHE_STATUS 150
-#define RMUST_T_AIJ_SHUTDOWN 151
-#define RMUST_T_RELATION_NAME 152
-#define RMUST_T_ISA_VIEW 153
-#define RMUST_T_FIELD_NAMES 154
-#define RMUST_T_INDEX_NAME 155
-#define RMUST_T_INDEX_UNIQUE 156
-#define RMUST_T_INDEX_TYPE 157
-#define RMUST_T_LSS_AIJ_VNO 158
-#define RMUST_T_LSS_AIJ_VBN 159
-#define RMUST_T_DELTA_HSEC 160
-#define RMUST_T_PLATFORM 161
-#define RMUST_T_LSS_STATE 162
-#define RMUST_T_AIJ_AUTO_SYNC 163
-#define RMUST_T_AIJ_DATA_SYNC 164
-#define RMUST_T_AIJ_VNO 165
-#define RMUST_T_AIJ_SRV_NAME 166
-#define RMUST_T_STBY_RT_FILNAM 167
-#define RMUST_T_AIJ_CUR_MSN 168
-#define RMUST_T_AIJ_STALLED_MSN 169
-#define RMUST_T_LCS_ACTIVE 170
-#define RMUST_T_LRS_STATE 171
-#define RMUST_T_LRS_ACTIVE 172
-#define RMUST_T_LSS_ACTIVE 173
-#define RMUST_T_GOVERNOR_ENABLED 174
-#define RMUST_T_LSS_REF_COUNT 175
-#define RMUST_T_AIJFB_INDEX 176
-#define RMUST_T_PROC_INDEX 177
-#define RMUST_T_DBR_INDEX 178
-#define RMUST_T_SAMPLE_INTERVAL 179
-#define RMUST_T_DBMSROOT 180
-#define RMUST_T_MAJ_VER 181
-#define RMUST_T_MIN_VER 182
-#define RMUST_T_CHECKSUM 183
-#define RMUST_T_VERSION_ADT 184
-#define RMUST_T_VERSION_FDT 185
-#define RMUST_T_VERSION_TDT 186
-#define RMUST_T_LADB_FLG 187
-#define RMUST_T_RUJ_CORRUPT_FLG 188
-#define RMUST_T_ROOT_CORRUPT_FLG 189
-#define RMUST_T_FIB_ENABLED_FLG 190
-#define RMUST_T_APF_ENABLED_FLG 191
-#define RMUST_T_ABW_ENABLED_FLG 192
-#define RMUST_T_PLT_ENABLED_FLG 193
-#define RMUST_T_OPT_ENABLED_FLG 194
-#define RMUST_T_STBY_READ_ONLY_FLG 195
-#define RMUST_T_DAPF_ENABLED_FLG 196
-#define RMUST_T_RCVR_QUIET_POINT_FLG 197
-#define RMUST_T_SSB_ENABLED_FLG 198
-#define RMUST_T_DB_MODIFIED_FLG 199
-#define RMUST_T_ACTIVE_VBN 200
-#define RMUST_T_AIJDB_VBN 201
-#define RMUST_T_AIJFB_VBN 202
-#define RMUST_T_CLIENT_VBN 203
-#define RMUST_T_COSI_VBN 204
-#define RMUST_T_CPT_VBN 205
-#define RMUST_T_FILID_VBN 206
-#define RMUST_T_MEMBIT_VBN 207
-#define RMUST_T_RTUPB_VBN 208
-#define RMUST_T_RUJBLK_VBN 209
-#define RMUST_T_SEQBLK_VBN 210
-#define RMUST_T_TSNBLK_VBN 211
-#define RMUST_T_AIJFB_CNT 212
-#define RMUST_T_RTUPB_BLKCNT 213
-#define RMUST_T_TSNBLK_CNT 214
-#define RMUST_T_ALG_COUNT 215
-#define RMUST_T_ALG_FACTORS 216
-#define RMUST_T_AUDIT_FLAGS 217
-#define RMUST_T_ALARM_NAME 218
-#define RMUST_T_MIN_PAG_BLKCNT 219
-#define RMUST_T_MAX_PAG_BLKCNT 220
-#define RMUST_T_MAX_PIB_COUNT 221
-#define RMUST_T_SEQBLK_CNT 222
-#define RMUST_T_APF_DEPTH 223
-#define RMUST_T_ABW_CLEAN_BUF_CNT 224
-#define RMUST_T_ABW_BATCH_MAX 225
-#define RMUST_T_CLIENT_BLKCNT 226
-#define RMUST_T_COSI_BLKCNT 227
-#define RMUST_T_RMU_CLIENT_VBN 228
-#define RMUST_T_RMU_CLIENT_BLKCNT 229
-#define RMUST_T_CLOSE_MODE 230
-#define RMUST_T_CLOSE_INTERVAL 231
-#define RMUST_T_RCACHE_VBN 232
-#define RMUST_T_RCACHE_CNT 233
-#define RMUST_T_DAPF_DEPTH 234
-#define RMUST_T_DAPF_THRESHOLD 235
-#define RMUST_T_TXN_MODE_FLAGS 236
-#define RMUST_T_RCS_SWEEP_INTERVAL 237
-#define RMUST_T_ACTIVE_BACKUP_TSN 238
-#define RMUST_T_BOOTSTRAP_DBK 239
-#define RMUST_T_HRL_FLG 241
-#define RMUST_T_WRL_FLG 242
-#define RMUST_T_RESTRICT_ACCESS_FLG 243
-#define RMUST_T_ALTER_CNT 244
-#define RMUST_T_ALTER_TAD_ADT 245
-#define RMUST_T_ALTER_TAD_FDT 246
-#define RMUST_T_ALTER_TAD_TDT 247
-#define RMUST_T_INC_RES_TAD_ADT 248
-#define RMUST_T_INC_RES_TAD_FDT 249
-#define RMUST_T_INC_RES_TAD_TDT 250
-#define RMUST_T_FULL_BCK_TAD_ADT 251
-#define RMUST_T_FULL_BCK_TAD_FDT 252
-#define RMUST_T_FULL_BCK_TAD_TDT 253
-#define RMUST_T_LAST_BACKUP_TSN 254
-#define RMUST_T_LAST_BACKUP_CSN 255
-#define RMUST_T_LAST_FULL_BACKUP_TSN 256
-#define RMUST_T_FULL_VER_TAD_ADT 257
-#define RMUST_T_FULL_VER_TAD_FDT 258
-#define RMUST_T_FULL_VER_TAD_TDT 259
-#define RMUST_T_INC_VER_TAD_ADT 260
-#define RMUST_T_INC_VER_TAD_FDT 261
-#define RMUST_T_INC_VER_TAD_TDT 262
-#define RMUST_T_FULL_RES_TAD_ADT 263
-#define RMUST_T_FULL_RES_TAD_FDT 264
-#define RMUST_T_FULL_RES_TAD_TDT 265
-#define RMUST_T_ALT_BOOTSTRAP_DBK 266
-#define RMUST_T_RESTORE_ROOT_TAD_ADT 267
-#define RMUST_T_RESTORE_ROOT_TAD_FDT 268
-#define RMUST_T_RESTORE_ROOT_TAD_TDT 269
-#define RMUST_T_PAG_DBID 271
-#define RMUST_T_RELATED_FLG 272
-#define RMUST_T_COUPLED_FLG 274
-#define RMUST_T_CSM_FLG 275
-#define RMUST_T_SPREAD_FLG 276
-#define RMUST_T_RESTRUCTURED_FLG 277
-#define RMUST_T_WORM_DEVFULL_FLG 278
-#define RMUST_T_2PPL_ENABLED_FLG 279
-#define RMUST_T_WORM_AIJ_ENABLED_FLG 280
-#define RMUST_T_WORM_CORRUPT_FLG 281
-#define RMUST_T_RCACHE_ENABLED_FLG 282
-#define RMUST_T_WORM_LEOF 285
-#define RMUST_T_P0_VBN 286
-#define RMUST_T_CLUMP_PAGCNT 287
-#define RMUST_T_PAGES_PER_SPAM 288
-#define RMUST_T_AIJ_RCVR_VNO 289
-#define RMUST_T_PAG_LEN 290
-#define RMUST_T_PPSP1 291
-#define RMUST_T_SPAM_T1 292
-#define RMUST_T_SPAM_T2 293
-#define RMUST_T_SPAM_T3 294
-#define RMUST_T_SPAMVEC_LEN 295
-#define RMUST_T_PAG_PAD_LEN 296
-#define RMUST_T_MAX_FREE_LEN 297
-#define RMUST_T_MAX_NEW_SEG_LEN 298
-#define RMUST_T_MAX_SEG_LEN 299
-#define RMUST_T_BACKUP_STATS 300
-#define RMUST_T_RCACHE_DBID 301
-#define RMUST_T_SNAPS_ENABLED_TSN 302
-#define RMUST_T_COMMIT_TSN 303
-#define RMUST_T_BACKUP_TSN 304
-#define RMUST_T_INCR_BACKUP_TSN 305
-#define RMUST_T_ABS_QUIET_POINT_FLG 306
-#define RMUST_T_LSS_ACTIVE_FLG 307
-#define RMUST_T_LRS_ACTIVE_FLG 308
-#define RMUST_T_MASTER_DB_FLG 309
-#define RMUST_T_LSS_ONLINE_FLG 310
-#define RMUST_T_LSS_QUIET_POINT_FLG 311
-#define RMUST_T_CUR_RCVR_VBN 312
-#define RMUST_T_LSS_CKPT_INTRVL 313
-#define RMUST_T_LSS_WAIT_INTRVL 314
-#define RMUST_T_LSS_TIMEOUT_INTRVL 315
-#define RMUST_T_LSS_BUFFER_CNT 316
-#define RMUST_T_LSS_ACCESS_MODE 317
-#define RMUST_T_LSS_RESOLVE_2PC 318
-#define RMUST_T_LSS_STARTUP_TAD_ADT 319
-#define RMUST_T_LSS_STARTUP_TAD_FDT 320
-#define RMUST_T_LSS_STARTUP_TAD_TDT 321
-#define RMUST_T_BKUP_EDITNAM 322
-#define RMUST_T_REMOTE_NODENAM 323
-#define RMUST_T_SERVER_NAME 324
-#define RMUST_T_BKUP_FAILED_FLG 325
-#define RMUST_T_EMERGENCY_FLG 326
-#define RMUST_T_ACTIVATE_TAD_ADT 327
-#define RMUST_T_ACTIVATE_TAD_FDT 328
-#define RMUST_T_ACTIVATE_TAD_TDT 329
-#define RMUST_T_RDB_CHECKSUM 330
-#define RMUST_T_MONID 332
-#define RMUST_T_TID 333
-#define RMUST_T_TSNBLK_INDEX 334
-#define RMUST_T_TSNBLK_SLOT 335
-#define RMUST_T_REMOTE_FLG 336
-#define RMUST_T_ALS_FLG 337
-#define RMUST_T_DBR_FLG 338
-#define RMUST_T_SERVER_FLG 339
-#define RMUST_T_UTILITY_FLG 340
-#define RMUST_T_LCS_FLG 341
-#define RMUST_T_LRS_FLG 342
-#define RMUST_T_RCS_FLG 343
-#define RMUST_T_LSS_FLG 344
-#define RMUST_T_CKPT_VNO 345
-#define RMUST_T_CKPT_VBN 346
-#define RMUST_T_QUIET_VNO 347
-#define RMUST_T_VLM_ENABLED_FLG 352
-#define RMUST_T_REPLACE_ENABLED_FLG 353
-#define RMUST_T_SLOT_LEN 354
-#define RMUST_T_SLOT_COUNT 355
-#define RMUST_T_MAX_WS_COUNT 356
-#define RMUST_T_NAME 357
-#define RMUST_T_HASHED_INDEX_FLG 358
-#define RMUST_T_LAPMS_INDEX 359
-#define RMUST_T_VLM_WINDOW_COUNT 360
-#define RMUST_T_CKPT_SEQ 361
-#define RMUST_T_DEVDIR 362
-#define RMUST_T_HASH_LDBID_PRIME 363
-#define RMUST_T_HASH_PNO_PRIME 364
-#define RMUST_T_SWEEP_THRESH_HIGH 365
-#define RMUST_T_SWEEP_THRESH_LOW 366
-#define RMUST_T_SWEEP_FREE_PCT 367
-#define RMUST_T_SWEEP_BATCH_COUNT 368
-#define RMUST_T_MAX_RESERVE_COUNT 369
-#define RMUST_T_ALLOC_BLKCNT 370
-#define RMUST_T_EXTEND_BLKCNT 371
-#define RMUST_T_LIMBO_FLG 373
-#define RMUST_T_PREPARED_FLG 374
-#define RMUST_T_XATM_FLG 375
-#define RMUST_T_RESOLVE_FLG 376
-#define RMUST_T_RESOLUTION_FLG 377
-#define RMUST_T_RUJ_FILNAM 378
-#define RMUST_T_TM_LOG_ID 381
-#define RMUST_T_RM_LOG_ID 382
-#define RMUST_T_RM_NAME 383
-#define RMUST_T_NODE_NAME 384
-#define RMUST_T_PARENT_NODE_NAME 385
-#define RMUST_T_WIPMAP 388
-#define RMUST_T_SIPMAP 389
-#define RMUST_T_OLDEST_TSN 390
-#define RMUST_T_COMMIT_CSN 392
-#define RMUST_T_TSN_VEC 393
-#define RMUST_T_COMMIT_TSN_VEC 394
-#define RMUST_T_NEXT_SEQ 396
-#define RMUST_T_GROUP_SIZE 397
-#define RMUST_T_IGNORE_FLG 399
-#define RMUST_T_RECOVER_FLG 400
-#define RMUST_T_UPTO_AREA_FLG 401
-#define RMUST_T_LAST_COMMIT_TSN 403
-#define RMUST_T_PNO 404
-#define RMUST_T_PDBID 405
-#define RMUST_T_ABM_PNO 406
-#define RMUST_T_LAREA_DBID 407
-#define RMUST_T_PAREA_DBID 408
-#define RMUST_T_LAREA_NAME 409
-#define RMUST_T_REC_LEN 411
-#define RMUST_T_LAREA_EXT_CNT 412
-#define RMUST_T_MODULO_HASH_FLG 414
-#define RMUST_T_DELETED_TID 415
-#define RMUST_T_MOD_HASH_KEY_OFFSET 417
-#define RMUST_T_BITMAP 419
-#define RMUST_T_XID_FORMAT_ID 422
-#define RMUST_T_XID_GTRID_LENGTH 423
-#define RMUST_T_XID_BQUAL_LENGTH 424
-#define RMUST_T_XID_DATA 425
-#define RMUST_T_ACE_SIZE 426
-#define RMUST_T_ACE_TYPE 427
-#define RMUST_T_DEFAULT_FLG 428
-#define RMUST_T_PROTECTED_FLG 429
-#define RMUST_T_HIDDEN_FLG 430
-#define RMUST_T_NOPROPAGATE_FLG 431
-#define RMUST_T_READ_PRV_FLG 432
-#define RMUST_T_WRITE_PRV_FLG 433
-#define RMUST_T_EXECUTE_PRV_FLG 434
-#define RMUST_T_DELETE_PRV_FLG 435
-#define RMUST_T_CONTROL_PRV_FLG 436
-#define RMUST_T_DB_VERSION 437
-#define RMUST_T_NODE 438
-#define RMUST_T_CURRENT_TAD_ADT 439
-#define RMUST_T_CURRENT_TAD_FDT 440
-#define RMUST_T_CURRENT_TAD_TDT 441
-#define RMUST_T_NODE_DATABASES 442
-#define RMUST_T_DATABASE 443
-#define RMUST_T_ACTIVE_USERS 444
-#define RMUST_T_MONITOR_LOG 445
-#define RMUST_T_MONITOR_BUFFERS 446
-#define RMUST_T_USER_ID 448
-#define RMUST_T_USER_STATUS 449
-#define RMUST_T_DEVICE_NAME 450
-#define RMUST_T_DEVICE_STATUS 451
-#define RMUST_T_DEVICE_ERROR_CNT 452
-#define RMUST_T_LABEL 453
-#define RMUST_T_FREE_BLOCKS 454
-#define RMUST_T_TRANSFER_CNT 455
-#define RMUST_T_MOUNT_CNT 456
-#define RMUST_T_DEVICE_TYPE 457
-#define RMUST_T_DEVICE_CHAR 458
-#define RMUST_T_TABLE_NAME 459
-#define RMUST_T_LOGICAL_AREA_ID 460
-#define RMUST_T_TABLE_ID 461
-#define RMUST_T_INDEX_ID 462
-#define RMUST_T_LAPMS 463
-#define RMUST_T_LOGICAL_AREA_COUNT 464
-#define RMUST_T_ALL_LOGICAL_AREA_IDS 465
-#define RMUST_T_ALL_LAPMS 466
-#define RMUST_T_AIJ_MAX_IO_BLKS 468
-#define RMUST_T_AIJ_MIN_IO_BLKS 469
-#define RMUST_T_AIJ_STALL 470
-#define RMUST_T_COMMIT_STALL 471
-#define RMUST_T_DAPF_DEPTH_BUF_CNT 475
-#define RMUST_T_DAPF_START_BUF_CNT 476
-#define RMUST_T_LIVE_BW_MAX 477
-#define RMUST_T_MAX_DBR_CNT 478
-#define RMUST_T_ABS_PRIORITY 479
-#define RMUST_T_ALS_PRIORITY 480
-#define RMUST_T_DBR_PRIORITY 481
-#define RMUST_T_LCS_PRIORITY 482
-#define RMUST_T_LRS_PRIORITY 483
-#define RMUST_T_RCS_PRIORITY 484
-#define RMUST_T_CKPT_TRANS_INTERVAL 487
-#define RMUST_T_CTJ_TSN_INTERVAL 488
-#define RMUST_T_APF_ENABLED 489
-#define RMUST_T_ABW_ENABLED 490
-#define RMUST_T_DAPF_ENABLED 491
-#define RMUST_T_ABS_QUIET_POINT 492
-#define RMUST_T_RCACHE_RCRL_COUNT 493
-#define RMUST_T_RCS_BATCH_COUNT 494
-#define RMUST_T_RCS_CHECKPOINT 495
-#define RMUST_T_HOT_NETWORK_TIMEOUT 496
-#define RMUST_T_RCS_SWP_INT 497
-#define RMUST_T_RCS_COLD_LOW 498
-#define RMUST_T_RCS_COLD_HIGH 499
-#define RMUST_T_RCS_COLD_RECORDS 500
-#define RMUST_T_DBR_BUFFER_CNT 501
-#define RMUST_T_SNAP_QUIET_POINT 502
-#define RMUST_T_LOCK_TIMEOUT_INTERVAL 503
-#define RMUST_T_HRL_ENABLED 504
-#define RMUST_T_CBL_ENABLED 505
-#define RMUST_T_RUJ_EXTEND_BLKCNT 506
-#define RMUST_T_RCACHE_INSERT_ENABLED 507
-#define RMUST_T_RCS_ABORT_SWEEP 508
-#define RMUST_T_AIJ_ARB_COUNT 509
-#define RMUST_T_RCACHE_LATCH_SPIN_COUNT 510
-#define RMUST_T_RCWS_UNMARK_THRESHO 511
-#define RMUST_T_RUJ_ALLOC_BLKCNT 512
-#define RMUST_T_HOT_DATA_SYNC_MODE 513
-#define RMUST_T_HOT_CHECKPOINT 514
-#define RMUST_T_LCS_CONNECT_TIMEOUT 515
-#define RMUST_T_LRS_GAP_TIMEOUT 516
-#define RMUST_T_LRS_GOVERNOR_ENABLED 517
-#define RMUST_T_AIJ_SWITCH_GBL_CKPT 518
-#define RMUST_T_AIJ_CHK_CONTROL_RECS 519
-#define RMUST_T_READY_AREA_SERIALLY 520
-#define RMUST_T_ABS_OVRWRT_ALLOWED 521
-#define RMUST_T_ABS_OVRWRT_IMMEDIATE 522
-#define RMUST_T_ALS_CREATE_AIJ 523
-#define RMUST_T_VNO 524
-#define RMUST_T_AIJ_MAX_IO_BYTES 525
-#define RMUST_T_AIJ_MIN_IO_BYTES 526
-#define RMUST_T_HOT_ABS_SUSPEND 527
-#define RMUST_T_BUF_CNT 529
-#define RMUST_T_RCS_CKPT_BUFFER_CNT 530
-#define RMUST_T_UDASH_INDEX 531
-#define RMUST_T_RCACHE_INDEX 532
-#define RMUST_T_RUJ_INDEX 533
-#define RMUST_T_TSN_INDEX 534
-#define RMUST_T_SEQ_INDEX 535
-#define RMUST_T_CPT_INDEX 536
-#define RMUST_T_CRL_ENABLED 546
-#define RMUST_T_RCWS_UNMARK_THRESHOLD 551
-#define RMUST_T_VOLUME_NAME 555
-#define RMUST_T_MAX_BLOCKS 556
-#define RMUST_T_ACE_FLAGS 557
-#define RMUST_T_ACE_ACCESS 558
-#define RMUST_T_ALTER_PRV_FLG 559
-#define RMUST_T_ANALYSE_PRV_FLG 560
-#define RMUST_T_BACKUP_PRV_FLG 561
-#define RMUST_T_CONVERT_PRV_FLG 562
-#define RMUST_T_COPY_PRV_FLG 563
-#define RMUST_T_DUMP_PRV_FLG 564
-#define RMUST_T_LOAD_PRV_FLG 565
-#define RMUST_T_MOVE_PRV_FLG 566
-#define RMUST_T_OPEN_PRV_FLG 567
-#define RMUST_T_RESTORE_PRV_FLG 568
-#define RMUST_T_SECURITY_PRV_FLG 569
-#define RMUST_T_SHOW_PRV_FLG 570
-#define RMUST_T_UNLOAD_PRV_FLG 571
-#define RMUST_T_VERIFY_PRV_FLG 572
-#define RMUST_T_IDENTIFIER 573
-#define RMUST_T_ACE_TEXT 574
-#define RMUST_T_MONITOR_UP_FLG 575
-#define RMUST_K_TAG_LAST_TAG 575
-#define KUSGTBEND 1000
-#define KUSGTBOG 1001
-#define KUSGTEOG 1002
-#define KUSGTBTRN 1003
-#define KUSGTBCNT 1004
-#define KUSGTBDTG 1005
-#define KUSGTBKEY 1006
-#define KUSGTWCLS 1007
-#define KUSGTUNST 1008
-#define KUSGTMD 1009
-#define KUSGTNP 1010
-#define RMUST_MRT_STAREA_MAPS 2000
-#define RMUST_MRT_RELINFO 2001
-#define RMUST_MRT_IDXINFO 2002
-#define RMUST_CT_AIJINFO 2100
-#define RMUST_CT_AIJJNLS 2101
-#define RMUST_CT_ARPMS_STATS 2102
-#define RMUST_CT_DBINFO 2103
-#define RMUST_CT_DBR 2104
-#define RMUST_CT_FILE 2105
-#define RMUST_CT_PROCESS 2106
-#define RMUST_CT_STALL 2107
-#define RMUST_CT_STALL_ACT 2108
-#define RMUST_CT_RTPMS_STATS 2109
-#define RMUST_CT_FILE_NODUP 2110
-#define RMUST_CT_REC_CACHE 2111
-#define RMUST_CT_RUJINFO 2112
-#define RMUST_CT_TSNINFO 2113
-#define RMUST_CT_SEQINFO 2114
-#define RMUST_CT_CPTINFO 2115
-#define RMUST_CT_AIPINFO 2116
-#define RMUST_CT_ACTIVE 2117
-#define RMUST_CT_CLUSTER 2118
-#define RMUST_CT_RMUACL 2119
-#define RMUST_CT_USERS 2120
-#define RMUST_CT_DATABASES 2121
-#define RMUST_CT_TAPE_DEVICES 2122
-#define RMUST_CT_DISK_DEVICES 2123
-#define RMUST_CT_DASH 2124
-#define RMUST_CT_USER_DASH 2125
-#define RMUST_CT_DB_MONITOR 2126
-#define RMUST_CT_LAPMS_TABLE 2127
-#define RMUST_CT_LAPMS_INDEX 2128
-#define RMUST_CT_LAPMS_TABLE_STATS 2129
-#define RMUST_CT_LAPMS_INDEX_STATS 2130
-#define RMUST_CT_LAPMS_STATS 2131
-#define KUSC2_FILE_ENTRY 2501
-#define KUSC3_FILE_STATS 2502
-#define KUSC4_LIBRARY_CACHE 2503
-#define KUSC5_PARAMETERS 2504
-#define KUSC6_FILE_HEADER 2505
-#define KUSC7_PROCESS 2506
-#define KUSC8_SQL_AREA 2507
-#define KUSC9_SESSIONS 2508
-#define KUSC10_SGA 2509
-#define KUSC11_SQL_TEXT 2510
-#define KUSC12_SESSTAT 2511
-#define KUSC13_SESSIONS_STAT 2512
-#define KUSC14_SYSSTAT 2513
-#define KUSC15_EVENT_DESCRIPTIONS 2514
-#define KUSC16_SESSION_WAIT 2515
-#define KUSC17_OPEN_CURSOR 2516
-#define KUSC18_LATCH_WHERE 2517
-#define KUSC19_LATCH_MISSES 2518
-#define KUSC20_LATCH_HOLDER 2519
-#define KUSC21_LATCH 2520
-#define KUSC23_RESOURCE 2522
-#define KUSC24_LOCKS_1 2523
-#define KUSC25_LOCKS_2 2524
-#define KUSC26_LOCKS_3 2525
-#define KUSC27_LOCKS_4 2526
-#define KUSC28_LOCKS_5 2527
-#define KUSC29_LOCK1_STAT 2528
-#define KUSC30_LOCK2_STAT 2529
-#define KUSC31_LOCK3_STAT 2530
-#define KUSC32_LOCK4_STAT 2531
-#define KUS1_FILE_NUMBER 3000
-#define KUS2_FILE_NAME 3001
-#define KUS4_FILE_STATUS 3003
-#define KUS5_FILE_BLOCK_SIZE 3004
-#define KUS6_FILE_CREATE_BLOCKS 3005
-#define KUS7_SERVER_TYPE 3006
-#define KUS8_CHECKPOINT_CHANGE_NUMBER 3007
-#define KUS9_PHYRDS 3008
-#define KUS10_PHYWRTS 3009
-#define KUS11_READTIM 3010
-#define KUS12_WRITETIM 3011
-#define KUS13_PHYBLKRD 3012
-#define KUS14_PHYBLKWRT 3013
-#define KUS15_LIBRARYCACHE_NDX 3014
-#define KUS16_GETS 3015
-#define KUS17_GETHITS 3016
-#define KUS18_PINS 3017
-#define KUS19_PINHITS 3018
-#define KUS20_RELOADS 3019
-#define KUS21_INVALIDATIONS 3020
-#define KUS22_DLM_LOCK_REQUESTS 3021
-#define KUS23_DLM_PIN_REQUESTS 3022
-#define KUS24_DLM_PIN_RELEASES 3023
-#define KUS25_DLM_INVALIDATION_REQUESTS 3024
-#define KUS26_DLM_INVALIDATIONS 3025
-#define KUS27_PARAM_NUM 3026
-#define KUS28_PARAM_NAME 3027
-#define KUS29_PARAM_TYPE 3028
-#define KUS30_PARAM_VALUE 3029
-#define KUS31_PARAM_IS_DEFAULT 3030
-#define KUS32_PARAM_IS_SESS_MODIFIABLE 3031
-#define KUS33_PARAM_IS_SYS_MODIFIABLE 3032
-#define KUS34_PROC_ADDR 3033
-#define KUS35_PID 3034
-#define KUS36_SPID 3035
-#define KUS37_USERNAME 3036
-#define KUS38_SERIAL_NUMBER 3037
-#define KUS39_TERMINAL 3038
-#define KUS40_PROGRAM 3039
-#define KUS41_PROCESS_BACKGROUND 3040
-#define KUS42_LATCHWAIT 3041
-#define KUS43_LATCHSPIN 3042
-#define KUS44_PROCESS_ACTIVE 3043
-#define KUS45_SQL_TEXT 3044
-#define KUS46_SHARABLE_MEM 3045
-#define KUS47_PERSISTENT_MEM 3046
-#define KUS48_RUNTIME_MEM 3047
-#define KUS49_CURS_SORTS 3048
-#define KUS50_VERSION_COUNT 3049
-#define KUS51_LOADED_VERSIONS 3050
-#define KUS52_OPEN_VERSIONS 3051
-#define KUS53_USERS_OPENING 3052
-#define KUS54_EXECUTIONS 3053
-#define KUS55_USERS_EXECUTING 3054
-#define KUS56_LOADS 3055
-#define KUS57_FIRST_LOAD_TIME 3056
-#define KUS58_INVALIDATIONS 3057
-#define KUS59_PARSE_CALLS 3058
-#define KUS60_DISK_READS 3059
-#define KUS61_BUFFER_GETS 3060
-#define KUS62_COMMAND_TYPE 3061
-#define KUS63_ROWS_PROCESSED 3062
-#define KUS64_OPTIMIZER_MODE 3063
-#define KUS65_PARSING_USER_ID 3064
-#define KUS66_PARSING_SCHEMA_ID 3065
-#define KUS67_KEPT_VERSIONS 3066
-#define KUS68_PARENT_ADDRESS 3067
-#define KUS69_OBJECT_HASH 3068
-#define KUS70_MODULE 3069
-#define KUS71_MODULE_HASH 3070
-#define KUS72_ACTION 3071
-#define KUS73_ACTION_HASH 3072
-#define KUS74_SESSION_ADDR 3073
-#define KUS75_SID 3074
-#define KUS76_SERIAL_NUM 3075
-#define KUS77_AUDSID 3076
-#define KUS78_PADDR 3077
-#define KUS79_USER_NUM 3078
-#define KUS80_USERNAME 3079
-#define KUS81_COMMAND 3080
-#define KUS82_TADDR 3081
-#define KUS83_LOCKWAIT 3082
-#define KUS84_STATUS 3083
-#define KUS85_SERIALIZABLE_ABORTS 3084
-#define KUS86_SCHEMA_NUM 3085
-#define KUS87_SCHEMA_NAME 3086
-#define KUS88_OSUSER 3087
-#define KUS89_PROCESS 3088
-#define KUS90_MACHINE 3089
-#define KUS91_TERMINAL 3090
-#define KUS92_PROGRAM 3091
-#define KUS93_SESSION_TYPE 3092
-#define KUS94_SQL_ADDRESS 3093
-#define KUS95_SQL_HASH_VALUE 3094
-#define KUS96_PREV_SQL_ADDR 3095
-#define KUS97_PREV_HASH_VALUE 3096
-#define KUS98_MODULE 3097
-#define KUS99_MODULE_HASH 3098
-#define KUS100_ACTION 3099
-#define KUS101_ACTION_HASH 3100
-#define KUS102_CLIENT_INFO 3101
-#define KUS103_FIXED_TABLE_SEQUENCE 3102
-#define KUS104_ROW_WAIT_OBJECT 3103
-#define KUS105_ROW_WAIT_FILE 3104
-#define KUS106_ROW_WAIT_BLOCK 3105
-#define KUS107_ROW_WAIT_ROW 3106
-#define KUS108_LOGON_TIME 3107
-#define KUS109_LAST_CALL_ELAPSE_TIME 3108
-#define KUS110_OBJECT_STATE 3109
-#define KUS111_SESSION_FLAGS 3110
-#define KUS112_SGA_NAME 3111
-#define KUS113_SGA_SIZE 3112
-#define KUS114_SQL_TEXT_ADDR 3113
-#define KUS115_HASH_VALUE 3114
-#define KUS116_SQL_TEXT_PIECE 3115
-#define KUS117_SQL_TEXT 3116
-#define KUS118_SESSION_STATS_ARRAY 3117
-#define KUS119_SYS_STATISTIC_NUM 3118
-#define KUS121_SYS_STATISTIC_NAME 3120
-#define KUS122_SYS_STATISTIC_CLASS 3121
-#define KUS123_SYS_STATISTIC_VALUE 3122
-#define KUS124_EVENT_NUMBER 3123
-#define KUS125_EVENT_NAME 3124
-#define KUS126_PARAM_1_TEXT 3125
-#define KUS127_PARAM_2_TEXT 3126
-#define KUS128_PARAM_3_TEXT 3127
-#define KUS129_SESSION_SEQ_NUM 3128
-#define KUS130_P1 3129
-#define KUS131_P1_RAW 3130
-#define KUS132_P2 3131
-#define KUS133_P2_RAW 3132
-#define KUS134_P3 3133
-#define KUS135_P3_RAW 3134
-#define KUS136_WAIT_TIME 3135
-#define KUS137_SECONDS_IN_WAIT 3136
-#define KUS138_OBJECT_STATE_FLAGS 3137
-#define KUS139_LATCH_ADDRESS 3138
-#define KUS140_USER_NAME 3139
-#define KUS141_CURSOR_ADDRESS 3140
-#define KUS142_CURSOR_HASH_VALUE 3141
-#define KUS143_CURSOR_SQL_TEXT 3142
-#define KUS144_CURSOR_OBJ_NAME_SPACE 3143
-#define KUS145_CURSOR_OBJ_HANDLE 3144
-#define KUS146_LATCH_NUMBER 3145
-#define KUS147_LATCH_WHERE 3146
-#define KUS148_LATCH_PARENT_NAME 3147
-#define KUS149_LATCH_NO_WAIT_FAIL_COUNT 3148
-#define KUS150_LATCH_NAME 3149
-#define KUS151_LATCH_LEVEL_NUMBER 3150
-#define KUS152_LATCH_GETS 3151
-#define KUS153_LATCH_MISSES 3152
-#define KUS154_SLEEPS 3153
-#define KUS155_IMMEDIATE_GETS 3154
-#define KUS156_IMMEDIATE_MISSES 3155
-#define KUS157_WAITERS_WOKEN 3156
-#define KUS158_WAITS_HOLDING_LATCH 3157
-#define KUS159_SPIN_GETS 3158
-#define KUS160_SLEEP1 3159
-#define KUS161_SLEEP2 3160
-#define KUS162_SLEEP3 3161
-#define KUS163_SLEEP4 3162
-#define KUS164_SLEEP5 3163
-#define KUS165_SLEEP6 3164
-#define KUS166_SLEEP7 3165
-#define KUS167_SLEEP8 3166
-#define KUS168_SLEEP9 3167
-#define KUS169_SLEEP10 3168
-#define KUS170_SLEEP11 3169
-#define KUS171_SLEEP12 3170
-#define KUS172_SLEEP13 3171
-#define KUS173_RESOURCE_ADDR 3172
-#define KUS174_RESOURCE_TYPE 3173
-#define KUS175_RESOURCE_ID_1 3174
-#define KUS176_RESOURCE_ID_2 3175
-#define KUS177_RESOURCE_FLAG 3176
-#define KUS178_LOCK_STATE_ADDRESS 3177
-#define KUS179_LOCK_ADDRESS 3178
-#define KUS180_LOCK_MODE_HELD 3179
-#define KUS181_LOCK_MODE_REQUESTED 3180
-#define KUS182_LOCK_HELD_TIME 3181
-#define KUS183_BLOCKING 3182
-#define KUS184_LATCH_SLEEP_COUNT 3183
-#define KUS185_CURRENT_FILE_BLOCKS 3184
-#define KUS203_FILE_ENABLED 3202
-#define KUS204_CACHE_NAMESPACE 3203
-#define KUS205_PARAM_IS_MODIFIED 3204
-#define KUS206_PARAM_IS_ADJUSTED 3205
-#define KUS207_PARAM_DESCRIPTION 3206
-#define KUSST1 5000
-#define KUSST2 5001
-#define KUSST3 5002
-#define KUSST4 5003
-#define KUSST5 5004
-#define KUSST6 5005
-#define KUSST7 5006
-#define KUSST8 5007
-#define KUSST9 5008
-#define KUSST10 5009
-#define KUSST11 5010
-#define KUSST12 5011
-#define KUSST13 5012
-#define KUSST14 5013
-#define KUSST15 5014
-#define KUSST16 5015
-#define KUSST17 5016
-#define KUSST18 5017
-#define KUSST19 5018
-#define KUSST20 5019
-#define KUSST21 5020
-#define KUSST22 5021
-#define KUSST23 5022
-#define KUSST24 5023
-#define KUSST25 5024
-#define KUSST26 5025
-#define KUSST27 5026
-#define KUSST28 5027
-#define KUSST29 5028
-#define KUSST30 5029
-#define KUSST31 5030
-#define KUSST32 5031
-#define KUSST33 5032
-#define KUSST34 5033
-#define KUSST35 5034
-#define KUSST36 5035
-#define KUSST37 5036
-#define KUSST38 5037
-#define KUSST39 5038
-#define KUSST40 5039
-#define KUSST41 5040
-#define KUSST42 5041
-#define KUSST43 5042
-#define KUSST44 5043
-#define KUSST45 5044
-#define KUSST46 5045
-#define KUSST47 5046
-#define KUSST48 5047
-#define KUSST49 5048
-#define KUSST50 5049
-#define KUSST51 5050
-#define KUSST52 5051
-#define KUSST53 5052
-#define KUSST54 5053
-#define KUSST55 5054
-#define KUSST56 5055
-#define KUSST57 5056
-#define KUSST58 5057
-#define KUSST59 5058
-#define KUSST60 5059
-#define KUSST61 5060
-#define KUSST62 5061
-#define KUSST63 5062
-#define KUSST64 5063
-#define KUSST65 5064
-#define KUSST66 5065
-#define KUSST67 5066
-#define KUSST68 5067
-#define KUSST69 5068
-#define KUSST70 5069
-#define KUSST71 5070
-#define KUSST72 5071
-#define KUSST73 5072
-#define KUSST74 5073
-#define KUSST75 5074
-#define KUSST76 5075
-#define KUSST77 5076
-#define KUSST78 5077
-#define KUSST79 5078
-#define KUSST80 5079
-#define KUSST81 5080
-#define KUSST82 5081
-#define KUSST83 5082
-#define KUSST84 5083
-#define KUSST85 5084
-#define KUSST86 5085
-#define KUSST87 5086
-#define KUSST88 5087
-#define KUSST89 5088
-#define KUSST90 5089
-#define KUSST91 5090
-#define KUSST92 5091
-#define KUSST93 5092
-#define KUSST94 5093
-#define KUSST95 5094
-#define KUSST96 5095
-#define KUSST97 5096
-#define KUSST98 5097
-#define KUSST99 5098
-#define KUSST100 5099
-#define KUSST101 5100
-#define KUSST102 5101
-#define KUSST103 5102
-#define KUSST104 5103
-#define KUSST105 5104
-#define KUSST106 5105
-#define KUSST107 5106
-#define KUSST108 5107
-#define KUSST109 5108
-#define KUSST110 5109
-#define KUSST111 5110
-#define KUSST112 5111
-#define KUSST113 5112
-#define KUSST114 5113
-#define KUSST115 5114
-#define KUSST116 5115
-#define KUSST117 5116
-#define KUSST118 5117
-#define KUSST119 5118
-#define KUSST120 5119
-#define KUSST121 5120
-#define KUSST122 5121
-#define KUSST123 5122
-#define KUSST124 5123
-#define KUSST125 5124
-#define KUSST126 5125
-#define KUSST127 5126
-#define KUSST128 5127
-#define KUSST129 5128
-#define KUSST130 5129
-#define KUSST131 5130
-#define KUSST132 5131
-#define KUSST133 5132
-#define KUSST134 5133
-#define KUSST135 5134
-#define KUSST136 5135
-#define KUSST137 5136
-#define KUSST138 5137
-#define KUSST139 5138
-#define KUSST140 5139
-#define KUSST141 5140
-#define KUSST142 5141
-#define KUSST143 5142
-#define KUSST144 5143
-#define KUSST145 5144
-#define KUSST146 5145
-#define KUSST147 5146
-#define KUSST148 5147
-#define KUSST149 5148
-#define KUSST150 5149
-#define KUSST151 5150
-#define KUSST152 5151
-#define KUSST153 5152
-#define KUSST154 5153
-#define KUSST155 5154
-#define KUSST156 5155
-#define KUSST157 5156
-#define KUSST158 5157
-#define KUSST159 5158
-#define KUSST160 5159
-#define KUSST161 5160
-#define KUSST162 5161
-#define KUSST163 5162
-#define KUSST164 5163
-#define KUSST165 5164
-#define KUSST166 5165
-#define KUSST167 5166
-#define KUSST168 5167
-#define KUSST169 5168
-#define KUSST170 5169
-#define KUSST171 5170
-#define KUSST172 5171
-#define KUSST173 5172
-#define KUSST174 5173
-#define KUSST175 5174
-#define KUSST176 5175
-#define KUSST177 5176
-#define KUSST178 5177
-#define KUSST179 5178
-#define KUSST180 5179
-#define KUSST181 5180
-#define KUSST182 5181
-#define KUSST183 5182
-#define KUSST184 5183
-#define KUSST185 5184
-#define KUSST186 5185
-#define KUSST187 5186
-#define KUSST188 5187
-#define KUSST189 5188
-#define KUSST190 5189
-#define KUSST191 5190
-#define KUSST192 5191
-#define KUSST193 5192
-#define KUSST194 5193
-#define KUSST195 5194
-#define KUSST196 5195
-#define KUSST197 5196
-#define KUSST198 5197
-#define KUSST199 5198
-
-/* 0-based count of tags */
-
-#define KUSTAGCOUNT 975
-
-/* Oracle Rdb tags (0-999)*/
-
-#define KUSRTAGSTART 0
-#define KUSRTAGEND 999
-
-/* global tags (1000 - 1999) */
-
-#define KUSGTTAGSTART 1000
-#define KUSGTTAGEND 1999
-
-/* Oracle Rdb class tags */
-
-#define KUSRCTAGSTART 2000
-#define KUSRCTAGEND 2499
-
-/* Oracle class tags */
-
-#define KUSOCTAGSTART 2500
-#define KUSOCTAGEND 2999
-
-/* oracle tags (3000 - 9999) */
-
-#define KUSOTAGSTART 3000
-#define KUSOTAGMAX 9999
-
-/* ENABLE check_macro_naming */
-
-#endif
diff --git a/src/terralib/drivers/Oracle/OCI/include/nzerror.h b/src/terralib/drivers/Oracle/OCI/include/nzerror.h
deleted file mode 100644
index 5490c65..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/nzerror.h
+++ /dev/null
@@ -1,644 +0,0 @@
-/* DISABLE check_long_lines  */
-
-/*
- * $Header$
- *
- * Copyright (c) 1995, 2003, Oracle Corporation.  All rights reserved.  
- */
-
-/* ENABLE check_long_lines  */
-/*
-  NAME
-     nzerror.h - error numbers for the Oracle Security Server
-  DESCRIPTION
-     None.
-  PUBLIC FUNCTION(S)
-     None.
-  PRIVATE FUNCTION(S)
-     None.
-  NOTES
-     A pragma is used to silence olint about the enum value names not being
-     unique within 7 characters. This limit is being changed to 30.
-  MODIFIED
-     rchahal    10/15/03 - bug 2513821 
-     rchahal    08/14/03 - new error range (43000 - 43499) 
-     skalyana   08/25/03 - Error changes 
-     rchahal    06/27/03 - RSA errors
-     rchahal    05/27/03 - convert wallet
-     skalyana   03/07/03 - Move FIPS errors
-     rchahal    02/28/03 - bug 2648177
-     rchahal    01/20/03 - use sltsky
-     rchahal    11/11/02 - pkcs11 support
-     skalyana   11/29/02 - Add mutex errors
-     akoyfman   11/01/02 - adding crl cache
-     rchahal    10/23/02 - crldp error
-     rchahal    10/15/02 - fetch crl from ldap
-     rchahal    10/07/02 - crl support
-     akoyfman   10/16/02 - Update with SSL PLus 4.2 errors
-     skalyana   10/04/02 - Certicom SSL Plus 4.2 Upgrade changes
-     akoyfman   08/06/02 - adding sso wallet errors
-     akoyfman   07/12/02 - adding secret store errors
-     skalyana   07/07/02 - Add more errors for FIPS self tests
-     skalyana   07/01/02 - Add more errors
-     skalyana   06/03/02 - Add NZ error for self test failure.
-     ajacobs    02/22/01 - Add some entrust errors
-     vle        02/09/01 - add error mesg
-     lkethana   08/11/00 - Extension Errors
-     lkethana   07/30/00 - add pkcs12 errors
-     lkethana   06/17/00 - mult cert errors
-     lkethana   06/11/00 - multiple cert support
-     rturlapa   03/29/00 - Add error meesage for Entrust Login failure.
-     rwessman   07/07/99 - Deleted include of sslerrs.h. It caused the RDBMS bu
-     rwessman   07/02/99 - fixed merge errors
-     rwessman   07/01/99 - moved NZOS errors to nzerror to make them visible
-     supriya    12/16/98 - add new error for cert chain.
-     arswamin   12/04/98 - add NZERROR_NO_MATCHING_PRIVATE_KEY
-     qdinh      11/12/98 - add NZERROR_VALIDITY_EXPIRED.
-     arswamin   06/17/98 - add INIT_FAILED
-     sdange     06/10/98 - change wrong password to bad password
-     amthakur   06/09/98 - adding error messages
-     wliau      03/10/97 - Add new error message for snzdfo.c.
-     rwessman   03/14/97 - Consolidated PL/SQL toolkit errors into generic erro
-     rwessman   02/26/97 - Added NZERROR_UNSUPPORTED. Corrected values of
-                           errors outside the valid range.
-     asriniva   03/02/97 - Fix olint warning
-     rwessman   02/26/97 - Added NZERROR_UNSUPPORTED
-     rwessman   01/02/97 - Changed PLSQL package errors to be TK_PLSQL to
-                           separate them from the errors generated by the
-                           Oracle interface.
-     rwessman   12/30/96 - Merged in PL/SQL toolkit errors
-     sdange     11/14/96 - (Added NZERROR_DECRYPT_FAILED to the enum list)
-     rwessman   12/02/96 -
-     rwessman   11/25/96 - Added error messages for PL/SQL functions.
-     asriniva   10/31/96 - Include oratypes.h
-     asriniva   10/29/96 - Fix numbering.
-     asriniva   10/29/96 - Fix error numbers
-     asriniva   10/29/96 - Correct type-o
-     asriniva   10/28/96 - Add more TK errors
-     asriniva   10/28/96 - Convert OKAPI errors to TK errors.
-     rwessman   10/17/96 - still more OSS TK errors
-     asriniva   10/16/96 - OKAPI errors
-     asriniva   10/15/96 - OSSTK errors
-     rwessman   10/15/96 - Added more OSS TK errors
-     asriniva   10/09/96 - Add OSSTK errors.
-     rwessman   09/05/96 - Added errors for PL/SQL functions.
-     wliau      09/05/96 - correct error numbers.
-     $Log$
- * Revision 1.26  1996/07/15  23:07:23  wliau
- * Added NZERROR_AUTH_SHARED_MEMORY
- *
- * Revision 1.25  1996/07/01  20:40:15  asriniva
- * Finished RSA verify/sign.
- *
- * Revision 1.24  1996/06/27  20:39:41  rwessman
- * Added more errors.
- *
- * Revision 1.23  1996/05/31  17:33:40  rwessman
- * Updated nzerror.h to contain bug # for olint enum bug.
- *
- * Revision 1.22  1996/05/31  17:12:30  rwessman
- * Assigned values to the various errors.
- *
- * Revision 1.21  1996/05/13  20:46:58  ggilchri
- * Added more attribute related error conditions
- *
-*/
-
-#ifndef NZERROR_ORACLE
-# define NZERROR_ORACLE
-
-#ifndef ORATYPES
-# include <oratypes.h>
-#endif /* ORATYPES */
-
-/*
-** Errors - when an error is added here, a message corresponding to the
-** error number must be added to the message file.
-** New errors must be assigned numbers, otherwise the compiler can assign any
-** value that it wants, which may lead to invalid error numbers being
-** generated.
-** The number range currently assigned to the OSS is 28750 - 29249
-** New number range 43000 - 43499
-*/
-
-typedef enum nzerror
-{
-  NZERROR_OK = 0,
-  NZERROR_GENERIC = 28750,                          /* A catchall for errors */
-  NZERROR_NO_MEMORY = 28751,                               /* No more memory */
-  NZERROR_DATA_SOURCE_INIT_FAILED = 28752,     /* Failed to init data source */
-  NZERROR_DATA_SOURCE_TERM_FAILED = 28753,/* Failed to terminate data source */
-  NZERROR_OBJECT_STORE_FAILED = 28754, /* Store object in data source failed */
-  NZERROR_OBJECT_GET_FAILED = 28755,
-                                 /* Failed to obtain object from data source */
-  NZERROR_MEMORY_ALLOC_FAILED = 28756,
-                                       /* Callback failed to allocate memory */
-  NZERROR_MEMORY_ALLOC_0_BYTES = 28757,
-                                   /* Attempted to ask for 0 bytes of memory */
-  NZERROR_MEMORY_FREE_FAILED = 28758,
-                                           /* Callback failed to free memory */
-  NZERROR_FILE_OPEN_FAILED = 28759,
-                                                      /* Open of file failed */
-  NZERROR_LIST_CREATION_FAILED = 28760,
-                                                  /* Creation of list failed */
-  NZERROR_NO_ELEMENT = 28761,
-                                                    /* No list element found */
-  NZERROR_ELEMENT_ADD_FAILED = 28762,
-                                          /* Addition of list element failed */
-  NZERROR_PARAMETER_BAD_TYPE = 28763,
-                                   /* Retrieval of an unknown parameter type */
-  NZERROR_PARAMETER_RETRIEVAL = 28764,      /* Retrieval of parameter failed */
-                             
-  NZERROR_NO_LIST = 28765,                /* Data method list does not exist */
-  NZERROR_TERMINATE_FAIL = 28766,                     /* Failed to terminate */
-  NZERROR_BAD_VERSION_NUMBER = 28767,                  /* Bad version number */
-  NZERROR_BAD_MAGIC_NUMBER = 28768,                      /* Bad magic number */
-  NZERROR_METHOD_NOT_FOUND = 28769,
-                           /* Data retrieval method specified does not exist */
-  NZERROR_ALREADY_INITIALIZED = 28770,
-                                    /*The data source is already initialized */
-  NZERROR_NOT_INITIALIZED = 28771,     /* The data source is not initialized */
-  NZERROR_BAD_FILE_ID = 28772,                             /* File ID is bad */
-  NZERROR_WRITE_MAGIC_VERSION = 28773,  /* Failed to write magic and version */
-  NZERROR_FILE_WRITE_FAILED = 28774,              /* Failed to write to file */
-  NZERROR_FILE_CLOSE_FAILED = 28775,                 /* Failed to close file */
-  NZERROR_OUTPUT_BUFFER_TOO_SMALL = 28776,
-                           /* The buffer supplied by the caller is too small */
-  NZERROR_BINDING_CREATION_FAILED = 28777,/* NL failed in creating a binding */
-  NZERROR_PARAMETER_MALFORMED = 28778,    /* A parameter was in a bad format */
-  NZERROR_PARAMETER_NO_METHOD = 28779,
-                                  /* No method was specified for a data type */
-  NZERROR_BAD_PARAMETER_METHOD = 28780,      /* Illegal method for data type */
-  NZERROR_PARAMETER_NO_DATA = 28781,    /* No method specified when required */
-  NZERROR_NOT_ALLOCATED = 28782,             /* Data source is not allocated */
-  NZERROR_INVALID_PARAMETER = 28783,               /* Invalid parameter name */
-  NZERROR_FILE_NAME_TRANSLATION = 28784,/* Could not translate OSD file name */
-  NZERROR_NO_SUCH_PARAMETER = 28785,   /* Selected parameter is non-existent */
-
-  NZERROR_DECRYPT_FAILED = 28786,  
-                                 /* Encrypted private key decryption failure */ 
-  NZERROR_ENCRYPT_FAILED = 28787,     /* Private key encryption failed */
- 
-  NZERROR_INVALID_INPUT = 28788,     /* Incorrect input or unknown error */ 
-
-  NZERROR_NAME_TYPE_NOT_FOUND = 28789,
-                                  /* Type of name requested is not available */
-  NZERROR_NLS_STRING_OPEN_FAILED = 28790,
-                                        /* Failure to generate an NLS string */
-  NZERROR_CERTIFICATE_VERIFY = 28791,      /* Failed to verify a certificate */
-  NZERROR_OCI_PLSQL_FAILED = 28792,
-                                 /* an OCI call to process some plsql failed */
-  NZERROR_OCI_BIND_FAILED = 28793,
-                              /* an OCI call to bind an internal var. failed */
-  NZERROR_ATTRIBUTE_INIT = 28794,           /* failed to init role retrieval */
-  NZERROR_ATTRIBUTE_FINISH_FAILED = 28795,/* Did not complete role retrieval */
-  NZERROR_UNSUPPORTED_METHOD = 28796, /* Data method specified not supported */
-  NZERROR_INVALID_KEY_DATA_TYPE = 28797,
-                                      /* Invalid data type specified for key */
-  NZEROR_BIND_SUBKEY_COUNT = 28798,
-       /* Number of sub-keys to bind does not match count in initialized key */
-  NZERROR_AUTH_SHARED_MEMORY = 28799,
-    /* Failed to retreieve authentication information from the shared memory */
-  NZERROR_RIO_OPEN = 28800,                               /* RIO Open Failed */
-  NZERROR_RIO_OBJECT_TYPE = 28801,                /* RIO object type invalid */
-  NZERROR_RIO_MODE = 28802,                              /* RIO mode invalid */
-  NZERROR_RIO_IO = 28803,                     /* RIO io set or numberinvalid */
-  NZERROR_RIO_CLOSE = 28804,                             /* RIO close failed */
-  NZERROR_RIO_RETRIEVE = 28805,                       /* RIO retrieve failed */
-  NZERROR_RIO_STORE = 28806,                             /* RIO store failed */
-  NZERROR_RIO_UPDATE = 28807,                           /* RIO update failed */
-  NZERROR_RIO_INFO = 28808,                               /* RIO info failed */
-  NZERROR_RIO_DELETE = 28809,                           /* RIO delete failed */
-  NZERROR_KD_CREATE = 28810,                 /* Key descriptor create failed */
-  NZERROR_RIO_ACCESS_DESCRIPTOR = 28811,        /* access descriptor invalid */
-  NZERROR_RIO_RECORD = 28812,                              /* record invalid */
-  NZERROR_RIO_RECORD_TYPE = 28813,    /* record type and AD type not matched */
-  NZERROR_PLSQL_ORACLE_TO_REAL = 28814,
-          /* A number passed to PL/SQL could not be converted to real format */
-  NZERROR_PLSQL_REAL_TO_ORACLE = 28815,
-       /* A number in machine format could not be converted to Oracle format */
-  NZERROR_TK_PLSQL_NO_PASSWORD = 28816,
-                         /* A password was not provided to a PL/SQL function */
-  NZERROR_TK_PLSQL_GENERIC = 28817,
-                                      /* A PL/SQL function returned an error */
-  NZERROR_TK_PLSQL_NO_CONTEXT = 28818,
-               /* The package context was not specified to a PL/SQL function */
-  NZERROR_TK_PLSQL_NO_DIST_NAME = 28819,
-      /* The user's distinguished name was not provided to a PL/SQL function */
-  NZERROR_TK_PLSQL_NO_STATE = 28820,
-/* The state of either a signature or decryption/encryption was not provided */
-  NZERROR_TK_PLSQL_NO_INPUT = 28821,
-                       /* An input buffer was specified to a PL/SQL function */
-  NZERROR_TK_PLSQL_NO_SEED = 28822,
-         /* No seed was specified to the PL/SQL seed initialization function */
-  NZERROR_TK_PLSQL_NO_BYTES = 28823,
-  /* Number of bytes was not specified to the PL/SQL random number generator */
-  NZERROR_TK_INVALID_STATE = 28824,
-                     /* Invalid encryption/decryption/signature state passed */
-  NZERROR_TK_PLSQL_NO_ENG_FUNC = 28825,
-                                  /* No crypto engine function was passed in */
-  NZERROR_TK_INV_ENG_FUNC = 28826,
-                          /* An invalid crypto engine function was passed in */
-  NZERROR_TK_INV_CIPHR_TYPE = 28827,
-                                     /* An invalid cipher type was passed in */
-  NZERROR_TK_INV_IDENT_TYPE = 28828,
-                                   /* An invalid identity type was specified */
-  NZERROR_TK_PLSQL_NO_CIPHER_TYPE = 28829,
-                                             /* No cipher type was specified */
-  NZERROR_TK_PLSQL_NO_IDENT_TYPE = 28830,
-                                           /* No identity type was specified */
-  NZERROR_TK_PLSQL_NO_DATA_FMT = 28831,
-                                        /* No data unit format was specified */
-  NZERROR_TK_INV_DATA_FMT = 28832,
-                        /* Invalid data unit format was provided to function */
-  NZERROR_TK_PLSQL_INSUFF_INFO = 28833,
-       /* Not enough info (usually parameters) provided to a PL/SQL function */
-  NZERROR_TK_PLSQL_BUF_TOO_SMALL = 28834,
-           /* Buffer provided by PL/SQL is too small for data to be returned */
-  NZERROR_TK_PLSQL_INV_IDENT_DESC = 28835,
-                             /* Identity descriptor not present or too small */
-  NZERROR_TK_PLSQL_WALLET_NOTOPEN = 28836,
-                                           /* Wallet has not been opened yet */
-  NZERROR_TK_PLSQL_NO_WALLET = 28837,
-                        /* No wallet descriptor specified to PL/SQL function */
-  NZERROR_TK_PLSQL_NO_IDENTITY = 28838,
-                      /* No identity descriptor specified to PL/SQL function */
-  NZERROR_TK_PLSQL_NO_PERSONA = 28839,
-                   /* No persona descriptor was specified to PL/SQL function */
-  NZERROR_TK_PLSQL_WALLET_OPEN = 28840,
-                                                /* Wallet was already opened */
-  NZERROR_UNSUPPORTED = 28841,                 /* Operation is not supported */
-  NZERROR_FILE_BAD_PERMISSION = 28842,      /* Bad file permission specified */
-  NZERROR_FILE_OSD_ERROR = 28843,             /* OSD error when opening file */
-  NZERROR_NO_WALLET  = 28844,  /* cert + privkey + tp files do not exist */
-  NZERROR_NO_CERTIFICATE_ALERT    = 28845,  /* no certificate */
-  NZERROR_NO_PRIVATE_KEY          = 28846,  /* no private-key */
-  NZERROR_NO_CLEAR_PRIVATE_KEY_FILE   = 28847,   /* no clear key-file */
-  NZERROR_NO_ENCRYPTED_PRIVATE_KEY_FILE = 28848,  /* no encrypted priv key */
-  NZERROR_NO_TRUSTPOINTS     = 28849,       /* no trustpoints */
-  NZERROR_NO_CLEAR_TRUSTPOINT_FILE    = 28850,   /* no clear trustpoints */
-  NZERROR_NO_ENCRYPTED_TRUSTPOINT_FILE = 28851,   /* no encrypted trustpoints */
-  NZERROR_BAD_PASSWORD    = 28852,   /* bad password */
-  NZERROR_INITIALIZATION_FAILED   =  28853, /* init failed or 
-					       module loading failed */
-  /******************************* SSL ERRORS ********************************/
-  /*
-   * In order to allow SSL errors to be mapped to Oracle errors, space is
-   * provided here. One Oracle error is provided for each SSL error to make
-   * error handling easier. A macro is provided to do the conversion.
-   * NOTE: ANY CHANGE IN SSL ERRORS MUST BE REFLECTED HERE.
-   * To add an SSL error, use the following formula to calculate the Oracle
-   * error:
-   * new_oracle_error = (new_ssl_error - SSLMemoryError) + NZERROR_SSLMemoryErr
-   * or numerically:
-   * new_oracle_error = (new_ssl_error - -7000) + 28854
-   */
-  NZERROR_SSLMemoryErr = 28854,
-  NZERROR_SSLUnsupportedErr = 28855,
-  NZERROR_SSLOverflowErr = 28856,
-  NZERROR_SSLUnknownErr = 28857,
-  NZERROR_SSLProtocolErr = 28858,
-  NZERROR_SSLNegotiationErr = 28859,
-  NZERROR_SSLFatalAlert = 28860,
-  NZERROR_SSLWouldBlockErr = 28861,
-  NZERROR_SSLIOErr = 28862,
-  NZERROR_SSLSessionNotFoundErr = 28863,
-  NZERROR_SSLConnectionClosedGraceful = 28864,
-  NZERROR_SSLConnectionClosedError = 28865,
-  NZERROR_ASNBadEncodingErr = 28866,
-  NZERROR_ASNIntegerTooBigErr = 28867,
-  NZERROR_X509CertChainInvalidErr = 28868,
-  NZERROR_X509CertExpiredErr = 28869,
-  NZERROR_X509NamesNotEqualErr = 28870,
-  NZERROR_X509CertChainIncompleteErr = 28871,
-  NZERROR_X509DataNotFoundErr = 28872,
-  NZERROR_SSLBadParameterErr = 28873,
-  NZERROR_SSLIOClosedOverrideGoodbyeKiss = 28874,
-  NZERROR_X509MozillaSGCErr  =  28875,
-  NZERROR_X509IESGCErr       =  28876,
-  NZERROR_ImproperServerCredentials = 28877,
-  NZERROR_ImproperClientCredentials = 28878,
-  NZERROR_NoProtocolSideSet = 28879,
-  NZERROR_setPersonaFailed = 28880,
-  NZERROR_setCertFailed = 28881,
-  NZERROR_setVKeyFailed = 28882,
-  NZERROR_setTPFailed = 28883,
-  NZERROR_BadCipherSuite = 28884,
-  NZERROR_NoKeyPairForKeyUsage = 28885,
-
-/* ============>>>  ENTRUST ERRORS */
-  NZERROR_EntrustLoginFailed = 28890,
-  NZERROR_EntrustGetInfoFailed = 28891,
-  NZERROR_EntrustLoadCertificateFailed = 28892,
-  NZERROR_EntrustGetNameFailed = 28893,
-
-/* ============>>> NZERRORS CONTINUED */
-  NZERROR_CertNotInstalled = 29000,
-  NZERROR_ServerDNMisMatched = 29002,
-  NZERROR_ServerDNMisConfigured = 29003,
-
-/* ============>>> PKI VENDORS ERRORS 29050 - 29099 */
-
-/* ============>>> SSL Errors CONTINUED */
-  NZERROR_CIC_ERR_SSL_ALERT_CB_FAILURE = 29004,
-  NZERROR_CIC_ERR_SSL_BAD_CERTIFICATE = 29005,
-  NZERROR_CIC_ERR_SSL_BAD_CERTIFICATE_REQUEST = 29006,
-  NZERROR_CIC_ERR_SSL_BAD_CLEAR_KEY_LEN = 29007,
-  NZERROR_CIC_ERR_SSL_BAD_DHPARAM_KEY_LENGTH = 29008,
-  NZERROR_CIC_ERR_SSL_BAD_ENCRYPTED_KEY_LEN = 29009,
-  NZERROR_CIC_ERR_SSL_BAD_EXPORT_KEY_LENGTH = 29010,
-  NZERROR_CIC_ERR_SSL_BAD_FINISHED_MESSAGE = 29011,
-  NZERROR_CIC_ERR_SSL_BAD_KEY_ARG_LEN = 29012,
-  NZERROR_CIC_ERR_SSL_BAD_MAC = 29013,
-  NZERROR_CIC_ERR_SSL_BAD_MAX_FRAGMENT_LENGTH_EXTENSION = 29014,
-  NZERROR_CIC_ERR_SSL_BAD_MESSAGE_LENGTH = 29015,
-  NZERROR_CIC_ERR_SSL_BAD_PKCS1_PADDING = 29016,
-  NZERROR_CIC_ERR_SSL_BAD_PREMASTER_SECRET_LENGTH = 29017,
-  NZERROR_CIC_ERR_SSL_BAD_PREMASTER_SECRET_VERSION = 29018,
-  NZERROR_CIC_ERR_SSL_BAD_PROTOCOL_VERSION = 29019,
-  NZERROR_CIC_ERR_SSL_BAD_RECORD_LENGTH = 29020,
-  NZERROR_CIC_ERR_SSL_BAD_SECRET_KEY_LEN = 29021,
-  NZERROR_CIC_ERR_SSL_BAD_SIDE = 29022,
-  NZERROR_CIC_ERR_SSL_BUFFERS_NOT_EMPTY = 29023,
-  NZERROR_CIC_ERR_SSL_CERTIFICATE_VALIDATE_FAILED = 29024,
-  NZERROR_CIC_ERR_SSL_CERT_CHECK_CALLBACK = 29025,
-  NZERROR_CIC_ERR_SSL_DECRYPT_FAILED = 29026,
-  NZERROR_CIC_ERR_SSL_ENTROPY_COLLECTION = 29027,
-  NZERROR_CIC_ERR_SSL_FAIL_SERVER_VERIFY = 29028,
-  NZERROR_CIC_ERR_SSL_HANDSHAKE_ALREADY_COMPLETED = 29029,
-  NZERROR_CIC_ERR_SSL_HANDSHAKE_REQUESTED = 29030,
-  NZERROR_CIC_ERR_SSL_HANDSHAKE_REQUIRED = 29031,
-  NZERROR_CIC_ERR_SSL_INCOMPLETE_IDENTITY = 29032,
-  NZERROR_CIC_ERR_SSL_INVALID_PFX = 29033,
-  NZERROR_CIC_ERR_SSL_NEEDS_CIPHER_OR_CLIENTAUTH = 29034,
-  NZERROR_CIC_ERR_SSL_NEEDS_PRNG = 29035,
-  NZERROR_CIC_ERR_SSL_NOT_SUPPORTED = 29036,
-  NZERROR_CIC_ERR_SSL_NO_CERTIFICATE = 29037,
-  NZERROR_CIC_ERR_SSL_NO_MATCHING_CERTIFICATES = 29038,
-  NZERROR_CIC_ERR_SSL_NO_MATCHING_CIPHER_SUITES = 29039,
-  NZERROR_CIC_ERR_SSL_NO_SUPPORTED_CIPHER_SUITES = 29040,
-  NZERROR_CIC_ERR_SSL_NULL_CB = 29041,
-  NZERROR_CIC_ERR_SSL_READ_BUFFER_NOT_EMPTY = 29042,
-  NZERROR_CIC_ERR_SSL_READ_REQUIRED = 29043,
-  NZERROR_CIC_ERR_SSL_RENEGOTIATION_ALREADY_REQUESTED = 29044,
-  NZERROR_CIC_ERR_SSL_RENEGOTIATION_REFUSED = 29045,
-  NZERROR_CIC_ERR_SSL_RESUMABLE_SESSION = 29046,
-  NZERROR_CIC_ERR_SSL_TLS_EXTENSION_MISMATCH = 29047,
-  NZERROR_CIC_ERR_SSL_UNEXPECTED_MSG = 29048,
-  NZERROR_CIC_ERR_SSL_UNKNOWN_RECORD = 29049,
-  NZERROR_CIC_ERR_SSL_UNSUPPORTED_CLIENT_AUTH_MODE = 29050,
-  NZERROR_CIC_ERR_SSL_UNSUPPORTED_PUBKEY_TYPE = 29051,
-  NZERROR_CIC_ERR_SSL_WRITE_BUFFER_NOT_EMPTY = 29052,
-  NZERROR_CIC_ERR_PKCS12_MISSING_ALG = 29053,
-  NZERROR_CIC_ERR_PKCS_AUTH_FAILED = 29054,
-  NZERROR_CIC_ERR_PKCS_BAD_CONTENT_TYPE = 29055,
-  NZERROR_CIC_ERR_PKCS_BAD_INPUT = 29056,
-  NZERROR_CIC_ERR_PKCS_BAD_PADDING = 29057,
-  NZERROR_CIC_ERR_PKCS_BAD_SN = 29058,
-  NZERROR_CIC_ERR_PKCS_BAD_SN_LENGTH = 29059,
-  NZERROR_CIC_ERR_PKCS_BAD_VERSION = 29060,
-  NZERROR_CIC_ERR_PKCS_BASE = 29061,
-  NZERROR_CIC_ERR_PKCS_FIELD_NOT_PRESENT = 29062,
-  NZERROR_CIC_ERR_PKCS_NEED_CERTVAL = 29063,
-  NZERROR_CIC_ERR_PKCS_NEED_PASSWORD = 29064,
-  NZERROR_CIC_ERR_PKCS_NEED_PKC = 29065,
-  NZERROR_CIC_ERR_PKCS_NEED_PRV_KEY = 29066,
-  NZERROR_CIC_ERR_PKCS_NEED_TRUSTED = 29067,
-  NZERROR_CIC_ERR_PKCS_UNSUPPORTED_CERT_FORMAT = 29068,
-  NZERROR_CIC_ERR_PKCS_UNSUP_PRVKEY_TYPE = 29069,
-  NZERROR_CIC_ERR_CODING_BAD_PEM = 29070,
-  NZERROR_CIC_ERR_CODING_BASE = 29071, 
-  NZERROR_CIC_ERR_DER_BAD_ENCODING = 29072,
-  NZERROR_CIC_ERR_DER_BAD_ENCODING_LENGTH = 29073,
-  NZERROR_CIC_ERR_DER_BASE = 29074,
-  NZERROR_CIC_ERR_DER_ELEMENT_TOO_LONG = 29075,
-  NZERROR_CIC_ERR_DER_INDEFINITE_LENGTH = 29076,
-  NZERROR_CIC_ERR_DER_NO_MORE_ELEMENTS = 29077,
-  NZERROR_CIC_ERR_DER_OBJECT_TOO_LONG = 29078,
-  NZERROR_CIC_ERR_DER_TAG_SIZE = 29079,
-  NZERROR_CIC_ERR_DER_TIME_OUT_OF_RANGE = 29080,
-  NZERROR_CIC_ERR_DER_UNUSED_BITS_IN_BIT_STR = 29081,
-  NZERROR_CIC_ERR_GENERAL_BASE = 29082,
-  NZERROR_CIC_ERR_HASH_BASE = 29083,
-  NZERROR_CIC_ERR_ILLEGAL_PARAM = 29084,
-  NZERROR_CIC_ERR_MEM_NOT_OURS = 29085,
-  NZERROR_CIC_ERR_MEM_OVERRUN = 29086,
-  NZERROR_CIC_ERR_MEM_UNDERRUN = 29087,
-  NZERROR_CIC_ERR_MEM_WAS_FREED = 29088,
-  NZERROR_CIC_ERR_NOT_FOUND = 29090,
-  NZERROR_CIC_ERR_NO_PTR = 29091,
-  NZERROR_CIC_ERR_TIMEOUT = 29092,
-  NZERROR_CIC_ERR_UNIT_MASK = 29093,
-  NZERROR_CIC_ERR_BAD_CTX = 29094,
-  NZERROR_CIC_ERR_BAD_INDEX = 29095,
-  NZERROR_CIC_ERR_BAD_LENGTH = 29096,
-  NZERROR_CIC_ERR_CODING_BAD_ENCODING = 29097,
-
-  /* ============>>> PKCS12 error 29100 - 29149  */
-  
-  NZERROR_LOCKEYID_CREATE_FAILED = 29100,
-  NZERROR_P12_ADD_PVTKEY_FAILED = 29101,
-  NZERROR_P12_ADD_CERT_FAILED = 29102,
-  NZERROR_P12_WLT_CREATE_FAILED = 29103,
-  NZERROR_P12_ADD_CERTREQ_FAILED = 29104,
-  NZERROR_P12_WLT_EXP_FAILED = 29105,
-  NZERROR_P12_WLT_IMP_FAILED = 29106,
-  NZERROR_P12_CREATE_FAILED = 29107,
-  NZERROR_P12_DEST_FAILED = 29107,
-  NZERROR_P12_RAND_ERROR = 29108, 
-  NZERROR_P12_PVTKEY_CRT_FAILED = 29109,
-  NZERROR_P12_INVALID_BAG = 29110,
-  NZERROR_P12_INVALID_INDEX = 29111,
-  NZERROR_P12_GET_CERT_FAILED = 29112,
-  NZERROR_P12_GET_PVTKEY_FAILED = 29113,
-  NZERROR_P12_IMP_PVTKEY_FAILED = 29114,
-  NZERROR_P12_EXP_PVTKEY_FAILED = 29115,
-  NZERROR_P12_GET_ATTRIB_FAILED = 29116,
-  NZERROR_P12_ADD_ATTRIB_FAILED = 29117,
-  NZERROR_P12_CRT_ATTRIB_FAILED = 29118,
-  NZERROR_P12_IMP_CERT_FAILED = 29119,
-  NZERROR_P12_EXP_CERT_FAILED = 29120,
-  NZERROR_P12_ADD_SECRET_FAILED = 29121,
-  NZERROR_P12_ADD_PKCS11INFO_FAILED = 29122,
-  NZERROR_P12_GET_PKCS11INFO_FAILED = 29123,
-  NZERROR_P12_MULTIPLE_PKCS11_LIBNAME = 29124,
-  NZERROR_P12_MULTIPLE_PKCS11_TOKENLABEL = 29125,
-  NZERROR_P12_MULTIPLE_PKCS11_TOKENPASSPHRASE = 29126,
-  NZERROR_P12_UNKNOWN_PKCS11INFO = 29127,
-  NZERROR_P12_PKCS11_LIBNAME_NOT_SET = 29128,
-  NZERROR_P12_PKCS11_TOKENLABEL_NOT_SET = 29129,
-  NZERROR_P12_PKCS11_TOKENPASSPHRASE_NOT_SET = 29130,
-
-/* ===========>>> SSL Errors CONTINUED 29135 - 29139 */
-  NZERROR_CIC_ERR_RANDOM = 29135,
-  NZERROR_CIC_ERR_SMALL_BUFFER = 29136,
-  NZERROR_CIC_ERR_SSL_BAD_CONTEXT = 29137,
-
-/* ==========>>> Mutex Errors 29138 - 29139 */
-  NZERROR_MUTEX_INITIALIZE_FAILED = 29138,
-  NZERROR_MUTEX_DESTROY_FAILED = 29139,
-
-
-/* ============>>> EXTENSIONS Errors 29140 - 29149 */
-  NZERROR_BS_CERTOBJ_CREAT_FAILED = 29140,
-  NZERROR_BS_DER_IMP_FAILED = 29141,
-
-
-/* ============>>> FIPS ERRORS 29150 - 29175 */
-  NZERROR_DES_SELF_TEST_FAILED = 29150,
-  NZERROR_3DES_SELF_TEST_FAILED = 29151,
-  NZERROR_SHA_SELF_TEST_FAILED = 29152,
-  NZERROR_RSA_SELF_TEST_FAILED = 29153,
-  NZERROR_DRNG_SELF_TEST_FAILED = 29154,
-  NZERROR_CKEYPAIR_SELF_TEST_FAILED = 29155,
-  NZERROR_CRNG_SELF_TEST_FAILED = 29156,
-  NZERROR_FIPS_PATHNAME_ERROR = 29157,
-  NZERROR_FIPS_LIB_OPEN_FAILED = 29158,
-  NZERROR_FIPS_LIB_READ_ERROR = 29159,
-  NZERROR_FIPS_LIB_DIFFERS = 29160,
-  NZERROR_DAC_SELF_TEST_FAILED = 29161,
-  NZERROR_NONFIPS_CIPHERSUITE = 29162,
-  NZERROR_VENDOR_NOT_SUPPORTED_FIPS_MODE = 29163,
-  NZERROR_EXTERNAL_PKCS12_NOT_SUPPORTED_FIPS_MODE = 29164,
-
-/* ============>>> CRL ERRORS 29176 - 29200 */
-  NZERROR_CRL_SIG_VERIFY_FAILED = 29176, /*CRL signature verification failed*/ 
-  NZERROR_CERT_NOT_IN_CRL = 29177, 
-                                 /*Cert is not in CRL - cert is not revoked*/ 
-  NZERROR_CERT_IN_CRL = 29178,           /*Cert is in CRL - cert is revoked*/ 
-  NZERROR_CERT_IN_CRL_CHECK_FAILED = 29179, /*Cert revocation check failed */ 
-  NZERROR_INVALID_CERT_STATUS_PROTOCOL = 29180, 
-  NZERROR_LDAP_OPEN_FAILED = 29181,  /* ldap_open failed */
-  NZERROR_LDAP_BIND_FAILED = 29182,  /* ldap_bind failed */
-  NZERROR_LDAP_SEARCH_FAILED = 29183,  /* ldap_search failed */
-  NZERROR_LDAP_RESULT_FAILED = 29184,  /* ldap_result failed */
-  NZERROR_LDAP_FIRSTATTR_FAILED = 29185,  /* ldap_first_attribute failed */
-  NZERROR_LDAP_GETVALUESLEN_FAILED = 29186,  /* ldap_get_values_len failed */
-  NZERROR_LDAP_UNSUPPORTED_VALMEC = 29187, 
-                                       /* unsupported validation mechanism */
-  NZERROR_LDAP_COUNT_ENTRIES_FAILED = 29188,/* ldap_count_entries failed */
-  NZERROR_LDAP_NO_ENTRY_FOUND = 29189, /* No entry found in OID */
-  NZERROR_LDAP_MULTIPLE_ENTRIES_FOUND = 29190, /* Multiple entries in OID*/
-  NZERROR_OID_INFO_NOT_SET = 29191, 
-  NZERROR_LDAP_VALMEC_NOT_SET = 29192,  
-                                     /* Validation mechanism not set in OID*/
-  NZERROR_CRLDP_NO_CRL_FOUND = 29193,  
-                                     /* No CRL found using CRLDP mechanism */
-  NZERROR_CRL_NOT_IN_CACHE = 29194,  /* No CRL found in the cache*/
-  NZERROR_CRL_EXPIRED = 29195,       /* CRL nextUpdate time is in the past */
-
-/* ============>>>  ADD ERRORS HERE -- NOTE DECREASING numbers */
-  NZERROR_DN_MATCH  =            29222,  /* for nztCompareDN */
-  NZERROR_CERT_CHAIN_CREATION  = 29223,  /* unable to create a cert chain
-					  * with the existing TPs for the 
-					  * cert to be installed. 
-					  */
-  NZERROR_NO_MATCHING_CERT_REQ = 29224,  /* No matching cert_req was 
-					  * found the corresponding to
-					  * the privatekey which
-					  * matches the cert to be
-					  * installed */
-  NZERROR_CERT_ALREADY_INSTALLED = 29225, /* we are attempting to
-					   * install a cert again into
-					   * a persona which already 
-					   * has it installed.
-					   */
-  NZERROR_NO_MATCHING_PRIVATE_KEY = 29226, /* could not find a matching 
-					    * persona-private(privatekey) in
-					    * the Persona, for the given
-					    * cert(public key). 
-					    */
-  NZERROR_VALIDITY_EXPIRED = 29227, /* certificate validity date expired */
-  NZERROR_TK_BYTES_NEEDED = 29228,   /* Couldn't determine # of bytes needed */
-  NZERROR_TK_BAD_MAGIC_NUMBER = 29229,
-                     /* Magic number found in header does not match expected */
-  NZERROR_TK_BAD_HEADER_LENGTH = 29230,
-                /* Header length passed in not sufficient for message header */
-  NZERROR_TK_CE_INIT = 29231,          /* Crypto engine failed to initialize */
-  NZERROR_TK_CE_KEYINIT = 29232,  /* Crypto engine key initialization failed */
-  NZERROR_TK_CE_ENCODE_KEY = 29233,           /* Count not encode key object */
-  NZERROR_TK_CE_DECODE_KEY = 29234,      /* Could not decode key into object */
-  NZERROR_TK_CE_GEYKEYINFO = 29235,  /* Crypto engine failed to get key info */
-  NZERROR_TK_SEED_RANDOM = 29236,   /* Couldn't seed random number generator */
-  NZERROR_TK_CE_ALGFINISH = 29237,              /* Couldn't finish algorithm */
-  NZERROR_TK_CE_ALGAPPLY = 29238,        /* Couldn't apply algorithm to data */
-  NZERROR_TK_CE_ALGINIT = 29239,           /* Couldn't init CE for algorithm */
-  NZERROR_TK_ALGORITHM = 29240,      /* Have no idea what algorithm you want */
-  NZERROR_TK_CANNOT_GROW = 29241,         /* Cannot grow output buffer block */
-  NZERROR_TK_KEYSIZE = 29242,               /* Key not large enough for data */
-  NZERROR_TK_KEYTYPE = 29243,                           /* Unknown key type. */
-
-  NZERROR_TK_PLSQL_NO_WRL = 29244,
-                 /* Wallet resource locator not specified to PL/SQL function */
-
-  NZERROR_TK_CE_FUNC = 29245,              /* Unknown crypto engine function */
-  NZERROR_TK_TDU_FORMAT = 29246,                       /* Unknown TDU format */
-  NZERROR_TK_NOTOPEN = 29247,                         /* Object must be open */
-  NZERROR_TK_WRLTYPE = 29248,                                /* Bad WRL type */
-  NZERROR_TK_CE_STATE = 29249,  /* Bad state specified for the crypto engine */
-
-  /* After 29249, use error numbers in block 43000 - 43499 */
-  NZERROR_PKCS11_LIBRARY_NOT_FOUND = 43000, /* PKCS #11 library not found */
-  NZERROR_PKCS11_TOKEN_NOT_FOUND = 43001, 
-                                         /* can't find token with given label*/
-  NZERROR_PKCS11_BAD_PASSPHRASE = 43002,  /* passphrase is incorrect/expired */
-  NZERROR_PKCS11_GET_FUNC_LIST = 43003,  /* C_GetFunctionList returned error */
-  NZERROR_PKCS11_INITIALIZE = 43004,     /* C_Initialize returned error */
-  NZERROR_PKCS11_NO_TOKENS_PRESENT = 43005, /* No tokens present */
-  NZERROR_PKCS11_GET_SLOT_LIST = 43006,  /* C_GetSlotList returned error */
-
-  NZERROR_PKCS11_GET_TOKEN_INFO = 43008,  /* C_GetTokenInfo returned error */
-  NZERROR_PKCS11_SYMBOL_NOT_FOUND = 43009, /* Symbol not found in PKCS11 lib */
-
-  NZERROR_PKCS11_TOKEN_LOGIN_FAILED = 43011, /* Token login failed */
-
-  NZERROR_PKCS11_CHANGE_PROVIDERS_ERROR = 43013, /* Change providers error */
-  NZERROR_PKCS11_GET_PRIVATE_KEY_ERROR = 43014, 
-                              /* Error trying to find private key on token */
-  NZERROR_PKCS11_CREATE_KEYPAIR_ERROR = 43015, /* Key pair gen error */
-  NZERROR_PKCS11_WALLET_CONTAINS_P11_INFO = 43016, /* Wallet already contains
-                                                      pkcs11 info */
-
-  /* RSA ERRORS 43050 - 43059 */
-  NZERROR_BIND_SERVICE_ERROR = 43050,    /* C_BindService returned error */
-  NZERROR_CREATE_KEY_OBJ_ERROR = 43051,  /* B_CreateKeyObject returned error */
-  NZERROR_GET_CERT_FIELDS = 43052,       /* C_GetCertFields returned error */
-  NZERROR_CREATE_PKCS10_OBJECT = 43053,  
-                                      /* C_CreatePKCS10Object returned error */
-  NZERROR_SET_PKCS10_FIELDS = 43054,     /* C_SetPKCS10Fields returned error */
-  NZERROR_SIGN_CERT_REQUEST = 43055,     /* C_SignCertRequest returned error */
-  NZERROR_GET_PKCS10_DER = 43056,        /* C_GetPKCS10DER returned error */
-  NZERROR_INITIALIZE_CERTC = 43057,      /* C_InitializeCertC returned error */
-  NZERROR_INSERT_PRIVATE_KEY = 43058,   /* C_InsertPrivateKey returned error */
-  /* slts ERRORS 43060 - 43069 */
-  NZERROR_SLTSCTX_INIT_FAILED = 43060,    /* sltsini() returned error */
-  NZERROR_SLTSKYC_FAILED = 43061,         /* sltskyc() returned error */
-  NZERROR_SLTSCTX_TERM_FAILED = 43062,    /* sltster() returned error */
-  NZERROR_SLTSKYS_FAILED = 43063,         /* sltskys() returned error */
-
-  NZERROR_INVALID_HEADER_LENGTH = 43070,       /* bad sso header length */
-
-  NZERROR_LAST_ERROR = 43499,                        /* Last available error */
-                                            /* MAXIMUM ERROR NUMBER IS 43499 */
-
-  /*
-   * DO NOT JUST INSERT NEW ERRORS IN ANY OLD PLACE.  New errors should be
-   * added such the current error retains their integer values. Duplicate
-   * values will cause compiler errors.
-   */
-  NZERROR_THIS_MUST_BE_LAST
-
-} nzerror;
-
-/*
- * Macro to convert SSL errors to Oracle errors. As SSL errors are negative
- * and Oracle numbers are positive, the following needs to be done.
- * 1. The base error number, which is the highest, is added to the
- *    SSL error to get the index into the number range.
- * 2. The result is added to the base Oracle number to get the Oracle error.
- */
-#define NZERROR_SSL_TO_ORACLE(ssl_error_) \
-  ((ssl_error_ == SSLNoErr) \
-   ? NZERROR_OK \
-   : (nzerror) ((ssl_error_ - SSLMemoryErr) + (uword) NZERROR_SSLMemoryErr))
-#endif /* NZERROR_ORACLE */ 
diff --git a/src/terralib/drivers/Oracle/OCI/include/nzt.h b/src/terralib/drivers/Oracle/OCI/include/nzt.h
deleted file mode 100644
index 251d9c7..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/nzt.h
+++ /dev/null
@@ -1,2750 +0,0 @@
-/* DISABLE check_long_lines */
-
-/* Copyright (c) 1996, 2003, Oracle Corporation.  All rights reserved.  */
-/* Copyright (c) 1996, 2003, Oracle Corporation.  All rights reserved.  */
-
-/*
- * $Header$ 
- */
-
-/* 
- * NAME
- *    nzt.h
- * 
- * DESCRIPTION
- *    Toolkit public declarations.
- *    
- * PUBLIC FUNCTIONS
- *    nztwOpenWallet           - Open a wallet based on a WRL and pwd.
- *    nztwCloseWallet          - Close a wallet.
- * +  nztwCreateWallet         - Create a new wallet.
- * +  nztwDestroyWallet        - Destroy an existing wallet.
- *    nztwRetrievePersonaCopy  - Retieve a copy of a particular persona.
- * +  nzteStorePersona         - Store a persona in the wallet.
- *    nzteOpenPersona          - Open a persona.
- *    nzteClosePersona         - Close a persona.
- * +  nzteRemovePersona        - Remove a persona from a wallet.
- * +  nzteCreatePersona        - Create a persona.
- *    nzteDestroyPersona       - Destroy a persona.
- *    nztiStoreTrustedIdentity - Store an identity with associated trust.
- *    nzteRetrieveTrustedIdentCopy - Retrieves a trusted identity from persona
- * +  nzteSetProtection        - Modify the protection set in a persona.
- * +  nzteGetProtection        - Get the protection set in a persona
- *    nztePriKey               - Get the Private Key (X509 Only)
- *    nzteMyCert               - Get the Certificate (X509 only)
- *    nzteX509CreatePersona    - Create a persona given an X509 Certificate.
- * +  nztiRemoveIdentity       - Remove an identity from a persona.
- *    nztiCreateIdentity       - Create an identity.
- *    nztiDuplicateIdentity    - Create a complete copy of an identity.
- *    nztiAbortIdentity        - Discard an unstored identity.
- *    nztidGetIdentityDesc     - Gets Identity Description from Identity.
- *    nztidFreeIdentityDesc    - Frees memory for Identity Desc object.
- *    nztSign                  - Generate an attached signature.
- * +  nztxSignExpansion        - Determine size of signature.
- *    nztVerify                - Verify an attached signature.               
- *    nztValidate              - Validate an identity.                       
- *    nztsd_SignDetached       - Generate a detached signature.
- * +  nztxsd_SignDetachedExpansion - Determine size of detached signature.
- *    nztved_VerifyDetached    - Verify a detached signature.                 
- * +  nztEncrypt               - Symmetric key encryption.   
- * +  nztxEncryptExpansion     - Determine the tdu length for encryption.
- * +  nztDecrypt               - Symmetric key decryption.                   
- * +  nztEnvelope              - Sign then encrypt data for recipient(s).    
- * +  nztDeEnvelope            - Reverse nztEnvelope.                        
- * +  nztKeyedHash             - Generate keyed hash.                        
- * +  nztxKeyedHashExpansion   - Determine size of TDU for keyed hash.
- *    nztHash                  - Generate hash.   
- * +  nztxHashExpansion        - Determine the size of the TDU for a hash.
- *    nztSeedRandom            - See the random number generator.
- *    nztrb_RandomBytes        - Generate a series of random bytes.          
- *    nztrn_RandomNumber       - Generate a random number.                   
- *    nztbbInitBlock           - Initialize a buffer block.                  
- *    nztbbReuseBlock          - Reuse a buffer block.           
- *    nztbbSizeBlock           - Find the size of the buffer block.
- *    nztbbGrowBlock           - Grow initialized buffer block by 'inc' bytes.
- *    nztbbPurgeBlock          - Purge the memory used within a buffer block.
- *    nztbbSetBlock            - Set block to known state.
- *    nztkec_PKEncrypt         - Encrypt data then encrypt key for recipient.
- *    nztkdc_PKDecrypt         - Decrypt PKEncrypt'ed data.                  
- *    nztific_FreeIdentityContent - Free the contents of an identity.
- *    nztifdn                  - Create an identity from a distinguished name
- *    nztcts_CipherSpecToStr   - Converts the Cipher Spec Code To String
- *    nztiae_IsAuthEnabled     - Checks to see if Authentication is Enabled
- *                               in the current Cipher Spec.
- *    nztiae_IsEncrEnabled     - Checks to see if Encryption is Enabled
- *                               in the current Cipher Spec.
- *    nztiae_IsHashEnabled     - Checks to see if Hashing is Enabled
- *                               in the current Cipher Spec.
- *    nztwGetCertInfo          - Get peer certificate info
- *
- * NOTE: the '+' indicates that these functions are UNSUPPORTED at this time.
- * 
- * NOTES
- *    
- * MODIFIED
- *    srtata     11/10/03 - fix nztSetAppDefaultLocation header 
- *    rchahal    10/15/03 - bug 2513821 
- *    rchahal    11/11/02 - pkcs11 support
- *    akoyfman   07/05/02 - adding secret store to persona
- *    supriya    10/11/01 - Fix for bug # 2015732
- *    ajacobs    04/04/01 - make NZT_REGISTRY_WRL always available
- *    ajacobs    03/06/01 - olint fix
- *    ajacobs    03/02/01 - Add GetCertInfo
- *    supriya    02/23/01 - Move nzttKPUsage from nzt0.h
- *    rchahal    01/26/01 - olint fixes
- *    supriya    12/07/00 - Change fn name
- *    supriya    12/01/00 - Certificate API's needed for iAS
- *    supriya    06/19/00 - Adding definitions for MCS and ENTR
- *    lkethana   05/31/00 - multiple cert support
- *    skanjila   06/25/99 - Remove nztcts_CipherSpecToStr() to NZOS.
- *    skanjila   06/23/99 - Change API of nztcts_CipherSpecToStr.
- *    lkethana   06/18/99 - rem nztIPrivateAlloc, etc
- *    lkethana   06/10/99 - changing size_t to ub4
- *    lkethana   06/02/99 - add api for getting auth/encry/hash capability of c
- *    arswamin   12/28/98 - add NZT_MAX_MD5.
- *    arswamin   12/21/98 - change signature of compareDN
- *    qdinh      12/21/98 - change size_t to ub4.
- *    inetwork   11/22/98 - Removing NZDEPRECATED definition
- *    amthakur   09/14/98 - deprecating and updating the c-structures.
- *    arswamin   09/24/98 - adding NZTTWRL_NULL for SSO support.
- *    amthakur   07/30/98 - changing the prototype of nztGetCertChain.
- *    qdinh      05/01/98 - add NZTTIDENTTYPE_INVALID_TYPE
- *    qdinh      04/17/98 - add NZTTWRL_ORACLE.
- *    ascott     10/08/97 - implement nztiStoreTrustedIdentity
- *    ascott     10/07/97 - add nztiGetIdentityDesc
- *    ascott     09/28/97 - clarify prototype comments and error codes
- *    ascott     09/05/97 - update identity: create, destroy, duplicate
- *    ascott     08/21/97 - add GetCert and GetPriKey
- *    ascott     08/07/97 - add other WRL settings
- *    asriniva   03/25/97 - Add ANSI prototypes
- *    rwessman   03/19/97 - Added prototypes for nztific_FreeIdentityContent()
- *    asriniva   03/11/97 - Fix olint errors
- *    sdange     02/28/97 - Removed inclusion of nz0decl.h
- *    sdange     02/18/97 - Moved nzt specific declarations from nz0decl.h
- *    asriniva   01/21/97 - Remove prototypes.
- *    asriniva   10/31/96 - Include oratypes.h
- *    asriniva   10/15/96 - Declare buffer block helper functions
- *    asriniva   10/08/96 - First pass at wallet open/close
- *    asriniva   10/04/96 - Add random number seed function
- *    asriniva   10/03/96 - Reorder parameters in nztbbSetBlock
- *    asriniva   10/03/96 - Keep editing.
- *    asriniva   10/03/96 - Continued edits.
- *    asriniva   10/02/96 - Continue editing.
- *    asriniva   09/26/96 -
- */
-   
-/* ENABLE check_long_lines */
-
-#ifndef NZT_ORACLE
-#define NZT_ORACLE
-
-#ifndef ORATYPES
-# include <oratypes.h>
-#endif /* ORATYPES */
-
-#ifndef NZERROR_ORACLE
-# include <nzerror.h>         /* NZ error type */
-#endif /* NZERROR_ORACLE */
-
-
-#define NZT_MAX_SHA1 20
-#define NZT_MAX_MD5  16
-
-/***************************************/
-/* PUBLIC CONSTANTS, MACROS, AND TYPES */
-/***************************************/
-
-/*
- * Wallet Resource Locator Type Strings
- *
- * WRL TYPE        PARAMETERS      BEHAVIOR
- * ========        ==========      =====================================
- * default:          <none>        Uses directory defined by the parameter
- *                                 SNZD_DEFAULT_FILE_DIRECTORY which in 
- *                                 unix is "$HOME/oracle/oss"
- * 
- * file:            file path      Find the Oracle wallet in this directory.
- *                                 example: file:<dir-path>
- * 
- * sqlnet:           <none>        In this case, the directory path will be 
- *                                 retrieved from the sqlnet.ora file under
- *                                 the oss.source.my_wallet parameter.
- *
- * mcs:              <none>        Microsoft WRL.
- *
- * entr:             dir path      Entrust WRL. eg: ENTR:<dir-path>   
- * 
- */
-/* Note that there is no NZT_NULL_WRL.  Instead look in snzd.h for DEFAULT_WRP
- * which is used in our new defaulting mechanism.  The NZT_DEFAULT_WRL
- * should be deprecated.
- */
-#define NZT_DEFAULT_WRL    ((text *)"default:")
-#define NZT_SQLNET_WRL     ((text *)"sqlnet:")
-#define NZT_FILE_WRL       ((text *)"file:")
-#define NZT_ENTR_WRL       ((text *)"entr:")
-#define NZT_MCS_WRL        ((text *)"mcs:")
-#define NZT_ORACLE_WRL	   ((text *)"oracle:")
-#define NZT_REGISTRY_WRL   ((text *)"reg:")
-          
-enum nzttwrl 
-{
-   NZTTWRL_DEFAULT = 1,    /* Default, use SNZD_DEFAULT_FILE_DIRECTORY */
-   NZTTWRL_SQLNET,         /* Use oss.source.my_wallet in sqlnet.ora file */
-   NZTTWRL_FILE,           /* Find the oracle wallet in this directory */
-   NZTTWRL_ENTR,           /* Find the entrust profile in this directory */
-   NZTTWRL_MCS,            /* WRL for Microsoft */
-   NZTTWRL_ORACLE,	   /* Get the wallet from OSS db */
-   NZTTWRL_NULL,           /* New SSO defaulting mechanism */
-   NZTTWRL_REGISTRY        /* Find the wallet in Windows Registry */
-};
-typedef enum nzttwrl nzttwrl;
-
-#ifndef NZ0DECL_ORACLE
-   /*
-    * With the elimination of nz0decl.h from public, we need this
-    * redundant typedef.
-    */
-   typedef struct nzctx nzctx;
-   typedef struct nzstrc nzstrc;
-   typedef struct nzosContext nzosContext;
-#endif /* NZ0DECL_ORACLE */
-
-/* Moved from nz0decl.h */
-
-typedef struct nzttIdentity nzttIdentity;
-typedef struct nzttIdentityPrivate nzttIdentityPrivate;
-typedef struct nzttPersona nzttPersona;
-typedef struct nzttPersonaPrivate nzttPersonaPrivate;
-typedef struct nzttWallet nzttWallet;
-typedef struct nzttWalletPrivate nzttWalletPrivate;
-typedef struct nzttWalletObj nzttWalletObj; /* For wallet object */
-typedef struct nzssEntry nzssEntry; /* For secretstore */
-typedef struct nzpkcs11_Info nzpkcs11_Info;
-
-/*
- * Crypto Engine State
- *
- * Once the crypto engine (CE) has been initialized for a particular
- * cipher, it is either at the initial state, or it is continuing to
- * use the cipher.  NZTCES_END is used to change the state back to
- * initialized and flush any remaining output.  NZTTCES_RESET can be
- * used to change the state back to initialized and throw away any
- * remaining output.
- */
-enum nzttces 
-{
-   NZTTCES_CONTINUE = 1,    /* Continue processing input */
-   NZTTCES_END,             /* End processing input */
-   NZTTCES_RESET            /* Reset processing and skip generating output */
-};
-typedef enum nzttces nzttces;
-
-/*
- * Crypto Engine Functions
- *
- * List of crypto engine categories; used to index into protection
- * vector.
- */
-enum nzttcef
-{
-   NZTTCEF_DETACHEDSIGNATURE = 1,   /* Signature, detached from content */
-   NZTTCEF_SIGNATURE,               /* Signature combined with content */
-   NZTTCEF_ENVELOPING,              /* Signature and encryption with content */
-   NZTTCEF_PKENCRYPTION,            /* Encryption for one or more recipients */
-   NZTTCEF_ENCRYPTION,              /* Symmetric encryption */
-   NZTTCEF_KEYEDHASH,               /* Keyed hash/checkusm */
-   NZTTCEF_HASH,                    /* Hash/checsum */
-   NZTTCEF_RANDOM,                  /* Random byte generation */
-
-   NZTTCEF_LAST                     /* Used for array size */
-};
-typedef enum nzttcef nzttcef;
-
-/*
- * State of the persona.
- */
-enum nzttState
-{
-   NZTTSTATE_EMPTY = 0,     /* is not in any state(senseless???) */
-   NZTTSTATE_REQUESTED,     /* cert-request */
-   NZTTSTATE_READY,         /* certificate */
-   NZTTSTATE_INVALID,         /* certificate */
-   NZTTSTATE_RENEWAL        /* renewal-requested */
-};
-typedef enum nzttState nzttState;
-
-/*
- * Cert-version types
- * 
- * This is used to quickly look-up the cert-type
- */
-enum nzttVersion
-{
-   NZTTVERSION_X509v1 = 1,        /* X.509v1 */
-   NZTTVERSION_X509v3,            /* X.509v3 */
-#ifdef NZDEPRECATED
-   NZTTVERSION_SYMMETRIC,         /* Symmetric */
-#endif
-   NZTTVERSION_INVALID_TYPE       /* For Initialization */
-};
-typedef enum nzttVersion nzttVersion;
-
-/*
- * Cipher Types
- *
- * List of all cryptographic algorithms, some of which may not be
- * available.
- */
-enum nzttCipherType 
-{
-   NZTTCIPHERTYPE_RSA = 1,          /* RSA public key */
-   NZTTCIPHERTYPE_DES,              /* DES */
-   NZTTCIPHERTYPE_RC4,              /* RC4 */
-   NZTTCIPHERTYPE_MD5DES,           /* DES encrypted MD5 with salt (PBE) */
-   NZTTCIPHERTYPE_MD5RC2,           /* RC2 encrypted MD5 with salt (PBE) */
-   NZTTCIPHERTYPE_MD5,              /* MD5 */
-   NZTTCIPHERTYPE_SHA               /* SHA */
-};
-typedef enum nzttCipherType nzttCipherType;
-
-/*
- * TDU Formats
- *
- * List of possible toolkit data unit (TDU) formats.  Depending on the
- * function and cipher used some may be not be available.
- */
-enum nztttdufmt
-{
-   NZTTTDUFMT_PKCS7 = 1,            /* PKCS7 format */
-   NZTTTDUFMT_RSAPAD,               /* RSA padded format */
-   NZTTTDUFMT_ORACLEv1,             /* Oracle v1 format */
-   NZTTTDUFMT_LAST                  /* Used for array size */
-};
-typedef enum nztttdufmt nztttdufmt;
-
-/*
- * Validate State
- *
- * Possible validation states an identity can be in.
- */
-enum nzttValState
-{
-   NZTTVALSTATE_NONE = 1,        /* Needs to be validated */
-   NZTTVALSTATE_GOOD,            /* Validated */
-   NZTTVALSTATE_REVOKED          /* Failed to validate */
-};
-typedef enum nzttValState nzttValState;
-
-/*
- * Policy Fields <----NEW (09/14/98)
- *
- * Policies enforced
- */
-enum nzttPolicy
-{
-   NZTTPOLICY_NONE = 0,
-   NZTTPOLICY_RETRY_1, /* number of retries for decryption = 1 */
-   NZTTPOLICY_RETRY_2, /* number of retries for decryption = 2 */
-   NZTTPOLICY_RETRY_3  /* number of retries for decryption = 3 */
-};
-typedef enum nzttPolicy nzttPolicy;
-
-/*
- * Persona Usage <----NEW (09/14/98)
- *
- * what a persona will be used for?
- */
-
-#ifdef NZDEPRECATED_MULTIPLECERTS
-enum nzttUsage
-{
-   NZTTUSAGE_NONE = 0,
-   NZTTUSAGE_SSL  /* persona for SSL usage */
-};
-typedef enum nzttUsage nzttUsage;
-#endif
-
-/*
- * Personas and identities have unique id's that are represented with
- * 128 bits.
- */
-typedef ub1 nzttID[16];
-
-/*
- * Identity Types
- *
- * List of all Identity types..
- */
-enum nzttIdentType 
-{
-   NZTTIDENTITYTYPE_INVALID_TYPE = 0,  
-   NZTTIDENTITYTYPE_CERTIFICTAE,      
-   NZTTIDENTITYTYPE_CERT_REQ,      
-   NZTTIDENTITYTYPE_RENEW_CERT_REQ,      
-   NZTTIDENTITYTYPE_CLEAR_ETP,      
-   NZTTIDENTITYTYPE_CLEAR_UTP,      
-   NZTTIDENTITYTYPE_CLEAR_PTP       
-};
-typedef enum nzttIdentType nzttIdentType;
-
-typedef ub4 nzttKPUsage;
-/* IF new types are added nztiMUS should be changed */
-#define NZTTKPUSAGE_NONE 0
-#define NZTTKPUSAGE_SSL 1
-#define NZTTKPUSAGE_SMIME_ENCR 2
-#define NZTTKPUSAGE_SMIME_SIGN 4
-#define NZTTKPUSAGE_CODE_SIGN 8
-#define NZTTKPUSAGE_CERT_SIGN 16
-#define NZTTKPUSAGE_INVALID_USE 0xffff
-
-
-/*
- * Timestamp as 32 bit quantity in UTC.
- */
-typedef ub1 nzttTStamp[4];
-
-/*
- * Buffer Block
- *
- * A function that needs to fill (and possibly grow) an output buffer
- * uses an output parameter block to describe each buffer.
- *
- * The flags_nzttBufferBlock member tells the function whether the
- * buffer can be grown or not.  If flags_nzttBufferBlock is 0, then
- * the buffer will be realloc'ed automatically.  
- *
- * The buflen_nzttBufferBLock member is set to the length of the
- * buffer before the function is called and will be the length of the
- * buffer when the function is finished.  If buflen_nzttBufferBlock is
- * 0, then the initial pointer stored in pobj_nzttBufferBlock is
- * ignored.
- *
- * The objlen_nzttBufferBlock member is set to the length of the
- * object stored in the buffer when the function is finished.  If the
- * initial buffer had a non-0 length, then it is possible that the
- * object length is shorter than the buffer length.
- *
- * The pobj_nzttBufferBlock member is a pointer to the output object.
- */
-struct nzttBufferBlock
-{
-# define NZT_NO_AUTO_REALLOC     0x1
-
-   uword flags_nzttBufferBlock;     /* Flags */
-   ub4 buflen_nzttBufferBlock;   /* Total length of buffer */
-   ub4 usedlen_nzttBufferBlock;  /* Length of used buffer part */
-   ub1 *buffer_nzttBufferBlock;     /* Pointer to buffer */
-};
-typedef struct nzttBufferBlock nzttBufferBlock;
-
-/*
- * Wallet.
- */
-struct nzttWallet
-{
-   ub1 *ldapName_nzttWallet;              /* user's LDAP Name */
-   ub4  ldapNamelen_nzttWallet;           /* len of user's LDAP Name */
-   nzttPolicy securePolicy_nzttWallet;    /* secured-policy of the wallet */
-   nzttPolicy openPolicy_nzttWallet;      /* open-policy of the wallet */
-   nzttPersona *persona_nzttWallet;       /* List of personas in wallet */
-   nzttWalletPrivate *private_nzttWallet; /* Private wallet information */
-#ifdef NZDEPRECATED
-   ub4 npersona_nzttWallet;            /* Number of personas */
-#endif
-};
-
-/*
- * The wallet contains, one or more personas.  A persona always
- * contains its private key and its identity.  It may also contain
- * other 3rd party identites.  All identities qualified with trust
- * where the qualifier can indicate anything from untrusted to trusted
- * for specific operations.
- */
-
-/*
- * Persona
- *
- * Structure containing information about a persona.
- */
-struct nzttPersona
-{
-   ub1 *genericName_nzttPersona;              /* user-friendly persona name  */
-   ub4  genericNamelen_nzttPersona;           /* persona-name length */
-   nzttPersonaPrivate *private_nzttPersona;   /* Opaque part of persona */
-   nzttIdentity *mycertreqs_nzttPersona;      /* My cert-requests */
-   nzttIdentity *mycerts_nzttPersona;         /* My certificates */
-   nzttIdentity *mytps_nzttPersona;           /* List of trusted identities */
-   nzssEntry *mystore_nzttPersona;            /* List of secrets */
-   nzpkcs11_Info *mypkcs11Info_nzttPersona;   /* PKCS11 token info */
-   struct nzttPersona *next_nzttPersona;      /* Next persona */
-#ifdef NZDEPRECATED_MULTIPLECERTS
-  /* As Persona has multiple certs for different
-     usages, Persona Usage does not mean anything. Similarly
-     each key pair has its own state and Persona state itself
-     does not mean anything. - lk 5/31/00
-  */
-   nzttUsage usage_nzttPersona;               /* persona usage; SSL/SET/.. */
-   nzttState state_nzttPersona;               /* persona state-requested/ready */
-   ub4 ntps_nzttPersona;                   /* Num of trusted identities */
-#endif
-};
-
-/*
- * Identity
- *
- * Structure containing information about an identity.
- *
- * NOTE
- *  -- the next_trustpoint field only applies to trusted identities and
- *     has no meaning (i.e. is NULL) for self identities.
- */
-struct nzttIdentity
-{
-   text *dn_nzttIdentity;                      /* Alias */
-   ub4 dnlen_nzttIdentity;                  /* Length of alias */
-   text *comment_nzttIdentity;                 /* Comment  */
-   ub4 commentlen_nzttIdentity;             /* Length of comment */
-   nzttIdentityPrivate *private_nzttIdentity;  /* Opaque part of identity */
-   nzttIdentity *next_nzttIdentity;            /* next identity in list */
-};
-
-struct nzttB64Cert
-{
-   ub1 *b64Cert_nzttB64Cert;
-   ub4  b64Certlen_nzttB64Cert;
-   struct nzttB64Cert *next_nzttB64Cert;
-};
-typedef struct nzttB64Cert nzttB64Cert;
-
-
-struct nzttPKCS7ProtInfo
-{
-   nzttCipherType mictype_nzttPKCS7ProtInfo;    /* Hash cipher */
-   nzttCipherType symmtype_nzttPKCS7ProtInfo;   /* Symmetric cipher */
-   ub4 keylen_nzttPKCS7ProtInfo;             /* Length of key to use */
-};
-typedef struct nzttPKCS7ProtInfo nzttPKCS7ProtInfo;
-
-/*
- * Protection Information.
- *
- * Information specific to a type of protection.
- */
-union nzttProtInfo
-{
-   nzttPKCS7ProtInfo pkcs7_nzttProtInfo;
-};
-typedef union nzttProtInfo nzttProtInfo;
-
-/*
- * A description of a persona so that the toolkit can create one.  A
- * persona can be symmetric or asymmetric and both contain an
- * identity.  The identity for an asymmetric persona will be the
- * certificate and the identity for the symmetric persona will be
- * descriptive information about the persona.  In either case, an
- * identity will have been created before the persona is created.
- *
- * A persona can be stored separately from the wallet that references
- * it.  By default, a persona is stored with the wallet (it inherits
- * with WRL used to open the wallet).  If a WRL is specified, then it
- * is used to store the actuall persona and the wallet will have a
- * reference to it.
- */
-struct nzttPersonaDesc
-{
-   ub4 privlen_nzttPersonaDesc;        /* Length of private info (key)*/
-   ub1 *priv_nzttPersonaDesc;             /* Private information */
-   ub4 prllen_nzttPersonaDesc;         /* Length of PRL */
-   text *prl_nzttPersonaDesc;             /* PRL for storage */
-   ub4 aliaslen_nzttPersonaDesc;       /* Length of alias */
-   text *alias_nzttPersonaDesc;           /* Alias */
-   ub4 longlen_nzttPersonaDesc;        /* Length of longer description*/
-   text *long_nzttPersonaDesc;            /* Longer persona description */
-};
-typedef struct nzttPersonaDesc nzttPersonaDesc;
-
-/*
- * A description of an identity so that the toolkit can create one.
- * Since an identity can be symmetric or asymmetric, the asymmetric
- * identity information will not be used when a symmetric identity is
- * created.  This means the publen_nzttIdentityDesc and
- * pub_nzttIdentityDesc members will not be used when creating a
- * symmetric identity.
- */
-struct nzttIdentityDesc
-{
-   ub4 publen_nzttIdentityDesc;        /* Length of identity */
-   ub1 *pub_nzttIdentityDesc;             /* Type specific identity */
-   ub4 dnlen_nzttIdentityDesc;         /* Length of alias */
-   text *dn_nzttIdentityDesc;             /* Alias */
-   ub4 longlen_nzttIdentityDesc;       /* Length of longer description */
-   text *long_nzttIdentityDesc;           /* Longer description */
-   ub4 quallen_nzttIdentityDesc;       /* Length of trust qualifier */
-   text *trustqual_nzttIdentityDesc;      /* Trust qualifier */
-};
-typedef struct nzttIdentityDesc nzttIdentityDesc;
-
-/********************************/
-/* PUBLIC FUNCTION DECLARATIONS */
-/********************************/
-
-/*---------------------- nztwOpenWallet ----------------------*/
-
-/*
- * NAME
- *    nztwOpenWallet - Open a wallet based on a wallet Resource Locator (WRL).
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context. 
- *    wrllen   {IN}     Length of WRL.
- *    wrl      {IN}     WRL.
- *    pwdlen   {IN}     Length of password.
- *    pwd      {IN}     Password.
- *    wallet   {IN/OUT} Initialized wallet structure.   
- * 
- * NOTES
- *    The syntax for a WRL is <Wallet Type>:<Wallet Type Parameters>.
- *
- *    Wallet Type       Wallet Type Parameters.
- *    -----------       ----------------------
- *    File              Pathname (e.g. "file:/home/asriniva")
- *    Oracle            Connect string (e.g. "oracle:scott/tiger at oss")
- *
- *    There are also defaults.  If the WRL is NZT_DEFAULT_WRL, then
- *    the platform specific WRL default is used.  If only the wallet
- *    type is specified, then the WRL type specific default is used
- *    (e.g. "oracle:")
- *
- *    There is an implication with Oracle that should be stated: An
- *    Oracle based wallet can be implemented in a user's private space
- *    or in world readable space.
- *
- *    When the wallet is opened, the password is verified by hashing
- *    it and comparing against the password hash stored with the
- *    wallet.  The list of personas (and their associated identities)
- *    is built and stored into the wallet structure.
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_RIO_OPEN     RIO could not open wallet (see network trace file).
- *    NZERROR_TK_PASSWORD  Password verification failed.
- *    NZERROR_TK_WRLTYPE   WRL type is not known.
- *    NZERROR_TK_WRLPARM   WRL parm does not match type.
- */
-#ifdef __STDC__
-nzerror nztwOpenWallet(nzctx *, ub4, text *, ub4, text *, 
-                           nzttWallet *);
-#else
-nzerror nztwOpenWallet(/*_ nzctx *, ub4, text *, ub4, text *, 
-                           nzttWallet * _*/);
-#endif /* __STDC __*/
-
-
-/*---------------------- nztwCloseWallet ----------------------*/
-
-/*
- * NAME
- *    nztwCloseWallet - Close a wallet
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    wallet   {IN/OUT} Wallet.
- * 
- * NOTES
- *    Closing a wallet also closes all personas associated with that
- *    wallet.  It does not cause a persona to automatically be saved
- *    if it has changed.  The implication is that a persona can be
- *    modified by an application but if it is not explicitly saved it
- *    reverts back to what was in the wallet.
- *
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_RIO_CLOSE    RIO could not close wallet (see network trace file).
- */
-#ifdef __STDC__
-nzerror nztwCloseWallet(nzctx *, nzttWallet *);
-#else
-nzerror nztwCloseWallet(/*_ nzctx *, nzttWallet * _*/);
-#endif /* __STDC__ */
-
-/*--------------------nztwGetCertInfo----------------------------*/
-/****NOTE: This function is a temporary hack.****/
-/****DO NOT CALL.  It will soon disappear.****/
-nzerror nztwGetCertInfo(/*_ nzctx *nz_context,
-                            nzosContext *nzosCtx,
-                            nzttWallet *walletRef,
-                            void *peerCert _*/);
-
-
-/*------------------------ nztwConstructWallet -----------------------*/
-/*
- * 
- * nzerror nztwConstructWallet( nzctx *oss_context, 	
- *				  nzttPolicy openPolicy,
- *				  nzttPolicy securePolicy,
- *				  ub1 *ldapName,
- *				  ub4 ldapNamelen,
- *				  nzstrc *wrl,
- *				  nzttPersona *personas,
- *				  nzttWallet **wallet );
- */
-
-/*---------------------- nztwRetrievePersonaCopy ----------------------*/
-
-/*
- * NAME
- *    nztwRetrievePersonaCopy - Retrieves a persona based from wallet
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context. 
- *    wallet   {IN}     Wallet.
- *    index    {IN}     Which wallet index to remove (first persona is zero).
- *    persona  {OUT}    Persona found.
- * 
- * NOTES
- *    Retrieves a persona from the wallet based on the index number passed
- *    in.  This persona is a COPY of the one stored in the wallet, therefore
- *    it is perfectly fine for the wallet to be closed after this call is 
- *    made.
- *
- *    The caller is responsible for disposing of the persona when completed.
- *
- * RETURNS
- *    NZERROR_OK           Success.
- */
-#ifdef __STDC__
-nzerror nztwRetrievePersonaCopy(nzctx *, nzttWallet *, ub4, nzttPersona **);
-#else
-nzerror nztwRetrievePersonaCopy(/*_ nzctx *, nzttWallet *, ub4, 
-                           nzttPersona ** _*/);
-#endif /* __STDC __*/
-
-
-/*---------------------- nztwRetrievePersonaCopyByName ----------------------*/
-
-/*
- * NAME
- *    nztwRetrievePersonaCopyByName - Retrieves a persona based on its name.
- *
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    wallet   {IN}     Wallet.
- *    name    {IN}     Name of the persona 
- *    persona  {OUT}    Persona found.
- *
- * NOTES
- *    Retrieves a persona from the wallet based on the name of the persona. 
- *    This persona is a COPY of the one stored in the wallet, therefore
- *    it is perfectly fine for the wallet to be closed after this call is
- *    made.
- *
- *    The caller is responsible for disposing of the persona when completed.
- *
- * RETURNS
- *    NZERROR_OK           Success.
- */
-#ifdef __STDC__
-nzerror nztwRetrievePersonaCopyByName(nzctx *, nzttWallet *, 
-                                      char *, nzttPersona **);
-#else
-nzerror nztwRetrievePersonaCopyByName(/*_ nzctx *, nzttWallet *, char *,
-                           nzttPersona ** _*/);
-#endif /* __STDC __*/
-
-/*---------------------- nzteOpenPersona ----------------------*/
-
-/*
- * NAME
- *    nzteOpenPersona - Open a persona.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context. 
- *    persona  {IN/OUT} Persona.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_PASSWORD  Password failed to decrypt persona.
- *    NZERROR_TK_BADPRL    Persona resource locator did not work.
- *    NZERROR_RIO_OPEN     Could not open persona (see network trace file).
- */
-#ifdef __STDC__
-nzerror nzteOpenPersona(nzctx *, nzttPersona *);
-#else
-nzerror nzteOpenPersona(/*_ nzctx *, nzttPersona * _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nzteClosePersona ---------------------*/
-
-/*
- * NAME
- *    nzteClosePersona - Close a persona.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN/OUT} Persona.
- * 
- * NOTES
- *    Closing a persona does not store the persona, it simply releases
- *    the memory associated with the crypto engine.
- *    
- * RETURNS
- *    NZERROR_OK        Success.
- */
-#ifdef __STDC__
-nzerror nzteClosePersona(nzctx *, nzttPersona *);
-#else
-nzerror nzteClosePersona(/*_ nzctx *, nzttPersona * _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nzteDestroyPersona ---------------------*/
-
-/*
- * NAME
- *    nzteDestroyPersona - Destroy a persona.
- * 
- * PARAMETERS
- *    osscntxt {IN}        OSS context.
- *    persona  {IN/OUT}    Persona.
- * 
- * NOTES
- *    The persona is destroyd in the open state, but it will
- *    not be associated with a wallet.
- *    
- *    The persona parameter is doubly indirect so that at the
- *    conclusion of the function, the pointer can be set to NULL.
- *
- *
- * RETURNS
- *    NZERROR_OK        Success.
- *    NZERROR_TK_TYPE   Unsupported itype/ctype combination.
- *    NZERROR_TK_PARMS  Error in persona description.
- */
-#ifdef __STDC__
-nzerror nzteDestroyPersona(nzctx *,  nzttPersona **);
-#else
-nzerror nzteDestroyPersona(/*_ nzctx *, nzttPersona ** _*/);
-#endif /* __STDC __*/
-
-/*---------------------- nzteRetrieveTrustedIdentCopy ----------------------*/
-
-/*
- * NAME
- *    nzteRetrieveTrustedIdentCopy - Retrieves a trusted identity from persona
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context. 
- *    persona  {IN}     Persona.
- *    index    {IN}     Which wallet index to remove (first element is zero).
- *    identity {OUT}    Trusted Identity from this persona.
- * 
- * NOTES
- *    Retrieves a trusted identity from the persona based on the index 
- *    number passed in.  This identity is a COPY of the one stored in 
- *    the persona, therefore it is perfectly fine to close the persona
- *    after this call is made.
- *
- *    The caller is responsible for freeing the memory of this object 
- *    by calling nztiAbortIdentity it is no longer needed
- *
- * RETURNS
- *    NZERROR_OK           Success.
- */
-#ifdef __STDC__
-nzerror nzteRetrieveTrustedIdentCopy(nzctx *, nzttPersona *, ub4, 
-				     nzttIdentity **);
-#else
-nzerror nzteRetrieveTrustedIdentCopy(/*_ nzctx *, nzttPersona *, ub4, 
-                           nzttIdentity ** _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nztePriKey ---------------------*/
-
-/*
- * NAME
- *    nztePriKey - Get the decrypted Private Key for the Persona
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN}     Persona.
- *    vkey     {OUT}    Private Key [B_KEY_OBJ]
- *    vkey_len {OUT}    Private Key Length
- * 
- * NOTES
- *    This funiction will only work for X.509 based persona which contain
- *    a private key.  
- *    A copy of the private key is returned to the caller so that they do not 
- *    have to worry about the key changeing "underneath them".
- *    Memory will be allocated for the vkey and therefore, the CALLER
- *    will be responsible for freeing this memory.
- *
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_NO_MEMORY    ossctx is null.
- *    NZERROR_TK_BADPRL    Persona resource locator did not work.
- */
-#ifdef __STDC__
-nzerror nztePriKey(nzctx *, nzttPersona *, ub1 **, ub4 *);
-#else
-nzerror nztePriKey(/*_ nzctx *, nzttPersona *, ub1 **, ub4 * _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nzteMyCert ---------------------*/
-
-/*
- * NAME
- *    nzteMyCert - Get the X.509 Certificate for a persona
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN}     Persona.
- *    cert     {OUT}    X.509 Certificate [BER encoded]
- *    cert_len {OUT}    Certificate length
- * 
- * NOTES
- *    This funiction will only work for X.509 based persona which contain
- *    a certificate for the self identity. 
- *    A copy of the certificate is returned to the caller so that they do not 
- *    have to worry about the certificate changeing "underneath them".
- *    Memory will be allocated for the cert and therefore, the CALLER
- *    will be responsible for freeing this memory.
- *
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_NO_MEMORY    ossctx is null.
- */
-#ifdef __STDC__
-nzerror nzteMyCert(nzctx *, nzttPersona *, ub1 **, ub4 *);
-#else
-nzerror nzteMyCert(/*_ nzctx *, nzttPersona *, ub1 **, ub4 * _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nzteX509CreatePersona ---------------------*/
-
-/*
- * NAME
- *    nzteX509CreatePersona - Given a BER X.509 cert, create a persona
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    cert     {IN}     X.509 Certificate [BER encoded]
- *    cert_len {IN}     Certificate length
- *    persona  {OUT}    Persona.
- * 
- * NOTES
- *    Memory will be allocated for the persona and therefore, the CALLER
- *    will be responsible for freeing this memory.
- *
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_NO_MEMORY    ossctx is null.
- */
-#ifdef __STDC__
-nzerror nzteX509CreatePersona(nzctx *, ub1 *, ub4, nzttPersona **);
-#else
-nzerror nzteX509CreatePersona(/*_ nzctx *, ub1 *, ub4, nzttPersona ** _*/);
-#endif /* __STDC __*/
-
-/*-------------------- nztiCreateIdentity --------------------*/
-
-/*
- * NAME
- *    nztiCreateIdentity - Create an identity.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    itype    {IN}     Identity type.
- *    desc     {IN}     Description of identity.
- *    identity {IN/OUT} Identity.
- * 
- * NOTES
- *    Memory is only allocated for the identity structure.  The elements in
- *    the description struct are not copied.  Rather their pointers are copied
- *    into the identity structure.  Therefore, the caller should not free
- *    the elements referenced by the desc.  These elements will be freed
- *    when the nztiDestroyIdentity is called.
- *    
- * RETURNS
- *    NZERROR_OK        Success.
- *    NZERROR_PARMS     Error in description.
- */
-#ifdef __STDC__
-nzerror nztiCreateIdentity(nzctx *, nzttVersion, nzttIdentityDesc *,
-                               nzttIdentity **);
-#else
-nzerror nztiCreateIdentity(/*_ nzctx *, nzttVersion, nzttIdentityDesc *,
-                               nzttIdentity ** _*/);
-#endif /* __STDC __*/
-
-#ifdef NZ_OLD_TOOLS
-/*-------------------- nztiDuplicateIdentity --------------------*/
-
-/*
- * NAME
- *    nztiDuplicateIdentity - Duplicate an identity.
- * 
- * PARAMETERS
- *    osscntxt     {IN}     OSS context.
- *    identity     {IN}     Target Identity.
- *    new_identity {IN}     New Identity.
- * 
- * NOTES
- *    Memory for the identity is allocated inside the function, and all
- *    internal identity elements as well.
- *    
- * RETURNS
- *    NZERROR_OK        Success.
- *    NZERROR_TK_NOTFOUND  Identity not found.
- *    NZERROR_PARMS     Error in description.
- */
-#ifdef __STDC__
-nzerror nztiDuplicateIdentity(nzctx *, nzttIdentity *, 
-                              nzttIdentity **);
-#else
-nzerror nztiDuplicateIdentity(/*_ nzctx *, nzttIdentity *, 
-                              nzttIdentity ** _*/);
-#endif /* __STDC __*/
-#endif /* NZ_OLD_TOOLS */
-
-/*--------------------- nztiAbortIdentity ---------------------*/
-
-/*
- * NAME
- *    nztiAbortIdentity - Abort an unassociated identity.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    identity {IN/OUT} Identity.
- * 
- * NOTES
- *    It is an error to try to abort an identity that can be
- *    referenced through a persona.
- *    
- *    The identity pointer is set to NULL at the conclusion.
- * 
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_CANTABORT    Identity is associated with persona.
- */
-#ifdef __STDC__
-nzerror nztiAbortIdentity(nzctx *, nzttIdentity **);
-#else
-nzerror nztiAbortIdentity(/*_ nzctx *, nzttIdentity ** _*/);
-#endif /* __STDC __*/
-
-#ifdef NZ_OLD_TOOLS
-/*----------------- nztidGetIdentityDesc -----------------*/
-
-/*
- * NAME
- *    nztidGetIdentityDesc - Gets an Identity Description from the identity
- * 
- * PARAMETERS
- *    osscntxt    {IN}     Success.
- *    identity    {IN}     Identity.
- *    description {IN/OUT} Identity Description.
- * 
- * NOTES
- *    Memory is allocated for the Identity Description. It
- *    is the callers responsibility to free this memory by calling 
- *    nztiFreeIdentityDesc.
- *
- * RETURNS
- *    NZERROR_OK     Success.
- */
-#ifdef __STDC__
-nzerror nztidGetIdentityDesc(nzctx *, nzttIdentity *, 
-                             nzttIdentityDesc **);
-#else
-nzerror nztidGetIdentityDesc(/*_ nzctx *, nzttIdentity *,
-                                     nzttIdentityDesc ** _*/);
-#endif /* __STDC __*/
-
-/*----------------- nztidFreeIdentityDesc -----------------*/
-
-/*
- * NAME
- *    nztidFreeIdentityDesc - Frees memory for Identity Desc object.
- * 
- * PARAMETERS
- *    osscntxt    {IN}     oss context.
- *    description {IN/OUT} Identity Description.
- * 
- * NOTES
- *    Memory is freed for all Identity description elements.  Pointer is 
- *    then set to null.
- *
- * RETURNS
- *    NZERROR_OK     Success.
- */
-#ifdef __STDC__
-nzerror nztidFreeIdentityDesc(nzctx *, nzttIdentityDesc **);
-#else
-nzerror nztidFreeIdentityDesc(/*_ nzctx *, nzttIdentityDesc ** _*/);
-#endif /* __STDC __*/
-#endif /* NZ_OLD_TOOLS */
-
-/*---------------- nztific_FreeIdentityContent ----------------*/
-
-/*
- * NAME
- *     nztific_FreeIdentityContent - free the contents of an identity.
- * 
- * PARAMETERS
- *    osscntxt         {IN}     OSS context.
- *    identity         {IN/OUT} freed identity
- * 
- * NOTES
- *    Free a created identity.
- *
- * RETURNS
- *    NZERROR_OK     Success.
- */
-/*
- * Free the identity content.
- */
-#ifdef __STDC__
-nzerror nztific_FreeIdentityContent(nzctx *ossctx,
-                                        nzttIdentity *identity);
-#else
-nzerror nztific_FreeIdentityContent(/*_ nzctx *ossctx,
-                                        nzttIdentity *identity _*/);
-#endif /* __STDC __*/
-
-
-/*-------------------------- nztSign --------------------------*/
-
-/*
- * NAME
- *    nztSign - Create an attached signature.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN}     Open persona acting as signer.
- *    state    {IN}     State of signature.
- *    inlen    {IN}     Length of this input part.
- *    in       {IN}     This input part.
- *    tdubuf   {IN/OUT} TDU buffer.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_CANTGROW  Needed to grow output buffer but could not.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztSign(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                    nzttBufferBlock *);
-#else
-nzerror nztSign(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                    nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*------------------------- nztVerify -------------------------*/
-
-/*
- * NAME
- *    nztVerify - Verify an attached signature.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN}     Persona.
- *    state    {IN}     State of verification.
- *    intdulen {IN}     TDU length.
- *    intdu    {IN}     TDU.
- *    out      {IN/OUT} Extracted message.
- *    verified {OUT}    TRUE if signature verified.
- *    validated{OUT}    TRUE if signing identity validated.
- *    identity {OUT} Identity of signing party.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_CANTGROW  Needed to grow outptu buffer but could not.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztVerify(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                      nzttBufferBlock *, boolean *, boolean *,
-                      nzttIdentity **);
-#else
-nzerror nztVerify(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                      nzttBufferBlock *, boolean *, boolean *,
-                      nzttIdentity ** _*/);
-#endif /* __STDC __*/
-
-/*------------------------ nztValidate ------------------------*/
-
-/*
- * NAME
- *    nztValidate - Validate an identity.
- * 
- * PARAMETERS
- *    osscntxt {IN}  OSS context.
- *    persona  {IN}  Persona.
- *    identity {IN}  Identity.
- *    validated{OUT} TRUE if identity was validated.  
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztValidate(nzctx *, nzttPersona *, nzttIdentity *, boolean *);
-#else
-nzerror nztValidate(/*_ nzctx *, nzttPersona *, nzttIdentity *, boolean * _*/);
-#endif /* __STDC __*/
-
-/*-------------------- nztsd_SignDetached --------------------*/
-
-/*
- * NAME
- *    nztsd_SignDetached - Generate a detached signature.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN}     Persona.
- *    state    {IN}     State of signature.
- *    inlen    {IN}     Length of this input part.
- *    in       {IN}     This input part.
- *    tdubuf   {IN/OUT} TDU buffer.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_CANTGROW  Needed to grow output buffer but could not.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztsd_SignDetached(nzctx *, nzttPersona *, nzttces, ub4, ub1 *, 
-                               nzttBufferBlock *);
-#else
-nzerror nztsd_SignDetached(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *, 
-                               nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*------------------- nztved_VerifyDetached -------------------*/
-
-/*
- * NAME
- *    nztved_VerifyDetached - Verify a detached signature.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN}     Persona.
- *    state    {IN}     State of verification.
- *    inlen    {IN}     Length of data.
- *    in       {IN}     Data.
- *    intdulen {IN}     Input TDU length.
- *    tdu      {IN}     Input TDU.
- *    verified {OUT}    TRUE if signature verified.
- *    validated{OUT}    TRUE if signing identity validated.
- *    identity {OUT} Identity of signing party.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztved_VerifyDetached(nzctx *, nzttPersona *, nzttces, ub4, 
-                                  ub1 *, ub4, ub1 *, boolean *, boolean *, 
-                                  nzttIdentity **);
-#else
-nzerror nztved_VerifyDetached(/*_ nzctx *, nzttPersona *, nzttces, ub4, 
-                                  ub1 *, ub4, ub1 *, boolean *, boolean *, 
-                                  nzttIdentity ** _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nztkec_PKEncrypt ---------------------*/
-
-/*
- * NAME
- *    nztkec_PKEncrypt - Encrypt data symmetrically, encrypt key asymmetrically
- * 
- * PARAMETERS
- *    osscntxt    {IN}     OSS context.
- *    persona     {IN}     Persona.
- *    nrecipients {IN}     Number of recipients for this encryption.
- *    recipients  {IN}     List of recipients.
- *    state       {IN}     State of encryption.
- *    inlen       {IN}     Length of this input part.
- *    in          {IN}     This input part.
- *    tdubuf      {IN/OUT} TDU buffer.
- * 
- * NOTES
- *    There is a limitation of 1 recipient (nrecipients = 1) at this
- *    time.
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_CANTGROW  Needed to grow output buffer but could not.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztkec_PKEncrypt(nzctx *, nzttPersona *, ub4, nzttIdentity *, 
-                             nzttces, ub4, ub1 *, nzttBufferBlock *);
-#else
-nzerror nztkec_PKEncrypt(/*_ nzctx *, nzttPersona *, ub4, nzttIdentity *, 
-                             nzttces, ub4, ub1 *, nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*---------------- nztxkec_PKEncryptExpansion ----------------*/
-
-/*
- * NAME
- *    nztxkec_PKEncryptExpansion - Determine the buffer needed for PKEncrypt
- * 
- * PARAMETERS
- *    osscntxt    {IN}     OSS context. 
- *    persona     {IN}     Persona.
- *    nrecipients {IN}     Number of recipients.
- *    inlen       {IN}     Length of input.
- *    tdulen      {out}    Length of buffer need.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztxkec_PKEncryptExpansion(nzctx *, nzttPersona *, ub4, ub4,
-                                       ub4 *);
-#else
-nzerror nztxkec_PKEncryptExpansion(/*_ nzctx *, nzttPersona *, ub4, ub4,
-                                       ub4 * _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nztkdc_PKDecrypt ---------------------*/
-
-/*
- * NAME
- *    nztkdc_PKDecrypt - Decrypt a PKEncrypted message.
- * 
- * PARAMETERS
- *    osscntxt    {IN}     OSS context.
- *    persona     {IN}     Persona.
- *    state       {IN}     State of encryption.
- *    inlen       {IN}     Length of this input part.
- *    in          {IN}     This input part.
- *    tdubuf      {IN/OUT} TDU buffer.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_CANTGROW  Needed to grow output buffer but could not.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztkdc_PKDecrypt(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                             nzttBufferBlock *);
-#else
-nzerror nztkdc_PKDecrypt(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                             nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*-------------------------- nztHash --------------------------*/
-
-/*
- * NAME
- *    nztHash - Generate a hash.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN}     Persona.
- *    state    {IN}     State of hash.
- *    inlen    {IN}     Length of this input.
- *    in       {IN}     This input.
- *    tdu      {IN/OUT} Output tdu.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_CANTGROW  Needed to grow TDU buffer but could not.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztHash(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                    nzttBufferBlock *);
-#else
-nzerror nztHash(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                    nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*----------------------- nztSeedRandom -----------------------*/
-
-/*
- * NAME
- *    nztSeedRandom - Seed the random function
- * 
- * PARAMETERS
- *    osscntxt {IN}  OSS context.
- *    persona  {IN}  Persona.
- *    seedlen  {IN}  Length of seed.
- *    seed     {IN}  Seed.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztSeedRandom(nzctx *, nzttPersona *, ub4, ub1 *);
-#else
-nzerror nztSeedRandom(/*_ nzctx *, nzttPersona *, ub4, ub1 * _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nztrb_RandomBytes ---------------------*/
-
-/*
- * NAME
- *    nztrb_RandomBytes - Generate a buffer random bytes.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN}     Persona.
- *    nbytes   {IN}     Number of bytes desired.
- *    out      {IN/OUT} Buffer block for bytes.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_CANTGROW  Needed to grow TDU buffer but could not.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztrb_RandomBytes(nzctx *, nzttPersona *, ub4, 
-                              nzttBufferBlock *);
-#else
-nzerror nztrb_RandomBytes(/*_ nzctx *, nzttPersona *, ub4, 
-                              nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*-------------------- nztrn_RandomNumber --------------------*/
-
-/*
- * NAME
- *    nztrn_RandomNumber - Generate a random number
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN}     Persona.
- *    num      {OUT}    Number.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztrn_RandomNumber(nzctx *, nzttPersona *, uword *);
-#else
-nzerror nztrn_RandomNumber(/*_ nzctx *, nzttPersona *, uword * _*/);
-#endif /* __STDC __*/
-
-/*---------------------- nztbbInitBlock ----------------------*/
-
-/*
- * NAME
- *    nztbbInitBlock - Initialize a buffer block.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    block    {IN/OUT} Buffer block.
- * 
- * NOTES
- *    The buffer block is initialized to be empty (all members are set
- *    to 0/NULL).  Such a block will be allocated memory as needed.
- *    
- * RETURNS
- *    NZERROR_OK        Success.
- */
-#ifdef __STDC__
-nzerror nztbbInitBlock(nzctx *, nzttBufferBlock *);
-#else
-nzerror nztbbInitBlock(/*_ nzctx *, nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*---------------------- nztbbReuseBlock ----------------------*/
-
-/*
- * NAME
- *    nztbbReuseBlock - Reuse an already initialized and possibly used block.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    block    {IN/OUT} Buffer block.
- * 
- * NOTES
- *    This function simply sets the used length member of the buffer
- *    block to 0.  If the block already has memory allocated to it,
- *    this will cause it to be reused.
- *    
- * RETURNS
- *    NZERROR_OK        Success.
- */
-#ifdef __STDC__
-nzerror nztbbReuseBlock(nzctx *, nzttBufferBlock *);
-#else
-nzerror nztbbReuseBlock(/*_ nzctx *, nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*---------------------- nztbbSizeBlock ----------------------*/
-
-/*
- * NAME
- *    nztbbSizeBlock - Size an initialized block to a particular size.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    len      {IN}     Minimum number of unused bytes desired.
- *    block    {IN/OUT} Buffer block.
- *
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK        Success.
- */
-#ifdef __STDC__
-nzerror nztbbSizeBlock(nzctx *, ub4, nzttBufferBlock *);
-#else
-nzerror nztbbSizeBlock(/*_ nzctx *, ub4, nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*----------------------- nztbbGrowBlock -----------------------*/
-
-/*
- * NAME
- *    nzbbGrowBlock - Increase the size of the buffer block.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    inc      {IN}     Number of bytes to increase.
- *    block    {IN/OUT} Buffer block.
- *
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK        Success.
- */
-#ifdef __STDC__
-nzerror nztbbGrowBlock(nzctx *, ub4, nzttBufferBlock *);
-#else
-nzerror nztbbGrowBlock(/*_ nzctx *, ub4, nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*---------------------- nztbbPurgeBlock ----------------------*/
-
-/*
- * NAME
- *    nztbbPurgeBlock - Purge a buffer block of its memory.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    block    {IN/OUT} Buffer block.
- * 
- * NOTES
- *    The memory used by the buffer block as the buffer is released.
- *    The buffer block itself is not affected.
- *    
- * RETURNS
- *    NZERROR_OK        Success.
- */
-#ifdef __STDC__
-nzerror nztbbPurgeBlock(nzctx *, nzttBufferBlock *);
-#else
-nzerror nztbbPurgeBlock(/*_ nzctx *, nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*----------------------- nztbbSetBlock -----------------------*/
-
-/*
- * NAME
- *    nztbbSetBlock - Set a buffer block to a known state.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    flags    {IN}     Flags to set.
- *    buflen   {IN}     Length of buffer.
- *    usedlen  {IN}     Used length.
- *    buffer   {IN}     Buffer.
- *    block    {IN/OUT} Buffer block
- * 
- * NOTES
- *    If buflen > 0, objlen == 0, and obj == NULL, then buflen bytes
- *    of memory is allocated and a pointer is stored in the buffer
- *    block.
- *
- *    The buffer parameter remains unchanged.
- *    
- * RETURNS
- *    NZERROR_OK        Success.
- */
-#ifdef __STDC__
-nzerror nztbbSetBlock(nzctx *,  uword, ub4, ub4, ub1 *, 
-                          nzttBufferBlock *);
-#else
-nzerror nztbbSetBlock(/*_ nzctx *,  uword, ub4, ub4, ub1 *, 
-                          nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-
-/*--------------------- nztiGetSecInfo ---------------------*/
-
-/*
- * NAME
- * 	nztiGetSecInfo - Get some security information for SSL
- * 
- * PARAMETERS
- * 	Name	{IN/OUT}	Description
- *    	osscntxt {IN}     	OSS context.
- *    	persona  {IN}		persona
- *    	dname    {OUT}    	distinguished name of the certificate
- *    	dnamelen {OUT}    	length of the distinguished name 
- *    	issuername {OUT}  	issuer name of the certificate
- *    	certhash {OUT}		SHA1 hash of the certificate
- *	certhashlen{OUT}	length of the hash
- * NOTES
- * 	This function allocate memories for issuername, certhash, and dname.
- *	To deallocate memory for those params, you should call nztdbuf_DestroyBuf.
- * RETURNS
- * 	
- */
-#ifdef __STDC__
-nzerror nztiGetSecInfo(nzctx *, nzttPersona *, text **, ub4 *,
-			 text **, ub4 *, ub1 **, ub4 *);
-#else
-nzerror nztiGetSecInfo(/*_ nzctx *, nzttPersona *, text **, ub4 *,
-			   text **, ub4 *, ub1 **, ub4 * _*/);
-#endif	/* __STDC__ */
-
-
-/*---------------------- nztiGetDName ----------------------*/
-
-/*
- * NAME
- * 	nztiGetDName - Get the distinguished name for the given identity
- * 
- * PARAMETERS
- * 	Name	{IN/OUT}	Description
- *    	osscntxt {IN}     	OSS context.
- *	identity {IN}		identity need to get dname from
- *	dn	{OUT}		distinguished name
- *	dnlen	{OUT}		length of the dname
- *
- * NOTES
- * 	
- * RETURNS
- * 	
- */
-
-#ifdef __STDC__
-nzerror nztiGetDName(nzctx *, nzttIdentity *,
-		     text **, ub4 *);
-#else
-nzerror nztiGetDName(/*_ nzctx *, nzttIdentity *,
-			     text **, ub4 * _*/);
-#endif /* __STDC__ */
-
-/*------------------- nztiGetIssuerName -------------------*/
-
-/*
- * NAME
- * 	nztiGetIssuerName -  Get IssuerName for the given identity 
- * 
- * PARAMETERS
- * 	Name	{IN/OUT}	Description
- *    	osscntxt {IN}     	OSS context.
- *	identity {IN}		identity need to get issuername from
- *	issuername {OUT}       	issuer's name
- *	issuernamelen {OUT}	length of the issuer's name
- * 
- * NOTES
- * 	
- * RETURNS
- * 	
- */
-#ifdef __STDC__
-nzerror nztiGetIssuerName(nzctx *, nzttIdentity *,
-			     text **, ub4 *);
-#else
-nzerror nztiGetIssuerName(/*_ nzctx *, nzttIdentity *,
-			      text **, ub4 * _*/);
-#endif /* __STDC__ */
-
-
-/*-------------------- nztgch_GetCertHash --------------------*/
-
-/*
- * NAME
- * 	nztgch_GetCertHash -  Get SHA1 hash for the certificate of the identity 
- * 
- * PARAMETERS
- * 	Name	{IN/OUT}	Description
- *    	osscntxt {IN}     	OSS context.
- *	identity {IN}		identity need to get issuername from
- *	certHash {OUT}          certHash buffer 
- *	hashLen {OUT}		length of the certHash 
- * 
- * NOTES
- * 	Need to call nztdbuf_DestroyBuf to deallocate memory for certHash.	
- * RETURNS
- * 	
- */
-#ifdef __STDC__
-nzerror nztgch_GetCertHash(nzctx *, nzttIdentity *,
-			     ub1 **, ub4 *);
-#else
-nzerror nztgch_GetCertHash(/*_ nzctx *, nzttIdentity *,
-			     ub1 **, ub4 * _*/);
-#endif /* __STDC__ */
-
-/*-------------------- nztdbuf_DestroyBuf --------------------*/
-
-/*
- * NAME
- * 	nztdbuf_DestroyBuf - Deallocation funtions for ub1 and text buffer 
- * 
- * PARAMETERS
- * 	Name	{IN/OUT}	Description
- *    	osscntxt {IN}     	OSS context.
- *	buf      {IN}		Allocated buffer to be destroyed.
- * 
- * NOTES
- * 	
- * RETURNS
- * 	
- */
-#ifdef __STDC__
-nzerror nztdbuf_DestroyBuf( nzctx *, dvoid **);
-#else
-nzerror nztdbuf_DestroyBuf(/*_ nzctx *, dvoid ** _*/);
-#endif /* __STDC__ */
-
-
-/*----------------------- nztGetCertChain -----------------------*/
-
-/*
- * NAME
- * 	nztGetCertChain - 
- * 
- * PARAMETERS
- * 	Name	{IN/OUT}	Description
- *    	osscntxt {IN}     	OSS context.
- * 
- * NOTES
- * 	
- * RETURNS
- * 	
- */
-#ifdef __STDC__
-nzerror nztGetCertChain(nzctx *, nzttWallet * );
-#else
-nzerror nztGetCertChain(/*_ nzctx *, nzttWallet _*/);
-#endif /* __STDC__ */
-
-/*----------------------- nztCompareDN -----------------------*/
-
-/*
- * NAME
- * 	nztCompareDN - 
- * 
- * PARAMETERS
- * 	Name	{IN/OUT}	Description
- *    	osscntxt {IN}     	OSS context.
- *	dn1	{IN}		distinguished name 1
- *	dn2     {IN}		distinguished name 2
- * 
- * NOTES
- * 	
- * RETURNS
- * 	NZERROR_OK	 	succeeded
- *	others			failed
- * 	
- */
-#ifdef __STDC__
-nzerror nztCompareDN(nzctx *, ub1 *, ub4,  ub1 *, ub4, boolean * );
-#else
-nzerror nztCompareDN(/*_ nzctx *, ub1 *,ub4 ,  ub1 *, ub4, boolean * _*/);
-#endif/* __STDC__ */
-
-
-#ifdef NZ_OLD_TOOLS
-/*--------------------- nztIdentityAlloc ---------------------*/
-
-/*
- * NAME
- * 	nztIdentityAlloc - Allocate memory for nzttIdentity context
- * 
- * PARAMETERS
- * 	Name	{IN/OUT}	Description
- *    	osscntxt {IN}     	OSS context.
- *	identity {OUT}		nzttIdentity context
- * 
- * NOTES
- * 	
- * RETURNS
- * 	NZERROR_OK	 	succeeded
- *	others			failed
- * 	
- */
-#ifdef __STDC__
-nzerror nztIdentityAlloc(nzctx *, nzttIdentity **);
-#else
-nzerror nztIdentityAlloc(/*_ nzctx *, nzttIdentity ** _*/);
-#endif/* __STDC__ */
-
-/*--------------------- nztIPrivateAlloc ---------------------*/
-
-/*
- * NAME
- * 	nztIPrivateAlloc - Allocate memory for nzttIdentityPrivate
- * 
- * PARAMETERS
- * 	Name	{IN/OUT}	Description
- * 
- *    	osscntxt {IN}     	OSS context.
- *	ipriv	{OUT}		identityPrivate structure
- * NOTES
- * 	
- * RETURNS
- * 	NZERROR_OK	 	succeeded
- *	others			failed
- * 	
- */
-
-#ifdef __STDC__
-nzerror nztIPrivateAlloc( nzctx *, nzttIdentityPrivate **);
-#else
-nzerror nztIPrivateAlloc( nzctx *, nzttIdentityPrivate **);
-#endif /* __STDC__ */
-
-
-/*---------------------- nztIDupContent ----------------------*/
-
-/*
- * NAME
- * 	nztIDupContent - 
- * 
- * PARAMETERS
- * 	Name	{IN/OUT}	Description
- *    	osscntxt {IN}     	OSS context.
- * 	targetIdentity{OUT}	target identity
- *	sourceIdentity {IN}	source identity
- * NOTES
- * 	
- * RETURNS
- * 	NZERROR_OK	 	succeeded
- *	others			failed
- * 	
- */
-
-#ifdef __STDC__
-nzerror nztIDupContent( nzctx *, nzttIdentity *, nzttIdentity *);
-#else
-nzerror nztIDupContent(/*_ nzctx *, nzttIdentity *, nzttIdentity * _*/);
-#endif
-/*---------------------- nztIPDuplicate ----------------------*/
-
-/*
- * NAME
- * 	nztIPDuplicate - 
- * 
- * PARAMETERS
- * 	Name	{IN/OUT}	Description
- *    	osscntxt {IN}     	OSS context.
- *	target_ipriv {OUT}	target identityPrivate
- *	source_ipriv {IN}	source identityPrivate
- * 
- * NOTES
- * 	
- * RETURNS
- * 	NZERROR_OK	 	succeeded
- *	others			failed
- * 	
- */
-#ifdef __STDC__
-nzerror nztIPDuplicate( nzctx *, nzttIdentityPrivate **,
-			nzttIdentityPrivate *);
-#else
-nzerror nztIPDuplicate(/*_ nzctx *, nzttIdentityPrivate **,
-			 nzttIdentityPrivate * _*/);
-#endif /* __STDC__ */
-
-/*--------------------- nztiDupIdentList ---------------------*/
-
-/*
- * NAME
- * 	nztiDupIdentList - 
- * 
- * PARAMETERS
- * 	Name	{IN/OUT}	Description
- *    	osscntxt {IN}     	OSS context.
- *	source_identities {IN}	source identity list
- *	numIdent {OUT}		number of identity in the list
- *	ppidentity {OUT}	Target of identity	
- *	
- * NOTES
- * 	
- * RETURNS
- * 	NZERROR_OK	 	succeeded
- *	others			failed
- * 	
- */
-#ifdef __STDC__
-nzerror nztiDupIdentList( nzctx *, nzttIdentity  *, ub4 *, 
-                          nzttIdentity **);
-#else
-
-nzerror nztiDupIdentList(/*_ nzctx *, nzttIdentity  *, ub4 *, 
-                             nzttIdentity ** _*/);
-#endif
-
-/*--------------------- nztFreeIdentList ---------------------*/
-
-/*
- * NAME
- * 	nztFreeIdentList - Free memory for a list of Identities
- * 
- * PARAMETERS
- * 	Name	{IN/OUT}	Description
- *    	osscntxt {IN}     	OSS context.
- *	identity {IN}		identity context
- *
- * NOTES
- * 	
- * RETURNS
- * 	NZERROR_OK	 	succeeded
- *	others			failed
- * 	
- */
-#ifdef __STDC__
-nzerror nztFreeIdentList( nzctx *, nzttIdentity **);
-#else
-nzerror nztFreeIdentList(/*_ nzctx *, nzttIdentity ** _*/);
-#endif
-#endif /* NZ_OLD_TOOLS */
-
-/*--------------------- nztCheckVaLidity ---------------------*/
-
-/*
- * NAME
- * 	nztCheckVaLidity -  Check the validity of certificate
- * 
- * PARAMETERS
- * 	Name	{IN/OUT}	Description
- *    	osscntxt {IN}     	OSS context.
- *	start_time		Start time of the certificate
- *	end_time		End time of the certificate
- * 
- * NOTES
- * 	
- * RETURNS
- * 	NZERROR_OK	 	succeeded
- *	others			failed
- * 	
- */
-#ifdef __STDC__
-nzerror nztCheckValidity( nzctx *, ub4 , ub4 );
-#else
-nzerror nztCheckValidity(/*_ nzctx *, ub4 , ub4 _*/);
-#endif
-
-/*--------------------- nztwCreateWallet ---------------------*/
-
-/*
- * NAME
- *    nztwCreateWallet - Create a new wallet.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    wrllen   {IN}     Length of wallet resource locator.
- *    wrl      {IN}     WRL.
- *    pwdlen   {IN}     Length of password (see notes below).
- *    pwd      {IN}     Password.
- *    wallet   {IN/OUT} Wallet. 
- * 
- * NOTES
- *    It is an error to try to create a wallet that already exists.
- *    The previously existing wallet must be destroyed first.
- *
- *    The wallet itself is not encrypted.  Rather, all the personas in
- *    the wallet are encrypted under the same password.  A hash of the
- *    password is stored in the wallet.
- *
- *    Upon success, an empty open wallet is stored in the wallet
- *    parameter.
- *    
- * RETURNS
- *    NZERROR_OK                 Sucess.
- *    NZERROR_TK_WALLET_EXISTS   Wallet already exists.
- *    NZERROR_RIO_OPEN           RIO could not create wallet (see trace file).
- */
-#ifdef __STDC__
-nzerror nztwCreateWallet(nzctx *, ub4, text *, ub4, text *, 
-                             nzttWallet *);
-#else
-nzerror nztwCreateWallet(/*_ nzctx *, ub4, text *, ub4, text *, 
-                             nzttWallet * _*/);
-#endif /* __STDC__ */
-
-
-/*--------------------- nztwDestroyWallet ---------------------*/
-
-/*
- * NAME
- *    nztwDestroyWallet - Destroy an existing wallet.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    wrllen   {IN}     Length of wallet resource locator.
- *    wrl      {IN}     WRL.
- *    pwdlen   {IN}     Length of password.
- *    pwd      {IN}     Password.
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_PASSWORD  Password verification failed.
- *    NZERROR_RIO_OPEN     RIO could not open wallet (see trace file).
- *    NZERROR_RIO_DELETE   Delete failed (see trace file).
- */
-#ifdef __STDC__
-nzerror nztwDestroyWallet(nzctx *, ub4, text *, ub4, text *);
-#else
-nzerror nztwDestroyWallet(/*_ nzctx *, ub4, text *, ub4, text * _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nzteStorePersona ---------------------*/
-
-/*
- * NAME
- *    nzteStorePersona - Store an open persona in a wallet.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context. 
- *    persona  {IN/OUT} Persona.
- *    wallet   {IN/OUT} Wallet.
- * 
- * NOTES
- *    If the open persona is not associated with any wallet (it was
- *    created via the nzteClosePersona function), then storing the
- *    persona creates that association.  The wallet will also have an
- *    updated persona list that reflects this association.
- *
- *    If the open persona was associated with wallet 'A' (it was
- *    opened via the nztwOpenWallet function), and is stored back into
- *    wallet 'A', then then the old persona is overwritten by the new
- *    persona if the password can be verified.  Recall that all
- *    personas have a unique identity id.  If that id changes then
- *    storing the persona will put a new persona in the wallet.
- *
- *    If the open persona was associated with wallet 'A' and is stored
- *    into wallet 'B', and if wallet 'B' does not contain a persona
- *    with that unique identity id, then the persona will be copied
- *    into wallet 'B', wallet 'B''s persona list will be updated, and
- *    the persona structure will be updated to be associated with
- *    wallet 'B'.  If wallet 'B' already contained the persona, it
- *    would be overwritten by the new persona.
- *
- *    The persona parameter is doubly indirect so that at the
- *    conclusion of the function call, the pointer can be directed to
- *    the persona in the wallet.
- *
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_PASSWORD  Password verification failed.
- *    NZERROR_RIO_STORE    Store failed (see network trace file).
- */
-#ifdef __STDC__
-nzerror nzteStorePersona(nzctx *, nzttPersona **, nzttWallet *);
-#else
-nzerror nzteStorePersona(/*_ nzctx *, nzttPersona **, nzttWallet * _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nzteRemovePersona ---------------------*/
-
-/*
- * NAME
- *    nzteRemovePersona - Remove a persona from the wallet.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN/OUT} Persona.
- * 
- * NOTES
- *    The password is verified before trying to remove the persona.
- *    
- *    If the persona is open, it is closed.  The persona is removed
- *    from the wallet list and the persona pointer is set to NULL.
- *    
- *    A double indirect pointer to the persona is required so that the
- *    persona pointer can be set to NULL upon completion.
- *
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_PASSWORD  Password verification failed.
- *    NZERROR_RIO_DELETE   Delete failed.
- */
-#ifdef __STDC__
-nzerror nzteRemovePersona(nzctx *, nzttPersona **);
-#else
-nzerror nzteRemovePersona(/*_ nzctx *, nzttPersona ** _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nzteCreatePersona ---------------------*/
-
-/*
- * NAME
- *    nzteCreatePersona - Create a persona.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    itype    {IN}     Identity type.
- *    ctype    {IN}     Cipher type.
- *    desc     {IN}     Persona description.
- *    persona  {OUT}    Persona.
- * 
- * NOTES
- *    The resulting persona is created in the open state, but it will
- *    not be associated with a wallet.
- *    
- *    The memory for the persona is allocated by the function.
- *
- * RETURNS
- *    NZERROR_OK        Success.
- *    NZERROR_TK_TYPE   Unsupported itype/ctype combination.
- *    NZERROR_TK_PARMS  Error in persona description.
- */
-#ifdef __STDC__
-nzerror nzteCreatePersona(nzctx *, nzttVersion, nzttCipherType, 
-			  nzttPersonaDesc *, nzttPersona **);
-#else
-nzerror nzteCreatePersona(/*_ nzctx *, nzttVersion, nzttCipherType, 
-                              nzttPersonaDesc *, nzttPersona ** _*/);
-#endif /* __STDC __*/
-
-
-/*----------------- nztiStoreTrustedIdentity -----------------*/
-
-/*
- * NAME
- *    nztiStoreTrustedIdentity - Store an identity into a persona.
- * 
- * PARAMETERS
- *    osscntxt {IN}     Success.
- *    identity {IN/OUT} Trusted Identity.
- *    persona  {IN/OUT} Persona.    
- * 
- * NOTES
- *    The identity is not saved with the persona in the wallet until
- *    the persona is stored.
- *    
- *    The identity parameter is double indirect so that it can point
- *    into the persona at the conclusion of the call.
- *
- * RETURNS
- *    NZERROR_OK     Success.
- */
-#ifdef __STDC__
-nzerror nztiStoreTrustedIdentity(nzctx *, nzttIdentity **,
-                                     nzttPersona *);
-#else
-nzerror nztiStoreTrustedIdentity(/*_ nzctx *, nzttIdentity **,
-                                     nzttPersona * _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nzteSetProtection ---------------------*/
-
-/*
- * NAME
- *    nzteSetProtection - Set the protection type for a CE function.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN/OUT} Persona.
- *    func     {IN}     CE function.
- *    tdufmt   {IN}     TDU Format.
- *    protinfo {IN}     Protection information specific to this format.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK              Success.
- *    NZERROR_TK_PROTECTION   Unsupported protection.
- *    NZERROR_TK_PARMS        Error in protection info.
- */
-#ifdef __STDC__
-nzerror nzteSetProtection(nzctx *, nzttPersona *, nzttcef, nztttdufmt,
-                              nzttProtInfo *);
-#else
-nzerror nzteSetProtection(/*_ nzctx *, nzttPersona *, nzttcef, nztttdufmt,
-                              nzttProtInfo * _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nzteGetProtection ---------------------*/
-
-/*
- * NAME
- *    nzteGetProtection - Get the protection type for a CE function.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN}     Persona.
- *    func     {IN}     CE function.
- *    tdufmt   {OUT}    TDU format.
- *    protinfo {OUT}    Protection information.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK        Success.
- */
-#ifdef __STDC__
-nzerror nzteGetProtection(nzctx *, nzttPersona *, nzttcef, nztttdufmt *,
-                              nzttProtInfo *);
-#else
-nzerror nzteGetProtection(/*_ nzctx *, nzttPersona *, nzttcef, nztttdufmt *,
-                              nzttProtInfo * _*/);
-#endif /* __STDC __*/
-
-/*-------------------- nztiRemoveIdentity --------------------*/
-
-/*
- * NAME
- *    nztiRemoveIdentity - Remove an identity from an open persona.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context. 
- *    identity {IN/OUT}     Identity.
- * 
- * NOTES
- *    If the persona is not stored, this identity will still be in the
- *    persona stored in the wallet.
- *    
- *    The identity parameter is doubly indirect so that at the
- *    conclusion of the function, the pointer can be set to NULL.
- *
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_NOTFOUND  Identity not found.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- */
-#ifdef __STDC__
-nzerror nztiRemoveIdentity(nzctx *, nzttIdentity **);
-#else
-nzerror nztiRemoveIdentity(/*_ nzctx *, nzttIdentity ** _*/);
-#endif /* __STDC __*/
-
-/*----------------- nztifdn -----------------*/
-
-/*
- * NAME
- *    nztifdn - create an Identity From a Distinguished Name
- * 
- * PARAMETERS
- *    osscntxt           {IN}  OSS context.
- *    length             {IN}  Length of the distinguished name
- *    distinguished_name {IN}  distinguished name string
- *    ppidentity         {OUT} created identity
- * 
- * NOTES
- *    Given a distinguished name, return the identity that corresponds to it.
- *
- * RETURNS
- *    NZERROR_OK     Success.
- */
-#ifdef __STDC__
-nzerror nztifdn(nzctx         *ossctx,
-                    ub4         length,
-                    text          *distinguished_name,
-                    nzttIdentity **ppidentity);
-#else
-nzerror nztifdn(/*_ nzctx         *ossctx,
-                    ub4         length,
-                    text          *distinguished_name,
-                    nzttIdentity **ppidentity _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nztxSignExpansion ---------------------*/
-
-/*
- * NAME
- *    nztxSignExpansion - Determine the size of the attached signature buffer.
- * 
- * PARAMETERS
- *    osscntxt {IN}  OSS context.
- *    persona  {IN}  Persona.
- *    inlen    {IN}  Length of input.
- *    tdulen   {OUT} Buffer needed for signature.
- *
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztxSignExpansion(nzctx *, nzttPersona *, ub4, ub4 *);
-#else
-nzerror nztxSignExpansion(/*_ nzctx *, nzttPersona *, ub4, ub4 * _*/);
-#endif /* __STDC __*/
-
-/*--------------- nztxsd_SignDetachedExpansion ---------------*/
-
-/*
- * NAME
- *    nztxsd_SignDetachedExpansion - Determine the size of buffer needed.
- * 
- * PARAMETERS
- *    osscntxt {IN}  OSS context.
- *    persona  {IN}  Persona.
- *    inlen    {IN}  Length of input.
- *    tdulen   {OUT} Buffer needed for signature.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztxsd_SignDetachedExpansion(nzctx *, nzttPersona *, ub4,
-                                         ub4 *);
-#else
-nzerror nztxsd_SignDetachedExpansion(/*_ nzctx *, nzttPersona *, ub4,
-                                         ub4 * _*/);
-#endif /* __STDC __*/
-
-/*------------------------ nztEncrypt ------------------------*/
-
-/*
- * NAME
- *    nztEncrypt - Symmetrically encrypt
- * 
- * PARAMETERS
- *    osscntxt    {IN}     OSS context.
- *    persona     {IN}     Persona.
- *    inlen       {IN}     Length of this input part.
- *    in          {IN}     This input part.
- *    tdubuf      {IN/OUT} TDU buffer.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_CANTGROW  Needed to grow TDU buffer but could not.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztEncrypt(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                       nzttBufferBlock *);
-#else
-nzerror nztEncrypt(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                       nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*------------------- nztxEncryptExpansion -------------------*/
-
-/*
- * NAME
- *    nztxEncryptExpansion - Determine the size of the TDU to encrypt.
- * 
- * PARAMETERS
- *    osscntxt    {IN}  OSS context.
- *    persona     {IN}  Persona.
- *    inlen       {IN}  Length of this input part.
- *    tdulen      {OUT} Length of TDU.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztxEncryptExpansion(nzctx *, nzttPersona *, ub4, ub4 *);
-#else
-nzerror nztxEncryptExpansion(/*_ nzctx *, nzttPersona *, ub4, ub4 * _*/);
-#endif /* __STDC __*/
-
-/*------------------------ nztDecrypt ------------------------*/
-
-/*
- * NAME
- *    nztDecrypt - Decrypt an Encrypted message.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN}     Persona.
- *    state    {IN}     State of decryption.
- *    inlen    {IN}     Length of this input part.
- *    in       {IN}     This input part.
- *    out      {IN/OUT} Cleartext message.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_CANTGROW  Needed to grow TDU buffer but could not.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztDecrypt(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                       nzttBufferBlock *);
-#else
-nzerror nztDecrypt(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                       nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*------------------------ nztEnvelope ------------------------*/
-
-/*
- * NAME
- *    nztEnvelope - Sign and PKEncrypt a message.
- * 
- * PARAMETERS
- *    osscntxt    {IN}     OSS context.
- *    persona     {IN}     Persona.
- *    nrecipients {IN}     Number of recipients for this encryption.
- *    recipients  {IN}     List of recipients.
- *    state       {IN}     State of encryption.
- *    inlen       {IN}     Length of this input part.
- *    in          {IN}     This input part.
- *    tdubuf      {IN/OUT} TDU buffer.
- *
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_CANTGROW  Needed to grow output buffer but could not.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztEnvelope(nzctx *, nzttPersona *, ub4, nzttIdentity *,
-                        nzttces, ub4, ub1 *, nzttBufferBlock *);
-#else
-nzerror nztEnvelope(/*_ nzctx *, nzttPersona *, ub4, nzttIdentity *,
-                        nzttces, ub4, ub1 *, nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*----------------------- nztDeEnvelope -----------------------*/
-
-/*
- * NAME
- *    nztDeEnvelope - PKDecrypt and verify a message.
- * 
- * PARAMETERS
- *    osscntxt    {IN}     OSS context.
- *    persona     {IN}     Persona.
- *    state       {IN}     State of encryption.
- *    inlen       {IN}     Length of this input part.
- *    in          {IN}     This input part.
- *    out         {OUT}    Message from TDU.
- *    verified    {OUT}    TRUE if verified.
- *    validated   {OUT}    TRUE if validated.
- *    sender      {OUT}    Identity of sender.
- *
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_CANTGROW  Needed to grow TDU buffer but could not.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztDeEnvelope(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                          nzttBufferBlock *, boolean *, boolean *,
-                          nzttIdentity **);
-#else
-nzerror nztDeEnvelope(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                          nzttBufferBlock *, boolean *, boolean *,
-                          nzttIdentity ** _*/);
-#endif /* __STDC __*/
-
-/*----------------------- nztKeyedHash -----------------------*/
-
-/*
- * NAME
- *    nztKeyedHash - Generate a keyed hash.
- * 
- * PARAMETERS
- *    osscntxt {IN}     OSS context.
- *    persona  {IN}     Persona.
- *    state    {IN}     State of hash.
- *    inlen    {IN}     Length of this input.
- *    in       {IN}     This input.
- *    tdu      {IN/OUT} Output tdu.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_CANTGROW  Needed to grow TDU buffer but could not.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztKeyedHash(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                         nzttBufferBlock *);
-#else
-nzerror nztKeyedHash(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
-                         nzttBufferBlock * _*/);
-#endif /* __STDC __*/
-
-/*------------------ nztxKeyedHashExpansion ------------------*/
-
-/*
- * NAME
- *    nztxKeyedHashExpansion - Determine the space needed for a keyed hash.
- * 
- * PARAMETERS
- *    osscntxt {IN}  OSS context.
- *    persona  {IN}  Persona.
- *    inlen    {IN}  Length of this input.
- *    tdulen   {OUT} TDU length.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztxKeyedHashExpansion(nzctx *, nzttPersona *, ub4, 
-                                   ub4 *);
-#else
-nzerror nztxKeyedHashExpansion(/*_ nzctx *, nzttPersona *, ub4, 
-                                   ub4 * _*/);
-#endif /* __STDC __*/
-
-/*--------------------- nztxHashExpansion ---------------------*/
-
-/*
- * NAME
- *    nztxHashExpansion - Determine the size of the TDU for a hash.
- * 
- * PARAMETERS
- *    osscntxt {IN}  OSS context.
- *    persona  {IN}  Persona.
- *    inlen    {IN}  Length of this input.
- *    tdulen   {OUT} TDU length.
- * 
- * NOTES
- *    
- * RETURNS
- *    NZERROR_OK           Success.
- *    NZERROR_TK_NOTOPEN   Persona is not open.
- *    NZERROR_TK_NOTSUPP   Function not supported with persona.
- */
-#ifdef __STDC__
-nzerror nztxHashExpansion(nzctx *, nzttPersona *, ub4, ub4 *);
-#else
-nzerror nztxHashExpansion(/*_ nzctx *, nzttPersona *, ub4, ub4 * _*/);
-#endif /* __STDC __*/
-
-/*---------------- nztiae_IsAuthEnabled ----------------*/
-
-/*
- * NAME
- * 	nztiae_IsAuthEnabled -  Checks to see if Authentication is Enabled
- *                               in the current Cipher Spec.
- * 
- * PARAMETERS
- * 	ctx	{IN}	Oracle SSL Context
- *      ncipher {IN}    CipherSuite
- *      authEnabled {OUT} Boolean for is Auth Enabled?
- * 
- * NOTES
- * 	
- * RETURNS
- *      NZERROR_OK on success.
- *      NZERROR_TK_INV_CIPHR_TYPE if Cipher Spec is not Recognized.
- */
-
-#ifdef __STDC__
-nzerror nztiae_IsAuthEnabled( nzctx *, ub2, boolean *);
-#else
-nzerror nztiae_IsAuthEnabled(/*_ nzctx *ctx, 
-                                  ub2 ncipher, 
-                                  boolean *authEnabled _*/);
-#endif
-
-/*---------------- nztiee_IsEncrEnabled ----------------*/
-/*
- * NAME
- * 	nztiee_IsEncrEnabled -  Checks to see if Encryption is Enabled
- *                               in the current Cipher Spec.
- * 
- * PARAMETERS
- * 	ctx	{IN}	Oracle SSL Context
- *      ncipher {IN}    CipherSuite
- *      EncrEnabled {OUT} Boolean for is Auth Enabled?
- * 
- * NOTES
- * 	
- * RETURNS
- *      NZERROR_OK on success.
- *      NZERROR_TK_INV_CIPHR_TYPE if Cipher Spec is not Recognized.
- */
-
-#ifdef __STDC__
-nzerror nztiee_IsEncrEnabled( nzctx *, ub2, boolean *);
-#else
-nzerror nztiee_IsEncrEnabled(/*_ nzctx *ctx, 
-                                  ub2 ncipher, 
-                                  boolean *EncrEnabled _*/);
-#endif
-/*---------------- nztihe_IsHashEnabled ----------------*/
-/*
- * NAME
- * 	nztihe_IsHashEnabled -  Checks to see if HAshing is Enabled
- *                               in the current Cipher Spec.
- * 
- * PARAMETERS
- * 	ctx	{IN}	Oracle SSL Context
- *      ncipher {IN}    CipherSuite
- *      hashEnabled {OUT} Boolean for is Auth Enabled?
- * 
- * NOTES
- * 	
- * RETURNS
- *      NZERROR_OK on success.
- *      NZERROR_TK_INV_CIPHR_TYPE if Cipher Spec is not Recognized.
- */
-
-#ifdef __STDC__
-nzerror nztihe_IsHashEnabled( nzctx *, ub2, boolean *);
-#else
-nzerror nztihe_IsHashEnabled(/*_ nzctx *ctx, 
-                                  ub2 ncipher, 
-                                  boolean *hashEnabled _*/);
-#endif
-
-/*
- *
- */
-
-#ifdef _STDC_
-nzerror nztGetIssuerName(nzctx *, nzttIdentity *, ub1 **, ub4 *);
-#else
-nzerror nztGetIssuerName(/*_ nzctx *ctx,
-                             nzttIdentity *identity,
-                             ub1  **issuername,
-                             ub4   *issuernamelen _*/);
-#endif
-
-#ifdef _STDC_
-nzerror nztGetSubjectName(nzctx *, nzttIdentity *, ub1 **, ub4 *);
-#else
-nzerror nztGetSubjectName(/*_ nzctx *ctx,
-                              nzttIdentity *identity,
-                              ub1  **subjectname,
-                              ub4   *subjectnamelen _*/);
-#endif
-
-
-#ifdef _STDC_
-nzerror nztGetBase64Cert(nzctx *, nzttIdentity *, ub1 **, ub4 *);
-#else
-nzerror nztGetBase64Cert(/*_ nzctx *ctx,
-                              nzttIdentity *identity,
-                              ub1  **b64cert,
-                              ub4   *b64certlen _*/);
-#endif
-
-#ifdef _STDC_
-nzerror nztGetSerialNumber(nzctx *, nzttIdentity *, ub1 **, ub4 *);
-#else
-nzerror nztGetSerialNumber(/*_ nzctx *ctx,
-                              nzttIdentity *identity,
-                              ub1   **serialnum,
-                              ub4    *serialnumlen _*/);
-#endif
-
-#ifdef _STDC_
-nzerror nztGetValidDate(nzctx *, nzttIdentity *, ub4 *, ub4 *);
-#else
-nzerror nztGetValidDate(/*_ nzctx *ctx,
-                            nzttIdentity *identity,
-                            ub4  *startdate, 
-                            ub4  *enddate  _*/);
-#endif
-
-#ifdef _STDC_
-nzerror nztGetVersion(nzctx *, nzttIdentity *, nzstrc *); 
-#else
-nzerror nztGetVersion(/*_ nzctx *ctx,
-                          nzttIdentity *identity,
-                          nzstrc *pVerStr  _*/);
-#endif
-
-#ifdef _STDC_
-nzerror nztGetPublicKey(nzctx *, nzttIdentity *, ub1 **, ub4 *);
-#else
-nzerror nztGetPublicKey(/*_ nzctx *ctx,
-                            nzttIdentity *identity,
-                            ub1  **pubKey,
-                            ub4   *pubKeylen _*/);
-#endif
-
-
-#ifdef _STDC_
-nzerror nztGenericDestroy(nzctx *, ub1 **);
-#else
-nzerror nztGenericDestroy(/*_ nzctx *ctx,
-                              ub1  **var _*/);
-#endif
-
-#ifdef _STDC_
-nzerror nztSetAppDefaultLocation(nzctx *, text *, size_t);
-#else
-nzerror nztSetAppDefaultLocation(/*_ nzctx *ctx,
-                                     text *,
-                                     size_t _*/);
-#endif
-
-#ifdef _STDC_
-nzerror nztSearchNZDefault(nzctx *, boolean *);
-#else
-nzerror nztSearchNZDefault(/*_ nzctx *ctx,
-                               boolean *search _*/);
-#endif
-
-
-#endif /* NZT_ORACLE */
-
diff --git a/src/terralib/drivers/Oracle/OCI/include/occi.h b/src/terralib/drivers/Oracle/OCI/include/occi.h
deleted file mode 100644
index e593341..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/occi.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright (c) 2000, 2002, Oracle Corporation.  All rights reserved.  */
- 
-/* 
-   NAME 
-     occi.h - Oracle C++ Interface header files.
-
-   DESCRIPTION 
-     <short description of facility this file declares/defines> 
-
-   RELATED DOCUMENTS 
-     <note any documents related to this facility>
- 
-   EXPORT FUNCTION(S) 
-     <external functions declared for use outside package - one-line 
-      descriptions>
-
-   INTERNAL FUNCTION(S)
-     <other external functions declared - one-line descriptions>
-
-   EXAMPLES
-
-   NOTES
-     <other useful comments, qualifications, etc.>
-
-   MODIFIED   (MM/DD/YY)
-   vvinay      08/19/02 - 
-   aahluwal    06/03/02 - bug 2360115
-   gayyappa    01/03/01 - removed inclusions before occiCommon.h
-   kmohan      04/11/00 - include oci.h and occiCommon.h also
-   rkasamse    04/03/00 - header file for all the OCCI classes
-   rkasamse    04/03/00 - Creation
-
-*/
-
-#ifndef OCCI_ORACLE
-# define OCCI_ORACLE
-
-#ifndef OCCICOMMON_ORACLE
-#include <occiCommon.h>
-#endif
-
-#ifndef OCCIDATA_ORACLE
-#include <occiData.h>
-#endif
-
-#ifndef OCCICONTROL_ORACLE
-#include <occiControl.h>
-#endif
-
-#ifndef OCCIOBJECTS_ORACLE
-#include <occiObjects.h>
-#endif
-
-#ifndef OCCIAQ_ORACLE
-#include <occiAQ.h>
-#endif
-
-/*---------------------------------------------------------------------------
-                     PUBLIC TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                     PRIVATE TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                           EXPORT FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                          INTERNAL FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-#endif                                              /* OCCI_ORACLE */
diff --git a/src/terralib/drivers/Oracle/OCI/include/occiAQ.h b/src/terralib/drivers/Oracle/OCI/include/occiAQ.h
deleted file mode 100644
index 6613235..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/occiAQ.h
+++ /dev/null
@@ -1,374 +0,0 @@
-/* Copyright (c) 2002, 2003, Oracle Corporation.  All rights reserved.  */
- 
-/* 
-   NAME 
-     occiAQ.h - Header file for occi AQ classes
-
-   DESCRIPTION 
-     Class declarations for Producer, Consumer, Message, Agent
-     Listener, Subscription
-
-   RELATED DOCUMENTS 
-     <note any documents related to this facility>
- 
-   EXPORT FUNCTION(S) 
-     <external functions declared for use outside package - one-line 
-     descriptions>
-
-   INTERNAL FUNCTION(S)
-     <other external functions declared - one-line descriptions>
-
-   EXAMPLES
-
-   NOTES
-     <other useful comments, qualifications, etc.>
-
-   MODIFIED   (MM/DD/YY)
-   cparampa    10/12/02 - creation
-
-*/
-
-#ifndef _olint   /* disable olint check */
-
-#ifndef OCCIAQ_ORACLE
-# define OCCIAQ_ORACLE
-
-#ifndef OCCICOMMON_ORACLE
-#include <occiCommon.h>
-#endif
-
-namespace oracle {
-namespace occi {
-namespace aq{
-
-/*---------------------------------------------------------------------------
-                     PUBLIC TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-class Message
-{
-  public:
-
-     enum MessageState
-     {
-        MSG_READY = OCI_MSG_READY,
-        MSG_WAITING = OCI_MSG_WAITING,
-        MSG_PROCESSED = OCI_MSG_PROCESSED,
-        MSG_EXPIRED = OCI_MSG_EXPIRED
-     };
-     enum PayloadType
-     {
-        RAW,
-        ANYDATA,
-        OBJECT
-     };
-
-     Message( const Environment *env );
-     Message( const Message& rhs);
-     ~Message();
-     
-     void operator=(const Message& rhs);
-     int getAttemptsToDequeue() const ;
-     void setCorrelationId( const OCCI_STD_NAMESPACE::string& corr_id ) ;
-     OCCI_STD_NAMESPACE::string getCorrelationId() const ;
-     void setDelay( int delay ) ;
-     int getDelay() const ;
-     Date getMessageEnqueuedTime() const ;
-     void setExceptionQueueName( const OCCI_STD_NAMESPACE::string& queue ) ;
-     OCCI_STD_NAMESPACE::string getExceptionQueueName() const ;
-     void setExpiration( int exp ) ;
-     int getExpiration() const ;
-     MessageState getMessageState() const ;
-     void setPriority( int priority ) ;
-     int getPriority() const ;
-     void setRecipientList( OCCI_STD_NAMESPACE::vector<Agent>& ag_list ) ;
-     void setSenderId( const Agent& sender ) ;
-     Agent getSenderId() const ;
-     void setOriginalMessageId( const Bytes& queue ) ;
-     Bytes getOriginalMessageId() const ;
-     void setNull();
-     bool isNull() const;
-
-     void setBytes( const Bytes& bytes); 
-     void setObject( PObject* pobj);
-     void setAnyData( const AnyData& any);
-
-     Bytes getBytes() const ;
-     PObject *getObject() ;
-     AnyData getAnyData() const ;
-
-     PayloadType getPayloadType( ) const;
-
-   private:
-     Ptr<MessageImpl> ptr;
-     OCIAQMsgProperties* getOCIMsgProperties() const;
-     Message( const Environment *env, const Connection *con, 
-          OCIAQMsgProperties *msgprop, void *data, unsigned int dataLen, 
-          PayloadType pType);
-     friend class ConsumerImpl;
-     friend class ProducerImpl;
-     friend class NotifyResult;
-};
-
-class Producer
-{
-   public:
-
-     enum EnqueueSequence
-     {
-       ENQ_BEFORE = OCI_ENQ_BEFORE,
-       ENQ_TOP    = OCI_ENQ_TOP
-     };
-     enum Visibility
-     {
-       ENQ_IMMEDIATE = OCI_ENQ_IMMEDIATE,
-       ENQ_ON_COMMIT = OCI_ENQ_ON_COMMIT
-     };
-     
-     Producer( const Connection *conn ); 
-     Producer( const Connection *conn, 
-               const OCCI_STD_NAMESPACE::string& queue ); 
-     Producer( const Producer& rhs);
-     ~Producer();
-
-     void operator=(const Producer& prod);
-     void setRelativeMessageId( const Bytes& msgid );
-     Bytes getRelativeMessageId() const;
-     void setSequenceDeviation( EnqueueSequence option );
-     EnqueueSequence getSequenceDeviation() const;
-     void setVisibility( Visibility option );
-     Visibility getVisibility() const;
-     void setQueueName( const OCCI_STD_NAMESPACE::string& queue );
-     OCCI_STD_NAMESPACE::string getQueueName() const;
-     void setTransformation( const OCCI_STD_NAMESPACE::string& fName);
-     OCCI_STD_NAMESPACE::string getTransformation() const;
-     Bytes send( Message& msg, const OCCI_STD_NAMESPACE::string& queue );
-     Bytes send( Message& msg );
-     void setNull();
-     bool isNull() const;
-
-  private:
-     Ptr<ProducerImpl> ptr; 
-};
-
-class Consumer
-{
-   public:
-
-     enum DequeueMode
-     {
-       DEQ_BROWSE  = OCI_DEQ_BROWSE,
-       DEQ_LOCKED  = OCI_DEQ_LOCKED,
-       DEQ_REMOVE  = OCI_DEQ_REMOVE,
-       DEQ_REMOVE_NODATA = OCI_DEQ_REMOVE_NODATA
-     };
-     enum Navigation
-     {
-       DEQ_FIRST_MSG        = OCI_DEQ_FIRST_MSG,
-       DEQ_NEXT_TRANSACTION = OCI_DEQ_NEXT_TRANSACTION,
-       DEQ_NEXT_MSG         = OCI_DEQ_NEXT_MSG
-     };
-     enum Visibility
-     {
-       DEQ_IMMEDIATE = OCI_DEQ_IMMEDIATE,
-       DEQ_ON_COMMIT = OCI_DEQ_ON_COMMIT
-     };
-     enum
-     {
-       DEQ_WAIT_FOREVER = OCI_DEQ_WAIT_FOREVER,
-       DEQ_NO_WAIT      = OCI_DEQ_NO_WAIT
-     };
-     
-     Consumer( const Connection *conn ); 
-     Consumer( const Connection * conn, const Agent& agent); 
-     Consumer( const Connection *conn,
-               const OCCI_STD_NAMESPACE::string& queue ); 
-     Consumer(const Consumer& con);
-     ~Consumer();
-    
-     void operator=(const Consumer& con);
-     void setAgent(const Agent& agent);
-     void setConsumerName( const OCCI_STD_NAMESPACE::string& name );
-     OCCI_STD_NAMESPACE::string getConsumerName() const;
-     void setCorrelationId( const OCCI_STD_NAMESPACE::string& cor_id );
-     OCCI_STD_NAMESPACE::string getCorrelationId() const;
-     void setDequeueMode( DequeueMode mode );
-     DequeueMode getDequeueMode() const;
-     void setMessageIdToDequeue( const Bytes& msgid );
-     Bytes getMessageIdToDequeue() const;
-     void setPositionOfMessage( Navigation pos );
-     Navigation getPositionOfMessage() const;
-     void setVisibility( Visibility option );
-     Visibility getVisibility() const;
-     void setWaitTime( unsigned int wait );
-     unsigned int getWaitTime() const;
-     void setQueueName( const OCCI_STD_NAMESPACE::string& queue );
-     OCCI_STD_NAMESPACE::string getQueueName() const;
-     void setTransformation( const OCCI_STD_NAMESPACE::string& fName);
-     OCCI_STD_NAMESPACE::string getTransformation() const;
-     Message receive( Message::PayloadType pType,
-                      const OCCI_STD_NAMESPACE::string& type="",
-                      const OCCI_STD_NAMESPACE::string& schema="");
-     void setNull();
-     bool isNull() const;
-
-   private:
-     Ptr<ConsumerImpl> ptr; 
-};
-
-class Agent
-{
-   public:
-     Agent( const Environment *env ); 
-     Agent( const Environment *env, 
-            const OCCI_STD_NAMESPACE::string& name, 
-            const OCCI_STD_NAMESPACE::string& address, 
-            unsigned int protocol=0 ) ; 
-     Agent(const Agent& a);
-     ~Agent() ;
- 
-     void operator=(const Agent& a);
-     void setName( const OCCI_STD_NAMESPACE::string& name );
-     OCCI_STD_NAMESPACE::string getName() const;
-     void setAddress( const OCCI_STD_NAMESPACE::string& addr );
-     OCCI_STD_NAMESPACE::string getAddress() const;
-     void setProtocol(unsigned int protocol = 0);
-     unsigned int getProtocol() const; 
-     void setNull(); 
-     bool isNull() const;
-     OCIAQAgent* getOCIAQAgent() const;
-
-   private:
-     Ptr<AgentImpl> ptr;
-     Agent( const Environment *env, OCIAQAgent *rhs, bool toFree = false );
-     friend class Listener;
-     friend class MessageImpl;
-};
-
-class Listener
-{
-   public:
-     Listener( const Connection *conn ); 
-     Listener( const Connection *conn, 
-               OCCI_STD_NAMESPACE::vector<Agent> &agList, 
-               int waitTime=0 );
-     ~Listener();
-     
-     Agent listen();
-     void setAgentList(OCCI_STD_NAMESPACE::vector<Agent> &agList);
-     void setTimeOutForListen(int waitTime);
-     OCCI_STD_NAMESPACE::vector<Agent> getAgentList() const;
-     int getTimeOutForListen() const; 
-
-   private:
-     const ConnectionImpl *conn; 
-     OCIAQAgent** agentList; 
-     unsigned int numAgents;
-     int timeOut;
-     void *listenerExt;
-};
-
-
-class Subscription
-{
-  public:
-    enum Presentation
-    {
-       PRES_DEFAULT = OCI_SUBSCR_PRES_DEFAULT,
-       PRES_XML = OCI_SUBSCR_PRES_XML
-    };
-    enum Protocol
-    {
-       PROTO_CBK = OCI_SUBSCR_PROTO_OCI,
-       PROTO_MAIL = OCI_SUBSCR_PROTO_MAIL,
-       PROTO_SERVER = OCI_SUBSCR_PROTO_SERVER,
-       PROTO_HTTP = OCI_SUBSCR_PROTO_HTTP
-    };
-    enum Namespace
-    {
-       NS_ANONYMOUS = OCI_SUBSCR_NAMESPACE_ANONYMOUS,
-       NS_AQ = OCI_SUBSCR_NAMESPACE_AQ
-    }; 
-    
-    Subscription(const Environment* env);
-    Subscription(const Environment* env, OCISubscription* sub);
-    Subscription(const Subscription& sub);
-    ~Subscription();
-    
-    void operator=(const Subscription& sub);
-    unsigned int getDatabaseServersCount() const;
-    void setDatabaseServerNames(
-        const OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string>& dbsrv);
-    OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string>
-                      getDatabaseServerNames() const ;
-    void setNotifyCallback(unsigned int (*callback)(Subscription& sub, 
-                                                    NotifyResult *nr));
-    unsigned int  (*getNotifyCallback() const)(Subscription& sub, 
-                                               NotifyResult *nr); 
-    void setCallbackContext(void* ctx);
-    void* getCallbackContext() const;
-    void setSubscriptionName(const OCCI_STD_NAMESPACE::string& name);
-    OCCI_STD_NAMESPACE::string getSubscriptionName() const ;
-    void setSubscriptionNamespace(Namespace nameSpace);
-    Namespace getSubscriptionNamespace() const ;
-    void setPayload(const Bytes& payload);
-    Bytes getPayload() const ;
-    void setRecipientName( const OCCI_STD_NAMESPACE::string& name);
-    OCCI_STD_NAMESPACE::string getRecipientName() const;
-    void setPresentation( Presentation pres) ;
-    Presentation getPresentation() const ;
-    void setProtocol( Protocol prot) ;
-    Protocol getProtocol() const ;
-    OCISubscription* getOCISubscription() const;
-    void setNull();
-    bool isNull() const;
-    Environment* getEnvironment() const;
-
-  private:
-    Ptr<SubscriptionImpl> ptr;
-};
-
-class NotifyResult
-{
-   public:
-     Bytes getPayload() const;
-     Message getMessage() const;
-     Bytes getMessageId() const;
-     OCCI_STD_NAMESPACE::string getConsumerName() const;
-     OCCI_STD_NAMESPACE::string getQueueName() const;
-
-  private:
-     const EnvironmentImpl *env;
-     void *payload;
-     unsigned int payloadLen;
-     dvoid *desc;
-     ub4 mode;
-     void *notifyResultExt;
-
-     //private constructor
-     NotifyResult(const Environment *env, void *payload, ub4 payloadLen, 
-                  void *pdescriptor, ub4 mode);
-
-     friend class SubscriptionImpl;
-};
-      
-/*---------------------------------------------------------------------------
-                     PRIVATE TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                           EXPORT FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                          INTERNAL FUNCTIONS
-  ---------------------------------------------------------------------------*/
-} /* end of namespace aq */
-} /* end of namespace occi */
-} /* end of namespace oracle */
-
-#endif                                              /* OCCIAQ_ORACLE */
-
-#endif                                              /* _olint */
diff --git a/src/terralib/drivers/Oracle/OCI/include/occiCommon.h b/src/terralib/drivers/Oracle/OCI/include/occiCommon.h
deleted file mode 100644
index 0813cf8..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/occiCommon.h
+++ /dev/null
@@ -1,872 +0,0 @@
-/* Copyright (c) 2000, 2003, Oracle Corporation.  All rights reserved.  */
- 
-/* 
-   NAME 
-     occiCommon.h - header file for doing forward references
-
-   DESCRIPTION 
-     Just declare all the classes
-
-   RELATED DOCUMENTS 
-     <note any documents related to this facility>
- 
-   EXPORT FUNCTION(S) 
-     <external functions declared for use outside package - one-line 
-      descriptions>
-
-   INTERNAL FUNCTION(S)
-     <other external functions declared - one-line descriptions>
-
-   EXAMPLES
-
-   NOTES
-     <other useful comments, qualifications, etc.>
-
-   MODIFIED   (MM/DD/YY)
-   cparampa    09/03/03 - Added NotifyResult
-   rvallam     02/12/03 - modified BFloat/BDouble interface - BFloat/BDouble
-                          type is now a struct  
-   shiyer      01/02/03 - add setVector(vector<UString>,string schema/type)
-   rvallam     11/19/02 - added objects support for interval classes
-   cparampa    12/11/02 - removed declaration for Payload
-   srseshad    11/14/02 - Add OCCIIBFLOAT/OCCIIBDOUBLE
-   cparampa    10/17/02 - prototypes for getVectorOf BDouble and BFloat taking
-                          anydata.
-   cparampa    10/09/02 - Declarations for AQ classes
-   rvallam     10/12/02 - added new method for array pin - pinVectorOfRefs
-   rvallam     10/10/02 - objects performance enhancement - modified
-                          getObject and getVector<T *> to take the
-                          schName and typeName of the object
-   rvallam     10/11/02 - added native float/double API - get(set)vector
-                          methods, added the enum values for BFLOAT and
-                          BDOUBLE and typecodes for the same
-   shiyer      07/31/02 - 10iR1, OCCI Globalization support
-   cparampa    08/27/02 - Added forward reference for StatelessConnnectionPool
-                          and StatelessConnectionPoolImpl  
-   vvinay      06/25/02 - fix #2415021:const of string changed
-   aahluwal    06/03/02 - bug 2360115
-   gayyappa    12/27/01 - fix bug 2073482 - remove include <map> 
-   gayyappa    10/29/01 - removed CharSet - bug 1853748 
-   gayyappa    09/21/01 - #include <map>
-   rratnam     06/18/01 - fixed bug1777042 -- HP support for "std"
-   rvallam     06/11/01 - fixed NT porting problem with template functions-
-                          added generic method get(set)VectorOfRefs
-   rratnam     04/25/01 - fixed NT porting bug1673780
-   rvallam     04/12/01 - added dummy parameter in getVector of AnyData
-                          for PObject *
-   rratnam     04/10/01 - removed references to wstring
-   rvallam     04/02/01 - fixed linux porting bug 1654670
-   gayyappa    03/29/01 - remove get/set vector methods for int/float/double/
-                          unsigned int for anydata.
-   rvallam     03/20/01 - added dummy parameter for Type in getVector for
-                          void * in statement and ResultSet
-                          added setVector of Ref<T> and Number prototype
-                          for statement
-   gayyappa    03/15/01 - added parameter to getvector on anydata with void*.
-   rratnam     03/13/01 - added virtual destructor to RefCounted
-   rkasamse    03/15/01 - add an arg, Type, to getVector of void*
-   rratnam     03/06/01 - removed references() from RefCounted
-   slari       02/15/01 - suppress lint warnings
-   rratnam     02/12/01 - removed #include <iostream.h>
-   rvallam     02/07/01 - added enum OCCI_MAX_PREFETCH_DEPTH
-   gayyappa    01/15/01 - change ub4 to unsigned int for
-                          get/set vector methods..
-   gayyappa    01/03/01 - put "using namespace std" in a ifndef
-   gayyappa    12/14/00 - add forward declaration for ResultSetImpl 
-                          and StatementImpl.
-                          Remove commented #defines
-   gayyappa    11/17/00 - change Session to Connection
-   gayyappa    09/12/00 - remove OCCI_SQLT_INT, OCCI_SQLT_FLT 
-                          remove OCCIUNSIGNED_CHAR, OCCISHORT, 
-                          OCCIUNSIGNED_SHORT, OCCILONG ,OCCI_LONGDOUBLE,
-                          OCCI_UNSIGNEDLONG  from enum Type.
-   gayyappa    08/25/00 - add const to get/set vector mthds of anydata.
-   rvallam     08/10/00 - updated Type enum
-   slari       08/04/00 - add OCCIROWID and OCCICURSOR
-   rkasamse    08/04/00 - add setVector methods
-   slari       07/24/00 - add BytesImpl
-   rratnam     07/25/00 - Added forward declarations for LobStreamImpl,
-                          ConnectionPool[Impl], removed those for
-                          Connection[Impl]
-   rkasamse    07/28/00 - add getVector(ResultSet*...) methods
-   rratnam     06/14/00 - Added forward declaration for RefImpl,
-                          added DefaultCharSet to the CharSet 
-                          enum
-   rratnam     06/13/00 - Added DefaultCharSet to the CharSet enum
-   kmohan      05/31/00 - RefCounted no more templated
-   rratnam     22/05/00 - Added forward declaration of ConnectionImpl, and the
-                         LobOpenMode enum
-   kmohan      05/05/00 - Added global routine prototypes
-   rkasamse    05/23/00 -
-   slari       04/28/00 - add forward declaration of SQLExceptionImpl
-   kmohan      04/19/00 - Added enums Type,CharSet,CharSetForm
-   gayyappa    04/18/00 - removed checkStatus. added checkOCICall and 
-                          createSQLEXception functions 
-   kmohan      04/11/00 - Creation
-
-*/
-
-
-#ifndef OCCICOMMON_ORACLE
-# define OCCICOMMON_ORACLE
-
-#ifndef _olint
-
-#ifndef OCI_ORACLE
-#include <oci.h>
-#endif
-
-#ifndef ORASTRINGSTL
-#define ORASTRINGSTL
-#include <string>
-#endif
-
-#ifndef ORAVECTORSTL
-#include <vector>
-#define ORAVECTORSTL
-#endif
-
-#ifndef ORALISTSTL
-#include <list>
-#define ORALISTSTL
-#endif
-
-#define OCCI_STD_NAMESPACE std
-#define OCCI_HAVE_STD_NAMESPACE 1
-
-namespace oracle {
-namespace occi {
-
-//UString is the class for UTF16 characterset
-typedef OCCI_STD_NAMESPACE::basic_string<utext> UString;
-
-class Environment;
-class EnvironmentImpl;
-class Connection;
-class ConnectionImpl;
-class ConnectionPool;
-class ConnectionPoolImpl;
-class StatelessConnectionPool;
-class StatelessConnectionPoolImpl;
-class Statement;
-class StatementImpl;
-class ResultSet;
-class ResultSetImpl;
-class SQLException;
-class SQLExceptionImpl;
-class Stream;
-class PObject;
-class Number;
-class Bytes;
-class BytesImpl;
-class Date;
-class Timestamp;
-
-class MetaData;
-class MetaDataImpl;
-template <class T> class Ref;
-class RefImpl;
-class RefAny;
-class Blob;
-class Bfile;
-class Clob;
-class LobStreamImpl;
-class AnyData;
-class AnyDataImpl;
-class Map;
-class IntervalDS;
-class IntervalYM;
-
-namespace aq {
-class Message;
-class MessageImpl;
-class Agent;
-class AgentImpl;
-class Producer;
-class ProducerImpl;
-class Consumer;
-class ConsumerImpl;
-class Listener;
-class Subscription;
-class SubscriptionImpl;
-class NotifyResult;
-}
-
-typedef struct BFloat BFloat;
-typedef struct BDouble BDouble;
-
-/*---------------------------------------------------------------------------
-                           ENUMERATORS
-  ---------------------------------------------------------------------------*/
-enum Type
-{
- OCCI_SQLT_CHR=SQLT_CHR,
- OCCI_SQLT_NUM=SQLT_NUM,
- OCCIINT = SQLT_INT,
- OCCIFLOAT = SQLT_FLT,
- OCCIBFLOAT = SQLT_BFLOAT,
- OCCIBDOUBLE = SQLT_BDOUBLE,
- OCCIIBFLOAT = SQLT_IBFLOAT,
- OCCIIBDOUBLE = SQLT_IBDOUBLE,
- OCCI_SQLT_STR=SQLT_STR,
- OCCI_SQLT_VNU=SQLT_VNU,
- OCCI_SQLT_PDN=SQLT_PDN,
- OCCI_SQLT_LNG=SQLT_LNG,
- OCCI_SQLT_VCS=SQLT_VCS,
- OCCI_SQLT_NON=SQLT_NON,
- OCCI_SQLT_RID=SQLT_RID,
- OCCI_SQLT_DAT=SQLT_DAT,
- OCCI_SQLT_VBI=SQLT_VBI,
- OCCI_SQLT_BIN=SQLT_BIN,
- OCCI_SQLT_LBI=SQLT_LBI,
- OCCIUNSIGNED_INT = SQLT_UIN,
- OCCI_SQLT_SLS=SQLT_SLS,
- OCCI_SQLT_LVC=SQLT_LVC,
- OCCI_SQLT_LVB=SQLT_LVB,
- OCCI_SQLT_AFC=SQLT_AFC,
- OCCI_SQLT_AVC=SQLT_AVC,
- OCCI_SQLT_CUR=SQLT_CUR,
- OCCI_SQLT_RDD=SQLT_RDD,
- OCCI_SQLT_LAB=SQLT_LAB,
- OCCI_SQLT_OSL=SQLT_OSL,
- OCCI_SQLT_NTY=SQLT_NTY,
- OCCI_SQLT_REF=SQLT_REF,
- OCCI_SQLT_CLOB=SQLT_CLOB,
- OCCI_SQLT_BLOB=SQLT_BLOB,
- OCCI_SQLT_BFILEE=SQLT_BFILEE,
- OCCI_SQLT_CFILEE=SQLT_CFILEE,
- OCCI_SQLT_RSET=SQLT_RSET,
- OCCI_SQLT_NCO=SQLT_NCO,
- OCCI_SQLT_VST=SQLT_VST,
- OCCI_SQLT_ODT=SQLT_ODT,
- OCCI_SQLT_DATE=SQLT_DATE,
- OCCI_SQLT_TIME=SQLT_TIME,
- OCCI_SQLT_TIME_TZ=SQLT_TIME_TZ,
- OCCI_SQLT_TIMESTAMP=SQLT_TIMESTAMP,
- OCCI_SQLT_TIMESTAMP_TZ=SQLT_TIMESTAMP_TZ,
- OCCI_SQLT_INTERVAL_YM=SQLT_INTERVAL_YM,
- OCCI_SQLT_INTERVAL_DS=SQLT_INTERVAL_DS,
- OCCI_SQLT_TIMESTAMP_LTZ=SQLT_TIMESTAMP_LTZ,
- OCCI_SQLT_FILE=SQLT_FILE,
- OCCI_SQLT_CFILE=SQLT_CFILE,
- OCCI_SQLT_BFILE=SQLT_BFILE,
- 
- OCCICHAR = 32 *1024,
- OCCIDOUBLE,
- OCCIBOOL,
- OCCIANYDATA ,
- OCCINUMBER,
- OCCIBLOB,
- OCCIBFILE,
- OCCIBYTES,
- OCCICLOB ,
- OCCIVECTOR,
- OCCIMETADATA,
- OCCIPOBJECT,
- OCCIREF ,
- OCCIREFANY,
- OCCISTRING  ,
- OCCISTREAM  ,
- OCCIDATE  ,
- OCCIINTERVALDS  ,
- OCCIINTERVALYM  ,
- OCCITIMESTAMP,
- OCCIROWID,
- OCCICURSOR
-
-
-};
-
-enum LockOptions {OCCI_LOCK_NONE = OCI_LOCK_NONE,
-                      OCCI_LOCK_X = OCI_LOCK_X, 
-                      OCCI_LOCK_X_NOWAIT = OCI_LOCK_X_NOWAIT
-                     };
-
-enum {OCCI_MAX_PREFETCH_DEPTH = UB4MAXVAL};
-
-enum TypeCode
-{
-
-OCCI_TYPECODE_REF = OCI_TYPECODE_REF,
-OCCI_TYPECODE_DATE = OCI_TYPECODE_DATE,
-OCCI_TYPECODE_REAL = OCI_TYPECODE_REAL,
-OCCI_TYPECODE_DOUBLE = OCI_TYPECODE_DOUBLE,
-OCCI_TYPECODE_BDOUBLE = OCI_TYPECODE_BDOUBLE,
-OCCI_TYPECODE_FLOAT = OCI_TYPECODE_FLOAT,
-OCCI_TYPECODE_BFLOAT = OCI_TYPECODE_BFLOAT,
-OCCI_TYPECODE_NUMBER = OCI_TYPECODE_NUMBER,
-OCCI_TYPECODE_DECIMAL = OCI_TYPECODE_DECIMAL,
-OCCI_TYPECODE_OCTET = OCI_TYPECODE_OCTET,
-OCCI_TYPECODE_INTEGER = OCI_TYPECODE_INTEGER,
-OCCI_TYPECODE_SMALLINT= OCI_TYPECODE_SMALLINT,
-OCCI_TYPECODE_RAW = OCI_TYPECODE_RAW,
-OCCI_TYPECODE_VARCHAR2 = OCI_TYPECODE_VARCHAR2,
-OCCI_TYPECODE_VARCHAR = OCI_TYPECODE_VARCHAR,
-OCCI_TYPECODE_CHAR = OCI_TYPECODE_CHAR,
-OCCI_TYPECODE_VARRAY= OCI_TYPECODE_VARRAY,
-OCCI_TYPECODE_TABLE = OCI_TYPECODE_TABLE,
-OCCI_TYPECODE_CLOB = OCI_TYPECODE_CLOB,
-OCCI_TYPECODE_BLOB = OCI_TYPECODE_BLOB,
-OCCI_TYPECODE_BFILE = OCI_TYPECODE_BFILE,
-OCCI_TYPECODE_OBJECT = OCI_TYPECODE_OBJECT,
-OCCI_TYPECODE_NAMEDCOLLECTION = OCI_TYPECODE_NAMEDCOLLECTION
-};
-
-enum CharSetForm
-{
-  OCCI_SQLCS_IMPLICIT = SQLCS_IMPLICIT // use local db char set
- ,OCCI_SQLCS_NCHAR = SQLCS_NCHAR // use local db nchar set
- ,OCCI_SQLCS_EXPLICIT = SQLCS_EXPLICIT // char set explicitly specified
- ,OCCI_SQLCS_FLEXIBLE = SQLCS_FLEXIBLE // pl/sql flexible parameter
-};
-
-enum LobOpenMode
-{ OCCI_LOB_READONLY = OCI_LOB_READONLY
- ,OCCI_LOB_READWRITE = OCI_LOB_READWRITE
-};
-
-class RefCounted {
-public:
-    RefCounted();
-    virtual ~RefCounted(){} 
-    const RefCounted * newRef() const;
-    void deleteRef() const;
-
-private:
-
-    void onZeroReferences();
-    unsigned long references_;
-  };
-
-template <class T> 
-class ConstPtr
-{
-
-public:
-
-ConstPtr( const T* ptr = 0 );
-ConstPtr( const ConstPtr<T>& mp );
-~ConstPtr();
-const T * operator->() const;
-const T* rawPtr() const;
-
-#ifdef MEMBER_TEMPLATE
-template<class OtherType> operator ConstPtr<OtherType>();
-#endif
-
-protected:
-
-void operator=( const ConstPtr<T>& mp );
-const T* rawPtr_;
-
-};
-
-template <class T>
-class Ptr : public ConstPtr<T> {
-
-public:
-
-Ptr( T* ptr = 0 );
-Ptr( const Ptr<T>& mp );
-void operator=( const Ptr<T>& mp );
-const T * operator->() const;
-T * operator->();
-T* rawPtr() ;
-const T* rawPtr() const;
-
-
-
-#ifdef MEMBER_TEMPLATE
-  template<class OtherType>
-  operator Ptr<OtherType>();
-#endif
-
-};
-
-/*---------------------------------------------------------------------------
-                           EXPORT FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-  void getVector(const AnyData &any, 
-  OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect);
-  void getVector(const AnyData &any,
-  OCCI_STD_NAMESPACE::vector<UString> &vect);
-  void getVector( const AnyData &any,
-  OCCI_STD_NAMESPACE::vector<Blob> &vect) ;
-  void getVector( const AnyData &any,
-  OCCI_STD_NAMESPACE::vector<Clob> &vect) ;
-  void getVector( const AnyData &any, 
-  OCCI_STD_NAMESPACE::vector<Bfile> &vect) ;
-  void getVector( const AnyData &any, 
-  OCCI_STD_NAMESPACE::vector<Number> &vect) ;
-  void getVector( const AnyData &any,
-  OCCI_STD_NAMESPACE::vector<BFloat> &vect);
-  void getVector(const AnyData &any,
-  OCCI_STD_NAMESPACE::vector<BDouble> &vect);
-  void getVector( const AnyData &any, 
-  OCCI_STD_NAMESPACE::vector<Bytes> &vect) ;
-  void getVector( const AnyData &any, 
-  OCCI_STD_NAMESPACE::vector<Date> &vect) ;
-  void getVector( const AnyData &any, 
-  OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
-  void getVector( const AnyData &any,
-  OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
-  void getVector( const AnyData &any,
-  OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
-  template <class T>
-  void getVectorOfRefs( const AnyData &any, 
-  OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ;
-  #ifndef WIN32COMMON
-  template <class T>
-  void getVector(const AnyData &any,
-  OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ;
-  #endif
-  #ifdef WIN32COMMON
-  template <class T>
-  void getVector(const AnyData &any,
-  OCCI_STD_NAMESPACE::vector<T> &vect,
-  void *(*rSQL)(void *));
-  #else
-  template <class T>
-  void getVector(const AnyData &any,
-  OCCI_STD_NAMESPACE::vector<T *> &vect,
-  void *(*rSQL)(void *));
-  #endif
-
-  void setVector( AnyData &any, 
-  const OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect) ;
-  void setVector( AnyData &any, 
-  const OCCI_STD_NAMESPACE::vector<UString> &vect) ;
-  void setVector( AnyData &any,
-  const OCCI_STD_NAMESPACE::vector<Blob> &vect) ;
-  void setVector( AnyData &any,
-  const OCCI_STD_NAMESPACE::vector<Clob> &vect) ;
-  void setVector( AnyData &any, 
-  const OCCI_STD_NAMESPACE::vector<Bfile> &vect) ;
-  void setVector( AnyData &any,
-  const OCCI_STD_NAMESPACE::vector<BFloat> &vect) ;
-  void setVector( AnyData &any,
-  const OCCI_STD_NAMESPACE::vector<BDouble> &vect) ;
-  void setVector( AnyData &any, 
-  const OCCI_STD_NAMESPACE::vector<Number> &vect) ;
-  void setVector( AnyData &any, 
-  const OCCI_STD_NAMESPACE::vector<Bytes> &vect) ;
-  void setVector( AnyData &any, 
-  const OCCI_STD_NAMESPACE::vector<Date> &vect) ;
-  void setVector( AnyData &any, 
-  const OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
-  void setVector( AnyData &any,
-  const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
-  void setVector( AnyData &any,
-  const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
-  template <class T>
-  void setVectorOfRefs( AnyData &any, 
-  const OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ;
-  #ifndef WIN32COMMON
-  template <class T>
-  void setVector( AnyData &any, 
-  const OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ;
-  #endif
-  #ifdef WIN32COMMON
-  template <class T>
-  void setVector( AnyData &any,
-  const OCCI_STD_NAMESPACE::vector< T > &vect) ;
-  #else
-  template <class T>
-  void setVector( AnyData &any,
-  const OCCI_STD_NAMESPACE::vector< T* > &vect) ;
-  #endif
-
-  void getVector( ResultSet *rs, unsigned int index, 
-  OCCI_STD_NAMESPACE::vector<int> &vect) ;
-  void getVector( ResultSet *rs, unsigned int index, 
-  OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect) ;
-  void getVector( ResultSet *rs, unsigned int index, 
-  OCCI_STD_NAMESPACE::vector<UString> &vect) ;//UTF16 support
-  void getVector(ResultSet  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<unsigned int> &vect) ;
-  void getVector(ResultSet  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<float> &vect); 
-  void getVector(ResultSet  *rs, unsigned int,
-  OCCI_STD_NAMESPACE::vector<BFloat> &vect);
-  void getVector(ResultSet  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<double> &vect);
-  void getVector(ResultSet  *rs, unsigned int,
-  OCCI_STD_NAMESPACE::vector<BDouble> &vect);
-  void getVector(ResultSet  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Date> &vect) ;
-  void getVector(ResultSet  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
-  void getVector(ResultSet  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<RefAny> &vect) ;
-  void getVector(ResultSet  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Blob> &vect) ;
-  void getVector(ResultSet  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Clob> &vect) ;
-  void getVector(ResultSet  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Bfile> &vect) ;
-  void getVector(ResultSet  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Number> &vect) ;
-  void getVector(ResultSet  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
-  void getVector(ResultSet  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
-  template <class T>
-  void getVectorOfRefs(ResultSet  *rs, unsigned int,
-  OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ;
-  #ifndef WIN32COMMON
-  template <class T>
-  void getVector(ResultSet  *rs, unsigned int,
-  OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ;
-  #endif
-  #ifdef WIN32COMMON
-  template <class T>
-  void getVector( ResultSet *rs, unsigned int index,
-  OCCI_STD_NAMESPACE::vector< T > &vect) ;
-  #else
-  template <class T>
-  void getVector( ResultSet *rs, unsigned int index,
-  OCCI_STD_NAMESPACE::vector< T* > &vect) ;
-  #endif
-
-
-  void getVector(Statement  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<RefAny> &vect) ;
-  void getVector(Statement  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Blob> &vect) ;
-  void getVector(Statement  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Clob> &vect) ;
-  void getVector(Statement  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Bfile> &vect) ;
-  void getVector(Statement  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Number> &vect) ;
-  void getVector(Statement  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
-  void getVector(Statement  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
-  void getVector( Statement *rs, unsigned int index, 
-  OCCI_STD_NAMESPACE::vector<int> &vect) ;
-  void getVector( Statement *rs, unsigned int index,
-  OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect) ;
-  void getVector( Statement *rs, unsigned int index,
-  OCCI_STD_NAMESPACE::vector<UString> &vect) ;//UTF16 support
-  void getVector(Statement  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<unsigned int> &vect) ;
-  void getVector(Statement  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<float> &vect) ;
-  void getVector(Statement  *rs, unsigned int,
-  OCCI_STD_NAMESPACE::vector<BFloat> &vect) ;
-  void getVector(Statement  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<double> &vect) ;
-  void getVector(Statement  *rs, unsigned int,
-  OCCI_STD_NAMESPACE::vector<BDouble> &vect) ;
-  void getVector(Statement  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Date> &vect) ;
-  void getVector(Statement  *rs, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
-  template <class T>
-  void getVectorOfRefs(Statement  *rs, unsigned int,
-  OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ;
-  #ifndef WIN32COMMON
-  template <class T>
-  void getVector(Statement  *rs, unsigned int,
-  OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ;
-  #endif
-  #ifdef WIN32COMMON
-  template <class T>
-  void getVector( Statement *rs, unsigned int index,
-  OCCI_STD_NAMESPACE::vector< T > &vect) ;
-  #else
-  template <class T>
-  void getVector( Statement *rs, unsigned int index,
-  OCCI_STD_NAMESPACE::vector< T* > &vect) ;
-  #endif
-
-
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<int> &vect, 
-                 const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<unsigned int> &vect, 
-                 const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<double> &vect, 
-                 const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVector(Statement *stmt, unsigned int paramIndex,
-                 const OCCI_STD_NAMESPACE::vector<BDouble> &vect,
-                 const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<float> &vect, 
-                 const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVector(Statement *stmt, unsigned int paramIndex,
-                 const OCCI_STD_NAMESPACE::vector<BFloat> &vect,
-                 const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVector(Statement *stmt, unsigned int paramIndex,
-                 const OCCI_STD_NAMESPACE::vector<Number> &vect,
-                 const OCCI_STD_NAMESPACE::string &sqltype);
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-         const OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect,
-         const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<RefAny> &vect, 
-                 const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Blob> &vect, 
-                 const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Clob> &vect, 
-                 const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Bfile> &vect, 
-                 const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Timestamp> &vect, 
-                 const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect, 
-                 const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect, 
-                 const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Date> &vect, 
-                 const OCCI_STD_NAMESPACE::string &sqltype) ;
-  template  <class T>
-  void setVectorOfRefs(Statement *stmt, unsigned int paramIndex,
-  const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
-  const OCCI_STD_NAMESPACE::string &sqltype) ;
-  #ifndef WIN32COMMON
-  template  <class T>
-  void setVector(Statement *stmt, unsigned int paramIndex,
-  const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
-  const OCCI_STD_NAMESPACE::string &sqltype) ;
-  #endif
-  #ifdef WIN32COMMON
-  template <class T>
-  void setVector( Statement *stmt, unsigned int paramIndex, 
-                  const OCCI_STD_NAMESPACE::vector< T > &vect, 
-                  const OCCI_STD_NAMESPACE::string   &sqltype) ;
-  #else
-  template <class T>
-  void setVector( Statement *stmt, unsigned int paramIndex,
-                  const OCCI_STD_NAMESPACE::vector<T* > &vect, 
-                  const OCCI_STD_NAMESPACE::string &sqltype) ;
-  #endif
-
-/* -----------------------------------------------------------------------------------
-   Statement setVector functions, schema & type separate arguments - multibyte support
-   -----------------------------------------------------------------------------------
-*/
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<int> &vect, 
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<unsigned int> &vect, 
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<double> &vect, 
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex,
-                 const OCCI_STD_NAMESPACE::vector<BDouble> &vect,
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<float> &vect, 
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex,
-                 const OCCI_STD_NAMESPACE::vector<BFloat> &vect,
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex,
-                 const OCCI_STD_NAMESPACE::vector<Number> &vect,
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName);
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-         const OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect,
-         const OCCI_STD_NAMESPACE::string &schemaName,
-         const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<RefAny> &vect, 
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Blob> &vect, 
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Clob> &vect, 
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Bfile> &vect, 
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Timestamp> &vect, 
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect, 
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect, 
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Date> &vect, 
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  template  <class T>
-  void setVectorOfRefs(Statement *stmt, unsigned int paramIndex,
-  const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
-  const OCCI_STD_NAMESPACE::string &schemaName,
-  const OCCI_STD_NAMESPACE::string &typeName) ;
-
-  #ifndef WIN32COMMON
-  template  <class T>
-  void setVector(Statement *stmt, unsigned int paramIndex,
-  const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
-  const OCCI_STD_NAMESPACE::string &schemaName,
-  const OCCI_STD_NAMESPACE::string &typeName) ;
-  #endif
-
-  #ifdef WIN32COMMON
-  template <class T>
-  void setVector( Statement *stmt, unsigned int paramIndex, 
-                  const OCCI_STD_NAMESPACE::vector< T > &vect, 
-                  const OCCI_STD_NAMESPACE::string &schemaName,
-                  const OCCI_STD_NAMESPACE::string &typeName) ;
-  #else
-  template <class T>
-  void setVector( Statement *stmt, unsigned int paramIndex,
-  const OCCI_STD_NAMESPACE::vector<T* > &vect, const OCCI_STD_NAMESPACE::string
-  &schemaName, const OCCI_STD_NAMESPACE::string &typeName) ;
-  #endif
-
-/*-------------------------------------------------------------------------
-  Statement setVector function - UTF16 support
-  -------------------------------------------------------------------------
-*/
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<int> &vect, 
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<unsigned int> &vect, 
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<double> &vect, 
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex,
-                 const OCCI_STD_NAMESPACE::vector<BDouble> &vect,
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<float> &vect, 
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex,
-                 const OCCI_STD_NAMESPACE::vector<BFloat> &vect,
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex,
-                 const OCCI_STD_NAMESPACE::vector<Number> &vect,
-                 const UString &schemaName,
-                 const UString &typeName);
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<UString> &vect,
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<UString> &vect,
-                 const OCCI_STD_NAMESPACE::string &schemaName,
-                 const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<RefAny> &vect, 
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Blob> &vect, 
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Clob> &vect, 
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Bfile> &vect, 
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Timestamp> &vect, 
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect, 
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect, 
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  void setVector(Statement *stmt, unsigned int paramIndex, 
-                 const OCCI_STD_NAMESPACE::vector<Date> &vect, 
-                 const UString &schemaName,
-                 const UString &typeName) ;
-  template  <class T>
-  void setVectorOfRefs(Statement *stmt, unsigned int paramIndex,
-  const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
-  const UString &schemaName,
-  const UString &typeName) ;
-
-  #ifndef WIN32COMMON
-  template  <class T>
-  void setVector(Statement *stmt, unsigned int paramIndex,
-  const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
-  const UString &schemaName,
-  const UString &typeName) ;
-  #endif
-
-  #ifdef WIN32COMMON
-  template <class T>
-  void setVector( Statement *stmt, unsigned int paramIndex, 
-                  const OCCI_STD_NAMESPACE::vector< T > &vect, 
-                  const UString &schemaName,
-                  const UString &typeName) ;
-  #else
-  template <class T>
-  void setVector( Statement *stmt, unsigned int paramIndex,
-  const OCCI_STD_NAMESPACE::vector<T* > &vect, const UString
-  &schemaName, const UString &typeName) ;
-  #endif
-
-
-/* Global method for array pins */
-template <class T>
-void pinVectorOfRefs( const Connection *conn,
-OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
-OCCI_STD_NAMESPACE::vector<T* > &vectObj, 
-LockOptions lockOpt = OCCI_LOCK_NONE );
-
-template <class T>
-void pinVectorOfRefs( const Connection *conn,
-OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
-LockOptions lockOpt = OCCI_LOCK_NONE );
-
-/*---------------------------------------------------------------------------
-                          INTERNAL FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-} /* end of namespace occi */
-} /* end of namespace oracle */
-#endif /* _olint */
-
-#endif                                              /* OCCICOMMON_ORACLE */
diff --git a/src/terralib/drivers/Oracle/OCI/include/occiControl.h b/src/terralib/drivers/Oracle/OCI/include/occiControl.h
deleted file mode 100644
index 433b9b3..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/occiControl.h
+++ /dev/null
@@ -1,2060 +0,0 @@
-/* Copyright  Oracle Corporation 2000, 2001. All Rights Reserved. */ 
- 
-/* 
-   NAME 
-     occiControl.h - header file for OCCI control classes
-
-   DESCRIPTION 
-     Class definitions for MetaData,SQLException,Environment,
-     Connection,Statement, ConnectionPool, StatelessConnectionPool
-
-   RELATED DOCUMENTS 
-     <note any documents related to this facility>
- 
-   EXPORT FUNCTION(S) 
-     <external functions declared for use outside package - one-line 
-     descriptions>
-
-   INTERNAL FUNCTION(S)
-     <other external functions declared - one-line descriptions>
-
-   EXAMPLES
-
-   NOTES
-     <other useful comments, qualifications, etc.>
-
-   MODIFIED   (MM/DD/YY)
-   rvadraha    09/30/03 - New Binary/CharacterStreamMode for Statement class
-   rvallam     02/12/03 - modify BFloat/BDouble interface to use the new 
-                          BFloat/BDouble type 
-   shiyer      01/21/03 - add getPoolNameUString to ConnectionPool
-   shiyer      12/19/02 - Add cache sorted flush get/set to Environment
-   shiyer      12/31/02 - added OCI_ATTR_CHAR_SIZE to typeattr attrs
-   shiyer      12/09/02 - ensure new virtual interfaces are in order
-   cparampa    10/12/02 - AQ Additions
-   rvallam     10/12/02 - added  new methods for array pin 
-   shiyer      10/09/02 - Statement caching, Stateless Connection
-                          Pooling - UTF16 support. Added NLS versions
-                          of getErrorMessage in SQLException
-   rvallam     10/11/02 - added native float/double API - get(set) methods
-                          for Statement and ResultSet class
-   cparampa    09/23/02 - added methods for statement caching
-   shiyer      10/01/02 - setVector versions for Windows
-   shiyer      07/31/02 - 10iR1, OCCI Globalization support
-   cparampa    09/23/02 - added methods for statement caching 
-   praghuna    09/23/02 - 2333038:Fwd merge to 10i/MAIN 
-   cparampa    08/26/02 - added class StatelessConnectionPool
-                          added create/terminateStatelessConnnectionPool in Env 
-   vvinay      08/06/02 - XA additions
-   vvinay      06/25/02 - fix #2415021: math moved to occiHeapAlloc.h
-   aahluwal    06/04/02 - bug 2360115
-   vvinay      02/21/02 - operator= added for SQLException
-   gayyappa    12/27/01 - add set/getDatabaseNCharParam 
-   gayyappa    11/22/01 - modify interface to use strings for CharSet
-   gayyappa    10/01/01 - call reserve() on vector in set/getVector 
-   rkasamse    07/30/01 - 
-   rkasamse    07/26/01 - add env handle attrs - cache max/opt size
-   rvallam     07/23/01 - bug 1891228 - added throw() in destructor
-                          of SQLException
-   rvallam     06/14/01 - replace call to get(set)VectorOfRefs in 
-                          get(set)Vector for Ref<T> with code in 
-                          get(set)VectorOfRefs
-   rvallam     11/06/01 - renamed internal methods in get/setVector to
-                          get(set)VectorOfPObjects/get(set)VectorOfOCIRefs
-                          as part of NT porting fix
-                          added destructors to SQLException and MetaData
-   rvallam     05/03/01 - added const to the vector parameter in setVector
-                          of Statement for Ref<T>
-   rratnam     04/10/01 - removed references to wstring
-   kmohan      04/04/01 - include math.h for WIN32COMMON
-   rvallam     04/02/01 - fixed linux porting bug 1654670
-   gayyappa    03/27/01 - add code for templated getVector on stmt for objects.
-   rvallam     03/20/01 - passed dummy parameter for Type in getVector for
-                          void * in statement and ResultSet
-   rratnam     03/15/01 - fixed set and getRef / get and setVector for NULL 
-                          Refs
-   rkasamse    03/19/01 - 1676579: HP compilation errors
-   rratnam     03/07/01 - derived SQLException from exception, added what()
-   chliang     03/05/01 - disable olint
-   rvallam     02/23/01 - made getReadSQL/getWriteSQL methods const
-   rratnam     01/29/01 - add closeStream() to Statement/ResultSet 
-   rvallam     01/30/01 - added private method getListType() to
-                          MetaData
-   rratnam     01/03/01 - removed preTruncationLength() and isTruncated(),
-                          added setBinary/CharacterStreamMode()
-   rratnam     01/03/01 - added new method setErrorOnBusy in ConnectionPool 
-   rratnam     12/29/00 - added a createProxyConnection without roles
-   gayyappa    12/14/00 - add virtual functions getStatement/getConnection
-                          to resultset and statement (fix bug# 1529888)
-   gayyappa    12/13/00 - remove setErrorOnTruncate from Statement/resultset.
-   rvallam     11/30/00 - removed #define NEVER
-   gayyappa    11/17/00 - split get method in Map to getReadSQL
-                          and getWriteSQL    
-   rvallam     10/20/00 - modify cacheflush() to flushCache()
-                          added enums to MetaData
-   rvallam     09/14/00 - uncomment result set getMetaData method
-                          rename it to getColumnListMetaData.
-                          add get/set interval methods to stmt.
-                          add getinterval methods to resultset.
-   gayyappa    08/30/00 - added virtual destructor to occiconnection.
-                          add default values to registerOutParam in
-                          occistatement.
-                          removed get/set vector and anydata in statement.
-                          removed Stream header in ifdef directive.
-   rvallam     08/10/00 - uncomment gets(), update occiConnection, update
-                          Stream
-   slari       08/06/00 - add statement stream methods
-   slari       08/04/00 - add Statement::getXXX methods
-   slari       08/02/00 - add Stream
-   rratnam     08/04/00 - put in connection-cloning, proxy connections
-   rvallam     08/04/00 - changed metadata header - method signatures
-   rkasamse    08/04/00 - add setObject,setRef methods on Statement
-   slari       07/27/00 - add Statement::setNull
-   slari       07/26/00 - disable getBytes
-   slari       07/25/00 - enable getBytes and getRowid
-   rratnam     07/25/00 - Conn Pooling changes - added ConnectionPool,
-                          Connection, removed Session
-                          modified Environment (made getOCIEnvironment(),
-                          getMap() and getMode() const,
-                          added create/terminateConnectionPool(),
-                          added userName and password to createConnection() )
-   rkasamse    07/26/00 - uncomment getObject methods
-   slari       07/10/00 - enable getString
-   slari       07/05/00 - add result set methods
-   rkasamse    07/17/00 - add get function to Map
-   rratnam     06/16/00 - updated Session::getMetaData() to take the
-                          parameter type
-   rvallam     06/13/00 - updated MetaData
-   rratnam     06/13/00 - added getRef() to Statement
-                           and ResultSet,
-                           made getOCIError(), getOCIEnvironment()
-                           and getOCIServiceContext() in
-                           Connection const
-   kmohan      05/31/00 - Datamember Session * changed to 
-                          SessionImpl *
-                          in the class MetaData
-                          change ORASTRINGSTL to ORASTRING
-   slari       05/26/00 - change ORAVECTOR to ORAVECTORSTL
-   slari       05/22/00 - add initial Statement class methods
-   slari       05/10/00 - enable Connection and Session methods
-   slari       04/21/00 - provide trivial implementation for 
-                          ~Connection
-   slari       04/17/00 - make Environment methods abstract
-   slari       04/13/00 - add Environment
-   gayyappa    04/18/00 - changed defn of SQLException
-   kmohan      04/11/00 - added class definitions
-   rkasamse    04/03/00 - header (interface) files for OCCI 
-                          control classes.
-   rkasamse    04/03/00 - Creation
-
-*/
-
-#ifndef _olint   /* disable olint check */
-
-#ifndef OCCICONTROL_ORACLE
-# define OCCICONTROL_ORACLE
-
-#ifndef OCCICOMMON_ORACLE
-#include <occiCommon.h>
-#endif
-
-#ifndef ORAEXCEPTION
-#define ORAEXCEPTION
-#include <exception>
-#endif
-
-namespace oracle {
-namespace occi {
-/*---------------------------------------------------------------------------
-                     PUBLIC TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-class MetaData
-{
-  public :
-    
-      enum AttrId 
-      {ATTR_PTYPE = OCI_ATTR_PTYPE,
-      ATTR_TIMESTAMP = OCI_ATTR_TIMESTAMP, 
-      ATTR_OBJ_ID = OCI_ATTR_OBJ_ID,
-      ATTR_OBJ_NAME = OCI_ATTR_OBJ_NAME, 
-      ATTR_OBJ_SCHEMA = OCI_ATTR_OBJ_SCHEMA,
-      ATTR_OBJID = OCI_ATTR_OBJID,
-      ATTR_NUM_COLS = OCI_ATTR_NUM_COLS,
-      ATTR_LIST_COLUMNS = OCI_ATTR_LIST_COLUMNS,
-      ATTR_REF_TDO = OCI_ATTR_REF_TDO,
-      ATTR_IS_TEMPORARY = OCI_ATTR_IS_TEMPORARY,
-      ATTR_IS_TYPED = OCI_ATTR_IS_TYPED,
-      ATTR_DURATION = OCI_ATTR_DURATION,
-      ATTR_COLLECTION_ELEMENT = OCI_ATTR_COLLECTION_ELEMENT,
-      ATTR_RDBA = OCI_ATTR_RDBA,
-      ATTR_TABLESPACE = OCI_ATTR_TABLESPACE,
-      ATTR_CLUSTERED = OCI_ATTR_CLUSTERED,
-      ATTR_PARTITIONED = OCI_ATTR_PARTITIONED,
-      ATTR_INDEX_ONLY = OCI_ATTR_INDEX_ONLY,
-      ATTR_LIST_ARGUMENTS = OCI_ATTR_LIST_ARGUMENTS,
-      ATTR_IS_INVOKER_RIGHTS = OCI_ATTR_IS_INVOKER_RIGHTS,
-      ATTR_LIST_SUBPROGRAMS = OCI_ATTR_LIST_SUBPROGRAMS,
-      ATTR_NAME = OCI_ATTR_NAME,
-      ATTR_OVERLOAD_ID = OCI_ATTR_OVERLOAD_ID,
-      ATTR_TYPECODE = OCI_ATTR_TYPECODE,
-      ATTR_COLLECTION_TYPECODE = OCI_ATTR_COLLECTION_TYPECODE,
-      ATTR_VERSION = OCI_ATTR_VERSION,
-      ATTR_IS_INCOMPLETE_TYPE = OCI_ATTR_IS_INCOMPLETE_TYPE,
-      ATTR_IS_SYSTEM_TYPE = OCI_ATTR_IS_SYSTEM_TYPE,
-      ATTR_IS_PREDEFINED_TYPE = OCI_ATTR_IS_PREDEFINED_TYPE,
-      ATTR_IS_TRANSIENT_TYPE = OCI_ATTR_IS_TRANSIENT_TYPE,
-      ATTR_IS_SYSTEM_GENERATED_TYPE = 
-              OCI_ATTR_IS_SYSTEM_GENERATED_TYPE,
-      ATTR_HAS_NESTED_TABLE = OCI_ATTR_HAS_NESTED_TABLE,
-      ATTR_HAS_LOB = OCI_ATTR_HAS_LOB,
-      ATTR_HAS_FILE = OCI_ATTR_HAS_FILE,
-      ATTR_NUM_TYPE_ATTRS = OCI_ATTR_NUM_TYPE_ATTRS,
-      ATTR_LIST_TYPE_ATTRS = OCI_ATTR_LIST_TYPE_ATTRS,
-      ATTR_NUM_TYPE_METHODS = OCI_ATTR_NUM_TYPE_METHODS, 
-      ATTR_LIST_TYPE_METHODS = OCI_ATTR_LIST_TYPE_METHODS,
-      ATTR_MAP_METHOD = OCI_ATTR_MAP_METHOD,
-      ATTR_ORDER_METHOD = OCI_ATTR_ORDER_METHOD,
-      ATTR_DATA_SIZE = OCI_ATTR_DATA_SIZE,
-      ATTR_DATA_TYPE = OCI_ATTR_DATA_TYPE,
-      ATTR_PRECISION = OCI_ATTR_PRECISION,
-      ATTR_SCALE = OCI_ATTR_SCALE,
-      ATTR_TYPE_NAME = OCI_ATTR_TYPE_NAME,
-      ATTR_SCHEMA_NAME = OCI_ATTR_SCHEMA_NAME,
-      ATTR_CHARSET_ID = OCI_ATTR_CHARSET_ID,
-      ATTR_CHARSET_FORM = OCI_ATTR_CHARSET_FORM,
-      ATTR_ENCAPSULATION = OCI_ATTR_ENCAPSULATION,
-      ATTR_IS_CONSTRUCTOR = OCI_ATTR_IS_CONSTRUCTOR,
-      ATTR_IS_DESTRUCTOR = OCI_ATTR_IS_DESTRUCTOR,
-      ATTR_IS_OPERATOR = OCI_ATTR_IS_OPERATOR,
-      ATTR_IS_SELFISH = OCI_ATTR_IS_SELFISH,
-      ATTR_IS_MAP = OCI_ATTR_IS_MAP,
-      ATTR_IS_ORDER = OCI_ATTR_IS_ORDER,
-      ATTR_IS_RNDS = OCI_ATTR_IS_RNDS,
-      ATTR_IS_RNPS = OCI_ATTR_IS_RNPS,
-      ATTR_IS_WNDS = OCI_ATTR_IS_WNDS,
-      ATTR_IS_WNPS = OCI_ATTR_IS_WNPS,
-      ATTR_NUM_ELEMS = OCI_ATTR_NUM_ELEMS,
-      ATTR_LINK = OCI_ATTR_LINK,
-      ATTR_MIN = OCI_ATTR_MIN,
-      ATTR_MAX = OCI_ATTR_MAX,
-      ATTR_INCR = OCI_ATTR_INCR,
-      ATTR_CACHE = OCI_ATTR_CACHE,
-      ATTR_ORDER = OCI_ATTR_ORDER,
-      ATTR_HW_MARK  = OCI_ATTR_HW_MARK,
-      ATTR_IS_NULL = OCI_ATTR_IS_NULL,
-      ATTR_POSITION = OCI_ATTR_POSITION,
-      ATTR_HAS_DEFAULT =  OCI_ATTR_HAS_DEFAULT,
-      ATTR_LEVEL = OCI_ATTR_LEVEL,
-      ATTR_IOMODE = OCI_ATTR_IOMODE,
-      ATTR_RADIX = OCI_ATTR_RADIX,
-      ATTR_SUB_NAME = OCI_ATTR_SUB_NAME,
-      ATTR_LIST_OBJECTS = OCI_ATTR_LIST_OBJECTS,
-      ATTR_NCHARSET_ID = OCI_ATTR_NCHARSET_ID,
-      ATTR_LIST_SCHEMAS = OCI_ATTR_LIST_SCHEMAS,
-      ATTR_MAX_PROC_LEN = OCI_ATTR_MAX_PROC_LEN,
-      ATTR_MAX_COLUMN_LEN = OCI_ATTR_MAX_COLUMN_LEN,
-      ATTR_CURSOR_COMMIT_BEHAVIOR = 
-          OCI_ATTR_CURSOR_COMMIT_BEHAVIOR,
-      ATTR_MAX_CATALOG_NAMELEN = OCI_ATTR_MAX_CATALOG_NAMELEN,
-      ATTR_CATALOG_LOCATION = OCI_ATTR_CATALOG_LOCATION,
-      ATTR_SAVEPOINT_SUPPORT =  OCI_ATTR_SAVEPOINT_SUPPORT,
-      ATTR_NOWAIT_SUPPORT =  OCI_ATTR_NOWAIT_SUPPORT,
-      ATTR_AUTOCOMMIT_DDL =  OCI_ATTR_AUTOCOMMIT_DDL,
-      ATTR_LOCKING_MODE =  OCI_ATTR_LOCKING_MODE,
-      ATTR_IS_FINAL_TYPE = OCI_ATTR_IS_FINAL_TYPE,
-      ATTR_IS_INSTANTIABLE_TYPE = OCI_ATTR_IS_INSTANTIABLE_TYPE,
-      ATTR_IS_SUBTYPE = OCI_ATTR_IS_SUBTYPE,
-      ATTR_SUPERTYPE_SCHEMA_NAME = OCI_ATTR_SUPERTYPE_SCHEMA_NAME,
-      ATTR_SUPERTYPE_NAME = OCI_ATTR_SUPERTYPE_NAME,
-      ATTR_FSPRECISION = OCI_ATTR_FSPRECISION,
-      ATTR_LFPRECISION = OCI_ATTR_LFPRECISION,
-      ATTR_IS_FINAL_METHOD = OCI_ATTR_IS_FINAL_METHOD,
-      ATTR_IS_INSTANTIABLE_METHOD = OCI_ATTR_IS_INSTANTIABLE_METHOD,
-      ATTR_IS_OVERRIDING_METHOD = OCI_ATTR_IS_OVERRIDING_METHOD,
-      ATTR_CHAR_USED = OCI_ATTR_CHAR_USED,
-      ATTR_CHAR_SIZE = OCI_ATTR_CHAR_SIZE
-     };
-
-     enum ParamType
-         { 
-           PTYPE_TABLE = OCI_PTYPE_TABLE
-          ,PTYPE_VIEW = OCI_PTYPE_VIEW
-          ,PTYPE_PROC = OCI_PTYPE_PROC
-          ,PTYPE_FUNC = OCI_PTYPE_FUNC
-          ,PTYPE_PKG = OCI_PTYPE_PKG
-          ,PTYPE_TYPE = OCI_PTYPE_TYPE
-          ,PTYPE_TYPE_ATTR = OCI_PTYPE_TYPE_ATTR
-          ,PTYPE_TYPE_COLL = OCI_PTYPE_TYPE_COLL
-          ,PTYPE_TYPE_METHOD = OCI_PTYPE_TYPE_METHOD
-          ,PTYPE_SYN = OCI_PTYPE_SYN
-          ,PTYPE_SEQ = OCI_PTYPE_SEQ
-          ,PTYPE_COL = OCI_PTYPE_COL
-          ,PTYPE_ARG = OCI_PTYPE_ARG
-          ,PTYPE_TYPE_ARG = OCI_PTYPE_TYPE_ARG
-          ,PTYPE_TYPE_RESULT = OCI_PTYPE_TYPE_RESULT
-          ,PTYPE_SCHEMA = OCI_PTYPE_SCHEMA
-          ,PTYPE_DATABASE = OCI_PTYPE_DATABASE
-          ,PTYPE_UNK = OCI_PTYPE_UNK
-         };
-
-
-     enum { DURATION_SESSION = OCI_DURATION_SESSION
-          ,DURATION_TRANS = OCI_DURATION_TRANS
-          ,DURATION_NULL = OCI_DURATION_NULL
-          ,TYPEENCAP_PRIVATE = OCI_TYPEENCAP_PRIVATE
-          ,TYPEENCAP_PUBLIC = OCI_TYPEENCAP_PUBLIC
-          ,TYPEPARAM_IN = OCI_TYPEPARAM_IN
-          ,TYPEPARAM_OUT = OCI_TYPEPARAM_OUT
-          ,TYPEPARAM_INOUT = OCI_TYPEPARAM_INOUT
-          ,CURSOR_OPEN = OCI_CURSOR_OPEN
-          ,CURSOR_CLOSED = OCI_CURSOR_CLOSED
-          ,CL_START = OCI_CL_START
-          ,CL_END = OCI_CL_END
-          ,SP_SUPPORTED = OCI_SP_SUPPORTED
-          ,SP_UNSUPPORTED = OCI_SP_UNSUPPORTED
-          ,NW_SUPPORTED = OCI_NW_SUPPORTED
-          ,NW_UNSUPPORTED = OCI_NW_UNSUPPORTED
-          ,AC_DDL = OCI_AC_DDL
-          ,NO_AC_DDL = OCI_NO_AC_DDL
-          ,LOCK_IMMEDIATE = OCI_LOCK_IMMEDIATE
-          ,LOCK_DELAYED = OCI_LOCK_DELAYED  
-         }; 
-
-      MetaData(const MetaData &omd);
-      unsigned int getAttributeCount() const 
-      ;
-      AttrId getAttributeId(unsigned int attributenum) const 
-      ;
-      Type getAttributeType(unsigned int attributenum) const 
-      ;
-      int getInt(MetaData::AttrId attrid) const 
-      ;
-      bool getBoolean(MetaData::AttrId attrid) const 
-      ;
-      unsigned int getUInt(MetaData::AttrId attrid) const 
-      ;
-      OCCI_STD_NAMESPACE::string getString(MetaData::AttrId attrid) const 
-      ;
-      UString getUString(MetaData::AttrId attrid) const 
-      ;
-      Number getNumber(MetaData::AttrId attrid) const
-      ;
-      RefAny getRef(MetaData::AttrId attrid) const 
-      ;
-      Timestamp getTimestamp(MetaData::AttrId attrid) const 
-      ;
-      MetaData getMetaData(MetaData::AttrId attrid) const
-      ;
-      OCCI_STD_NAMESPACE::vector<MetaData> getVector(MetaData::AttrId attrid)
-      const ;
-      void  operator  =(const MetaData &omd);
-
-      ~MetaData();  
-     
-   private:
-
-  enum ociAttrType { OCI_UB1, 
-                         OCI_UB2, 
-                         OCI_UB4,
-                         OCI_SB1, 
-                         OCI_WORD,
-                         OCI_UB1_BOOL,     
-                         OCI_UB1PTR_TIMESTAMP,
-                         OCI_UB1PTR_NUMBER,
-                         OCI_TEXTPTR,
-                         OCI_DVOIDPTR_PARAM,
-                         OCI_DVOIDPTR_PARAMLIST,
-                         OCI_OCIREFPTR,
-                         OCI_OCIDURATION,
-                         OCI_OCITYPECODE,
-                         OCI_OCITYPEENCAP,
-                         OCI_OCITYPEPARAMMODE,
-                         OCI_OCIPRECISION
-                      };
-
-  enum AttrCount {COMMON_ATTR_COUNT = 5,
-        TABLE_ATTR_COUNT = 12,
-        VIEW_ATTR_COUNT = 7, 
-        FUNCPROC_ATTR_COUNT = 4,
-        PKG_ATTR_COUNT = 2,
-        TYP_ATTR_COUNT = 27, 
-        TYPEATTR_ATTR_COUNT = 14,
-        TYPEMTHD_ATTR_COUNT = 16,
-        COLL_ATTR_COUNT = 12,
-        SYN_ATTR_COUNT = 4,
-        SEQ_ATTR_COUNT = 7,
-        COL_ATTR_COUNT = 13,
-        ARG_TYPARG_TYPRES_ATTR_COUNT = 20, 
-        SCHEMA_ATTR_COUNT = 1,
-        DATABASE_ATTR_COUNT = 13,
-        UNK_ATTR_COUNT = 0
-        };
-
-  static const AttrId commonAttrId[COMMON_ATTR_COUNT];
-  static const ociAttrType commonAttrType[COMMON_ATTR_COUNT];
-  static const AttrId tableAttrId[TABLE_ATTR_COUNT];
-  static const ociAttrType tableAttrType[TABLE_ATTR_COUNT];
-  static const AttrId viewAttrId[VIEW_ATTR_COUNT];
-  static const ociAttrType viewAttrType[VIEW_ATTR_COUNT];
-  static const AttrId funcprocAttrId[FUNCPROC_ATTR_COUNT];
-  static const ociAttrType funcprocAttrType[FUNCPROC_ATTR_COUNT];
-  static const AttrId pkgAttrId[PKG_ATTR_COUNT];
-  static const ociAttrType pkgAttrType[PKG_ATTR_COUNT];
-  static const AttrId typAttrId[TYP_ATTR_COUNT];
-  static const ociAttrType typAttrType[TYP_ATTR_COUNT];
-  static const AttrId typeattrAttrId[TYPEATTR_ATTR_COUNT];
-  static const ociAttrType typeattrAttrType[TYPEATTR_ATTR_COUNT];
-  static const AttrId typmethdAttrId[TYPEMTHD_ATTR_COUNT];
-  static const ociAttrType typemthdAttrType[TYPEMTHD_ATTR_COUNT];
-  static const AttrId collAttrId[COLL_ATTR_COUNT];
-  static const ociAttrType collAttrType[COLL_ATTR_COUNT];
-  static const AttrId synAttrId[SYN_ATTR_COUNT];
-  static const ociAttrType synAttrType[SYN_ATTR_COUNT];
-  static const AttrId seqAttrId[SEQ_ATTR_COUNT];
-  static const ociAttrType seqAttrType[SEQ_ATTR_COUNT];
-  static const AttrId colAttrId[COL_ATTR_COUNT];
-  static const ociAttrType colAttrType[COL_ATTR_COUNT];
-  static const AttrId argtargtresAttrId[ARG_TYPARG_TYPRES_ATTR_COUNT];
-  static const ociAttrType argtargtresAttrType[
-                   ARG_TYPARG_TYPRES_ATTR_COUNT];
-  static const AttrId schemaAttrId[SCHEMA_ATTR_COUNT];
-  static const ociAttrType schemaAttrType[SCHEMA_ATTR_COUNT];
-  static const AttrId databaseAttrId[DATABASE_ATTR_COUNT];
-  static const ociAttrType databaseAttrType[DATABASE_ATTR_COUNT];
-
-  Ptr<MetaDataImpl> metaDataImplPtr;
-  const OCIParam* paramhp;
-  const ConnectionImpl* sesn;
-  const AttrId* attrIdArray;
-  const ociAttrType* attrTypeArray;
-  AttrCount attrCount;
-  
-  MetaData(const Connection *sessp, const OCCI_STD_NAMESPACE::string& objName,
-  ParamType prmtyp ) ;
-  MetaData(const Connection *sessp, const UString& objName,
-  ParamType prmtyp ) ;
-  MetaData(const Connection *sessp, 
-  const RefAny& ref) ;
-  MetaData(const Connection *sessp, MetaDataImpl *implPtr,
-  OCIParam* parm) ;
-  MetaData(const Connection *sessp, MetaDataImpl *implPtr,
-  OCIParam *parm, ub1 parmTyp) ;
-  ub1 getParamType(OCIParam* prm) const ;
-  const AttrId* getAttrIdArrayAddr(ub1 prmTyp) const;
-  const ociAttrType* getAttrTypeArrayAddr(ub1 prmTyp) const;
-  AttrCount getAttrCount(ub1 prmTyp) const; 
-  Type getType(ociAttrType typ) const;
-  bool isListTypeAttribute(AttrId attrid,ub1 ptyp) const;
-  boolean isInvalidAttrId(AttrId attrid,sb4* pos, 
-            boolean* isTypeSpecificAttrPtr) const;
-  ociAttrType getValidAttrType(sb4 index, boolean isTypeSpecificAttr)
-  const;
-
-  int getListType (const OCIParam *plist) const;
-  unsigned int getLowerBound(int ltype) const;
-  unsigned int getUpperBound(unsigned int ltype, 
-    unsigned int paramnum) const;
-  friend class ConnectionImpl;
-  friend class ResultSetImpl;
-
-};
-
-class Connection
-{
-   public :
-
-      // specifies the type of proxy to be created,
-      // used for future enhancements
-      enum ProxyType
-      {PROXY_DEFAULT
-      };
-
-      virtual ~Connection() { }
-      virtual Statement* createStatement(
-        const OCCI_STD_NAMESPACE::string  &sql = "") 
-         =0; 
-      virtual void terminateStatement(Statement *statement) =0;
-      virtual void commit()  =0; 
-      virtual void rollback()  =0;
-      virtual MetaData getMetaData(const OCCI_STD_NAMESPACE::string &object, 
-        MetaData::ParamType prmtyp 
-        = MetaData::PTYPE_UNK) const 
-         =0; 
-      virtual MetaData getMetaData(const RefAny &ref) const
-         =0; 
-      virtual OCCI_STD_NAMESPACE::string getClientCharSet() const 
-         =0; 
-      virtual OCCI_STD_NAMESPACE::string getClientNCHARCharSet() const 
-         =0; 
-      virtual void changePassword(const OCCI_STD_NAMESPACE::string &user,
-        const OCCI_STD_NAMESPACE::string &oldPassword,
-        const OCCI_STD_NAMESPACE::string &newPassword) 
-         =0; 
-      virtual void flushCache()  =0; 
-
-      virtual OCIServer*  getOCIServer() const =0;
-      virtual OCISvcCtx*  getOCIServiceContext() const =0;
-      virtual OCISession* getOCISession() const =0;
-
-      //new interfaces
-
-      virtual Statement* createStatement(const UString &sql) = 0;
-      virtual MetaData getMetaData(const UString &object, 
-        MetaData::ParamType prmtyp 
-        = MetaData::PTYPE_UNK) const 
-         =0; 
-      virtual UString getClientCharSetUString() const 
-         =0; 
-      virtual UString getClientNCHARCharSetUString() const 
-         =0; 
-      virtual void changePassword(const UString &user,
-        const UString &oldPassword,
-        const UString &newPassword) 
-         =0; 
-      virtual OCCI_STD_NAMESPACE::string getTag() const =0;
-      virtual void setStmtCacheSize(unsigned int cacheSize) = 0;
-      virtual unsigned int getStmtCacheSize() const =0;
-      virtual Statement* createStatement(const OCCI_STD_NAMESPACE::string &sql,
-                    const OCCI_STD_NAMESPACE::string &tag) = 0;
-      virtual void terminateStatement(Statement* stmt, 
-                    const OCCI_STD_NAMESPACE::string &tag) = 0;
-      virtual bool isCached(const OCCI_STD_NAMESPACE::string &sql,
-                    const OCCI_STD_NAMESPACE::string &tag = "") = 0;
-      virtual void registerSubscriptions(
-       const OCCI_STD_NAMESPACE::vector<aq::Subscription>& sub) =0;
-      virtual void unregisterSubscription(const aq::Subscription& sub) =0;
-      virtual void postToSubscriptions(
-       const OCCI_STD_NAMESPACE::vector<aq::Subscription>& sub) =0;
-      virtual Statement* createStatement(const UString &sql,
-                    const UString &tag) = 0;
-      virtual void terminateStatement(Statement* stmt, 
-                    const UString &tag) = 0;
-      virtual bool isCached(const UString &sql,
-                    const UString &tag) = 0;
-};
-
-class StatelessConnectionPool
-{
-  public :
-
-    enum PoolType
-    {
-      HETEROGENEOUS = OCI_DEFAULT,
-      HOMOGENEOUS = OCI_SPC_HOMOGENEOUS
-    };
-
-    enum BusyOption
-    {
-       WAIT = OCI_SPOOL_ATTRVAL_WAIT,
-       NOWAIT = OCI_SPOOL_ATTRVAL_NOWAIT,
-       FORCEGET = OCI_SPOOL_ATTRVAL_FORCEGET
-    };
-
-    enum DestroyMode
-    {
-       DEFAULT = OCI_DEFAULT,
-       SPD_FORCE = OCI_SPD_FORCE
-    };
-
-    virtual ~StatelessConnectionPool() {}
-    virtual unsigned int getBusyConnections() const =0;
-    virtual unsigned int getOpenConnections() const =0;
-    virtual unsigned int getMinConnections() const =0;
-    virtual unsigned int getMaxConnections() const =0;
-    virtual unsigned int getIncrConnections() const =0;
-    virtual OCCI_STD_NAMESPACE::string getPoolName() const =0;
-    virtual unsigned int getTimeOut() const =0;
-    virtual void setBusyOption(BusyOption busyOption) =0;
-    virtual BusyOption getBusyOption() const =0;
-    virtual void setTimeOut(unsigned int connTimeOut =0) =0;
-    virtual void setPoolSize(unsigned int maxConn =1,
-      unsigned int minConn =0, unsigned int incrConn =1) =0;
-    virtual Connection* getConnection( 
-      const OCCI_STD_NAMESPACE::string &tag ="") =0;
-    virtual Connection* getConnection(
-      const OCCI_STD_NAMESPACE::string &userName,
-      const OCCI_STD_NAMESPACE::string &password,
-      const OCCI_STD_NAMESPACE::string &tag = "") =0;
-    virtual Connection* getAnyTaggedConnection(
-      const OCCI_STD_NAMESPACE::string &tag = "") =0;
-    virtual Connection* getAnyTaggedConnection(
-      const OCCI_STD_NAMESPACE::string &userName,
-      const OCCI_STD_NAMESPACE::string &Password,
-      const OCCI_STD_NAMESPACE::string &tag = "") =0;
-    virtual Connection* getProxyConnection(
-      const OCCI_STD_NAMESPACE::string &name,
-      OCCI_STD_NAMESPACE::string roles[], unsigned int numRoles,
-      const OCCI_STD_NAMESPACE::string &tag = "",
-      Connection::ProxyType proxyType = Connection::PROXY_DEFAULT) =0;
-    virtual Connection* getProxyConnection(
-      const OCCI_STD_NAMESPACE::string &name,
-      const OCCI_STD_NAMESPACE::string &tag = "" ,
-      Connection::ProxyType proxyType = Connection::PROXY_DEFAULT) =0;
-    virtual Connection* getAnyTaggedProxyConnection(
-      const OCCI_STD_NAMESPACE::string &name,
-      OCCI_STD_NAMESPACE::string roles[], unsigned int numRoles,
-      const OCCI_STD_NAMESPACE::string &tag = "",
-      Connection::ProxyType proxyType = Connection::PROXY_DEFAULT) =0;
-    virtual Connection* getAnyTaggedProxyConnection(
-      const OCCI_STD_NAMESPACE::string &name,
-      const OCCI_STD_NAMESPACE::string &tag="",
-      Connection::ProxyType proxyType = Connection::PROXY_DEFAULT ) =0;
-    virtual void releaseConnection (Connection *connection,
-      const OCCI_STD_NAMESPACE::string &tag = "") =0;
-    virtual void terminateConnection (Connection *connection) =0;
-    virtual void setStmtCacheSize(unsigned int cacheSize) =0;
-    virtual unsigned int getStmtCacheSize() const =0;
-
-    virtual Connection* getConnection(const UString &tag)=0;
-    virtual Connection* getConnection(const UString &userName,
-      const UString &password,
-      const UString &tag)=0;
-    virtual Connection* getAnyTaggedConnection(const UString &tag)=0;
-    virtual Connection* getAnyTaggedConnection( const UString &userName,
-      const UString &Password, const UString &tag)=0 ;
-    virtual Connection* getProxyConnection(const UString &name,
-      OCCI_STD_NAMESPACE::string roles[], unsigned int numRoles,
-      const UString &tag,
-      Connection::ProxyType proxyType = Connection::PROXY_DEFAULT)=0;
-    virtual Connection* getProxyConnection(const UString &name,
-      const UString &tag, Connection::ProxyType
-      proxyType = Connection::PROXY_DEFAULT)=0;
-    virtual Connection* getAnyTaggedProxyConnection(const UString &name,
-      OCCI_STD_NAMESPACE::string roles[], unsigned int numRoles,
-      const UString &tag,
-      Connection::ProxyType proxyType = Connection::PROXY_DEFAULT)=0;
-    virtual Connection* getAnyTaggedProxyConnection(const UString &name,
-      const UString &tag,
-      Connection::ProxyType proxyType = Connection::PROXY_DEFAULT )=0;
-    virtual void releaseConnection(Connection *connection,
-      const UString  &tag)=0;
-
-};
-
-
-class ConnectionPool
-{
-  public :
-
-    virtual ~ConnectionPool() {}
-    virtual unsigned int getBusyConnections() const 
-       =0; 
-    virtual unsigned int getOpenConnections() const 
-       =0; 
-    virtual unsigned int getMinConnections() const 
-       =0; 
-    virtual unsigned int getMaxConnections() const 
-       =0; 
-    virtual unsigned int getIncrConnections() const 
-       =0; 
-    virtual OCCI_STD_NAMESPACE::string getPoolName() const 
-       =0; 
-    virtual unsigned int getTimeOut() const 
-       =0; 
-    virtual void setErrorOnBusy() 
-       =0; 
-    virtual void setTimeOut(unsigned int connTimeOut =0) 
-       =0; 
-    virtual void setPoolSize(unsigned int minConn =0,
-      unsigned int maxConn =1, unsigned int incrConn =1) 
-       =0; 
-    virtual Connection* createConnection(
-      const OCCI_STD_NAMESPACE::string &userName,
-      const OCCI_STD_NAMESPACE::string &password)  =0; 
-
-    virtual Connection* createProxyConnection(
-      const OCCI_STD_NAMESPACE::string &name,
-      OCCI_STD_NAMESPACE::string roles[], unsigned int numRoles,
-      Connection::ProxyType proxyType = 
-      Connection::PROXY_DEFAULT)  =0; 
-
-    virtual Connection* createProxyConnection(
-      const OCCI_STD_NAMESPACE::string &name,
-      Connection::ProxyType proxyType =
-      Connection::PROXY_DEFAULT)  =0;
-
-    virtual void terminateConnection
-      (Connection *connection) =0;
-
-    //new interfaces
-
-    virtual Connection* createConnection(
-      const UString &userName,
-      const UString &password)  =0; 
-    
-    virtual Connection* createProxyConnection(const UString &name,
-      OCCI_STD_NAMESPACE::string roles[], unsigned int numRoles,
-      Connection::ProxyType proxyType = 
-      Connection::PROXY_DEFAULT)  =0; 
-    
-    virtual Connection* createProxyConnection(const UString &name,
-      Connection::ProxyType proxyType =
-      Connection::PROXY_DEFAULT)  =0;
-    
-    virtual void setStmtCacheSize(unsigned int cacheSize) =0;
-    virtual unsigned int getStmtCacheSize() const =0;
-
-    virtual UString getPoolNameUString() const 
-       =0; 
-};
-
-class   Environment     
-{
- public:
-                    // class constants
-
-  enum Mode
-  {
-    DEFAULT = OCI_DEFAULT,
-    OBJECT = OCI_OBJECT,
-    SHARED = OCI_SHARED,
-    NO_USERCALLBACKS = OCI_NO_UCB,
-    THREADED_MUTEXED = OCI_THREADED,
-    THREADED_UNMUTEXED = OCI_THREADED | OCI_ENV_NO_MUTEX,
-    EVENTS = OCI_EVENTS,
-    USE_LDAP = OCI_USE_LDAP
-  };
-
-  virtual ~Environment(){}
-
-                    // public methods
-
-  static Environment * createEnvironment(
-                              Mode mode = DEFAULT,
-                              void *ctxp = 0,
-                              void *(*malocfp)(void *ctxp, size_t size) = 0,
-                              void *(*ralocfp)(void *ctxp, void *memptr,
-                                               size_t newsize) = 0,
-                              void (*mfreefp)(void *ctxp, void *memptr) = 0);
-  
-  static Environment * createEnvironment(
-                              const OCCI_STD_NAMESPACE::string &charset,
-                              const OCCI_STD_NAMESPACE::string &ncharset,
-                              Mode mode = DEFAULT,
-                              void *ctxp = 0,
-                              void *(*malocfp)(void *ctxp, size_t size) = 0,
-                              void *(*ralocfp)(void *ctxp, void *memptr,
-                                               size_t newsize) = 0,
-                              void (*mfreefp)(void *ctxp, void *memptr) = 0);
-
-  static void terminateEnvironment(Environment *env);
-  
-  static Environment* getXAEnvironment(const 
-                           OCCI_STD_NAMESPACE::string& dbname);
-
-  static void releaseXAEnvironment(Environment *env);
-  
-  virtual Connection * createConnection(
-    const OCCI_STD_NAMESPACE::string &userName,
-    const OCCI_STD_NAMESPACE::string &password, 
-    const OCCI_STD_NAMESPACE::string &connectString = "") = 0;
-
-  virtual void terminateConnection(Connection *connection) = 0;
-
-  virtual ConnectionPool* createConnectionPool(
-    const OCCI_STD_NAMESPACE::string &poolUserName,
-    const OCCI_STD_NAMESPACE::string &poolPassword, 
-    const OCCI_STD_NAMESPACE::string &connectString ="", 
-    unsigned int minConn =0,
-    unsigned int maxConn =1, unsigned int incrConn =1) = 0;
-
-  virtual void terminateConnectionPool(ConnectionPool *poolp) = 0;
-
-  virtual unsigned int getCurrentHeapSize() const = 0;
-
-  virtual OCIEnv * getOCIEnvironment() const = 0;
-
-  virtual Map *getMap() const = 0;
- 
-  virtual void setCacheMaxSize(unsigned int maxSize) = 0; 
-  
-  virtual unsigned int getCacheMaxSize() const = 0; 
-  
-  virtual void setCacheOptSize(unsigned int OptSize) = 0; 
-  
-  virtual unsigned int getCacheOptSize() const = 0; 
-
-
-  //new interfaces
-
-  virtual Connection * createConnection(const UString &userName,
-    const UString &password, const UString &connectString) = 0;
-  
-  virtual ConnectionPool* createConnectionPool(
-    const UString &poolUserName,
-    const UString &poolPassword, const UString &connectString, 
-    unsigned int minConn =0,
-    unsigned int maxConn =1, unsigned int incrConn =1) = 0;
-
-  virtual Connection* getXAConnection(const 
-                           OCCI_STD_NAMESPACE::string& dbname) = 0;
-
-  virtual void releaseXAConnection(Connection* conn) =0;
-  
-  virtual StatelessConnectionPool* createStatelessConnectionPool(
-    const OCCI_STD_NAMESPACE::string &poolUserName,
-    const OCCI_STD_NAMESPACE::string &poolPassword,
-    const OCCI_STD_NAMESPACE::string &connectString = "",
-    unsigned int maxConn = 1, unsigned int minConn = 0,
-    unsigned int incrConn = 1,
-    StatelessConnectionPool::PoolType pType 
-                                 = StatelessConnectionPool::HETEROGENEOUS) = 0;
-  
-  virtual StatelessConnectionPool* createStatelessConnectionPool(
-    const UString &poolUserName,
-    const UString &poolPassword,
-    const UString &connectString,
-    unsigned int maxConn = 1, unsigned int minConn = 0,
-    unsigned int incrConn = 1,
-    StatelessConnectionPool::PoolType pType 
-                                 = StatelessConnectionPool::HETEROGENEOUS) = 0;
-
-  virtual void terminateStatelessConnectionPool(StatelessConnectionPool *poolp,
-  StatelessConnectionPool::DestroyMode mode = StatelessConnectionPool::DEFAULT)
-      = 0;
-  virtual void setLDAPAuthentication(unsigned int mode) =0;
-
-  virtual unsigned int getLDAPAuthentication() const =0;
-  
-  virtual void setLDAPLoginNameAndPassword(
-     const OCCI_STD_NAMESPACE::string &login,
-     const OCCI_STD_NAMESPACE::string &passwd) =0;
-
-  virtual void setLDAPAdminContext(const OCCI_STD_NAMESPACE::string &ctx)=0;
-
-  virtual OCCI_STD_NAMESPACE::string getLDAPAdminContext() const =0;
-
-  virtual void setLDAPHostAndPort(const OCCI_STD_NAMESPACE::string &host,
-     unsigned int port) =0;
-
-  virtual OCCI_STD_NAMESPACE::string getLDAPHost() const =0;
-
-  virtual unsigned int getLDAPPort() const =0;  
- 
-  virtual void registerSubscriptions(
-     const OCCI_STD_NAMESPACE::vector<aq::Subscription>& sub) =0;
-
-  virtual void unregisterSubscription(const aq::Subscription& sub) =0; 
- 
-  virtual void enableSubscription(const aq::Subscription& sub) =0;
-  
-  virtual void disableSubscription(const aq::Subscription& sub) =0;
-  
-  virtual bool getCacheSortedFlush() const = 0;
-
-  virtual void setCacheSortedFlush(bool flag) = 0;
-
-  private:
-
-};
-
-
-
-class Map
-{
- public:
-
-  virtual ~Map(){}
-  virtual void put(const OCCI_STD_NAMESPACE::string&, void *(*)(void *), 
-                void (*)(void *, void *)) = 0;
-  virtual void getReadSQL(
-    void *, unsigned int, void *, unsigned int, void **) const = 0;
-  virtual void getWriteSQL(
-    void *, unsigned int, void *, unsigned int, void **) const = 0;
-  virtual void put(const OCCI_STD_NAMESPACE::string&, 
-                const OCCI_STD_NAMESPACE::string&, void *(*)(void *), 
-                void (*)(void *, void *)) = 0;
-  virtual void putUTF16(const OCCI_STD_NAMESPACE::string&, 
-                const OCCI_STD_NAMESPACE::string&, void *(*)(void *), 
-                void (*)(void *, void *)) = 0;
-
- private:
-};
-
-
-   
-class SQLException : public OCCI_STD_NAMESPACE::exception
-{
- public:
-
-  virtual int getErrorCode() const;
-  
-  virtual OCCI_STD_NAMESPACE::string getMessage() const;
-
-  const char *what() const throw();
-
-  virtual void setErrorCtx(void *ctx);
-  
-  SQLException();
-
-  SQLException(const SQLException &e);
-
-  void operator=(const SQLException &other);
-
-  virtual ~SQLException() throw();
-
-  virtual int getXAErrorCode(const OCCI_STD_NAMESPACE::string& dbname) const;
-  
-  virtual UString getUStringMessage() const;
-
-  virtual OCCI_STD_NAMESPACE::string getNLSMessage(Environment *env) const;
-  
-  virtual UString getNLSUStringMessage(Environment *env) const;
-
- private:
-
-  Ptr<SQLExceptionImpl> ptr_;
-  SQLException(SQLExceptionImpl *ptr);
-  friend SQLException SQLExceptionCreate(int errorCode);
-  friend SQLException SQLExceptionCreate(dvoid *handle,
-  int handleType);
-
-};
-
-
-class Statement 
-{
- public:
-                                // class constants
-
-  virtual ~Statement() {}
-  
-  enum Status                                   
-  {
-    UNPREPARED,
-    PREPARED,
-    RESULT_SET_AVAILABLE,
-    UPDATE_COUNT_AVAILABLE,
-    NEEDS_STREAM_DATA,
-    STREAM_DATA_AVAILABLE
-  };
-  
-                                // common methods
-  
-  virtual void setSQL(const OCCI_STD_NAMESPACE::string &sql) = 0; 
-
-  virtual OCCI_STD_NAMESPACE::string getSQL() const = 0;
-
-  virtual Status execute(const OCCI_STD_NAMESPACE::string &sql = "") = 0;
-  
-  virtual ResultSet * getResultSet() = 0;
-  
-  virtual unsigned int getUpdateCount() const = 0; 
-  
-  virtual ResultSet * executeQuery(
-    const OCCI_STD_NAMESPACE::string &sql = "") = 0;
-  
-  virtual unsigned int executeUpdate(
-    const OCCI_STD_NAMESPACE::string &sql = "") = 0; 
-  
-  virtual Status status() const = 0;  
-                                        
-  virtual void closeResultSet(ResultSet *resultSet) = 0;
-  
-  virtual void setPrefetchRowCount(unsigned int rowCount) = 0; 
-  
-  virtual void setPrefetchMemorySize(unsigned int bytes) = 0;
-  
-  virtual void setAutoCommit(bool autoCommit) = 0;
-  
-  virtual bool getAutoCommit() const = 0;
-  
-  virtual OCIStmt * getOCIStatement() const = 0;
-
-
-                    // methods for prepared statements with IN
-                    // parameters  
-
-  virtual void setMaxParamSize(unsigned int paramIndex,unsigned int maxSize)=0;
-  
-  virtual unsigned int getMaxParamSize(unsigned int paramIndex) const = 0;
-
-  virtual void setNull(unsigned int paramIndex, Type type) = 0;
- 
-  virtual void setInt(unsigned int paramIndex, int x) = 0; 
-  
-  virtual void setUInt(unsigned int paramIndex, unsigned int x) = 0; 
-  
-  virtual void setFloat(unsigned int paramIndex, float x) = 0; 
-
-  virtual void setDouble(unsigned int paramIndex, double x) = 0; 
-
-  virtual void setNumber(unsigned int paramIndex, const Number &x) = 0; 
-  
-  virtual void setString(unsigned int paramIndex, 
-    const OCCI_STD_NAMESPACE::string &x) = 0; 
-
-  virtual void setBytes(unsigned int paramIndex, const Bytes &x) = 0; 
-
-  virtual void setDate(unsigned int paramIndex, const Date &x) = 0; 
-  
-  virtual void setTimestamp(unsigned int paramIndex, const Timestamp &x) = 0; 
-
-  virtual void setBlob(unsigned int paramIndex, const Blob &x) = 0;
-
-  virtual void setClob(unsigned int paramIndex, const Clob &x) = 0;
-
-  virtual void setBfile(unsigned int paramIndex, const Bfile &x) = 0;
-
-  virtual void setIntervalYM(unsigned int paramIndex, const IntervalYM &x) = 0;
- 
-  virtual void setIntervalDS(unsigned int paramIndex, const IntervalDS &x) = 0;
- 
-  virtual void setRowid(unsigned int paramIndex, const Bytes &x) = 0; 
-  
-  virtual void setRef(unsigned int paramIndex, const RefAny &x) = 0; 
-
-  virtual void setObject(unsigned int paramIndex, PObject * x) = 0; 
-  
-  virtual void setDataBuffer(unsigned int paramIndex, void *buffer, 
-                             Type type,
-                             sb4 size, ub2 *length, sb2 *ind = NULL,
-                             ub2 *rc = NULL) = 0; 
-
-  virtual void setDataBufferArray(unsigned int paramIndex, void *buffer, 
-                                  Type type,
-                                  ub4 arraySize, ub4 *arrayLength,
-                                  sb4 elementSize,
-                                  ub2 *elementLength, sb2 *ind = NULL,
-                                  ub2 *rc = NULL) = 0;
-
-  virtual void setCharSet(unsigned int paramIndex, 
-  const OCCI_STD_NAMESPACE::string & charSet) = 0; 
-  
-  virtual OCCI_STD_NAMESPACE::string getCharSet(unsigned int paramIndex) 
-  const = 0; 
-  
-  virtual void setDatabaseNCHARParam(
-    unsigned int paramIndex, bool isNCHAR) = 0;
-                                         
-  virtual bool getDatabaseNCHARParam(unsigned int paramIndex) const = 0;       
-
-  virtual void closeStream(Stream *stream) =0;
-
-  virtual Stream * getStream(unsigned int paramIndex) = 0; 
-  
-  virtual unsigned int getCurrentStreamParam() const = 0; 
-  
-  virtual unsigned int getCurrentStreamIteration() const = 0;
-
-  virtual void setBinaryStreamMode(unsigned int colIndex, 
-    unsigned int size) =0;
-
-  virtual void setCharacterStreamMode(unsigned int colIndex, 
-    unsigned int size) =0;
-  
-  virtual void setMaxIterations(unsigned int maxIterations) = 0;
-  
-  virtual unsigned int getMaxIterations() const = 0; 
-
-  virtual void addIteration() = 0; 
-  
-  virtual unsigned int getCurrentIteration() const = 0; 
-
-  virtual Status executeArrayUpdate(unsigned int arrayLength) = 0;
-  
-
-                    // methods for Callable Statements
-
-  virtual void registerOutParam(unsigned int paramIndex, Type type, 
-  unsigned int maxSize=0, const OCCI_STD_NAMESPACE::string &sqltype="") = 0;
-  
-  virtual bool isNull(unsigned int paramIndex) const = 0;
-
-  virtual bool isTruncated(unsigned int paramIndex) const
-   =0;
-
-  
-  virtual void setErrorOnNull(unsigned int paramIndex, 
-    bool causeException) = 0;
-                               
-  virtual void setErrorOnTruncate(unsigned int paramIndex,
-  bool causeException)  = 0;
-
-  virtual int preTruncationLength(unsigned int paramIndex) const
-   =0;
-
-
-  virtual int getInt(unsigned int paramIndex)  = 0; 
-  
-  virtual unsigned int getUInt(unsigned int paramIndex)  = 0; 
-  
-  virtual float getFloat(unsigned int paramIndex)  = 0; 
-
-  virtual double getDouble(unsigned int paramIndex)  = 0; 
-  
-  virtual Number getNumber(unsigned int paramIndex)  = 0; 
-  
-  virtual OCCI_STD_NAMESPACE::string getString(unsigned int paramIndex)  = 0; 
-  
-  virtual Bytes getBytes(unsigned int paramIndex)  = 0; 
-
-  virtual Date getDate(unsigned int paramIndex)  = 0; 
-  
-  virtual Timestamp getTimestamp(unsigned int paramIndex)  = 0; 
-
-  virtual Bytes getRowid(unsigned int paramIndex)  = 0; 
-  
-  virtual PObject * getObject(unsigned int paramIndex)  = 0; 
-  
-  virtual Blob getBlob(unsigned int paramIndex)  = 0; 
-  
-  virtual Clob getClob(unsigned int paramIndex)  = 0; 
-  
-  virtual Bfile getBfile(unsigned int paramIndex)  = 0; 
-
-  virtual IntervalYM getIntervalYM(unsigned int paramIndex)  = 0; 
- 
-  virtual IntervalDS getIntervalDS(unsigned int paramIndex)  = 0; 
-
-  virtual RefAny getRef(unsigned int paramIndex)  = 0;  
-
-  virtual ResultSet * getCursor(unsigned int paramIndex)   = 0;
-
-  virtual Connection* getConnection() const =0; 
-
-  //new interfaces
-
-  virtual void setRef(unsigned int paramIndex, const RefAny &x, 
-                      const OCCI_STD_NAMESPACE::string &typName, 
-                      const OCCI_STD_NAMESPACE::string &schName = "") = 0; 
-  
-  virtual void setSQLUString(const UString &sql) = 0;
-  
-  virtual UString getSQLUString() const = 0;
-  
-  virtual Status execute(const UString &sql) = 0;
-                                
-  virtual ResultSet * executeQuery(
-    const UString &sql) = 0;
-  
-  virtual unsigned int executeUpdate(
-    const UString &sql) = 0; 
-  
-  virtual void setBFloat(unsigned int paramIndex, const BFloat &fval) = 0;
-  
-  virtual void setBDouble(unsigned int paramIndex, const BDouble &dval) = 0;
-  
-  virtual void setUString(unsigned int paramIndex,
-    const UString &x) = 0;
-  
-  virtual void setCharSetUString(unsigned int paramIndex, 
-  const UString & charSet) = 0; 
-  
-  virtual UString getCharSetUString(unsigned int paramIndex) 
-  const = 0; 
-  
-  virtual void registerOutParam(unsigned int paramIndex, Type type, 
-  unsigned int maxSize, const OCCI_STD_NAMESPACE::string &typName,
-  const OCCI_STD_NAMESPACE::string &schName) = 0;
-  
-  virtual void registerOutParam(unsigned int paramIndex, Type type, 
-  unsigned int maxSize, const UString &typName, 
-  const UString &schName) = 0;
-  
-  virtual BFloat getBFloat(unsigned int paramIndex)  = 0;
-  
-  virtual BDouble getBDouble(unsigned int paramIndex)  = 0;
-
-  virtual UString getUString(unsigned int paramIndex)  = 0; 
-  
-  virtual void disableCaching() =0;
-  
-  virtual void setRef(unsigned int paramIndex, const RefAny &x, 
-                      const UString &typName, 
-                      const UString &schName) = 0; 
-
-  virtual void setBinaryStreamMode(unsigned int colIndex, 
-    unsigned int size, bool INArg) =0;
-
-  virtual void setCharacterStreamMode(unsigned int colIndex, 
-    unsigned int size, bool INArg) =0;
-
-};
-
-
-
-class ResultSet 
-{
- public:
-                                // class constants
-  
-  enum Status                                   
-  {
-    END_OF_FETCH = 0,
-    DATA_AVAILABLE,
-    STREAM_DATA_AVAILABLE
-  };
-  virtual ~ResultSet(){}
- 
-                                // public methods
-
-  virtual Status next(unsigned int numRows = 1) = 0;
-  
-  virtual Status status() const = 0;            
-  
-  virtual unsigned int getNumArrayRows()  const = 0;
-  
-  virtual void cancel() = 0;
-
-  virtual void setMaxColumnSize(unsigned int colIndex, unsigned int max) = 0;
-  
-  virtual unsigned int getMaxColumnSize(unsigned int colIndex) const = 0;
-  
-  virtual bool isNull(unsigned int colIndex) const = 0;
-  
-  virtual bool isTruncated(unsigned int paramIndex) const
-   =0;
-
-  virtual void setErrorOnNull(unsigned int colIndex, bool causeException) = 0;
-  virtual void setErrorOnTruncate(unsigned int paramIndex,
-  bool causeException)   =0;
-
-  virtual int preTruncationLength(unsigned int paramIndex) const
-   =0;
-
-  virtual int getInt(unsigned int colIndex)   = 0; 
-  
-  virtual unsigned int getUInt(unsigned int colIndex)   = 0; 
-  
-  virtual float getFloat(unsigned int colIndex)  = 0; 
-
-  virtual double getDouble(unsigned int colIndex)  = 0; 
-
-  virtual Number getNumber(unsigned int colIndex)  = 0; 
-  
-  virtual OCCI_STD_NAMESPACE::string getString(unsigned int colIndex)  = 0; 
-  
-  virtual Bytes getBytes(unsigned int colIndex)  = 0; 
-
-  virtual Date getDate(unsigned int colIndex)  = 0; 
-  
-  virtual Timestamp getTimestamp(unsigned int colIndex)  = 0; 
-  
-  virtual Bytes getRowid(unsigned int colIndex)  = 0; 
-  
-  virtual PObject * getObject(unsigned int colIndex)  = 0; 
-  
-  virtual Blob getBlob(unsigned int colIndex)  = 0; 
-  
-  virtual Clob getClob(unsigned int colIndex)  =0; 
-  
-  virtual Bfile getBfile(unsigned int colIndex)  = 0; 
-
-  virtual  IntervalYM getIntervalYM(unsigned int colIndex)  =0;
-   
-  virtual  IntervalDS getIntervalDS(unsigned int colIndex)  =0;
-   
-  virtual RefAny getRef(unsigned int colIndex)  = 0; 
-
-  virtual Bytes getRowPosition() const = 0; 
-
-  virtual ResultSet * getCursor(unsigned int colIndex)  = 0; 
-  
-  virtual void setDataBuffer(unsigned int colIndex, void *buffer, Type type,
-                             sb4 size = 0, ub2 *length = NULL,
-                             sb2 *ind = NULL, ub2 *rc = NULL) = 0;
-
-  virtual void setCharSet(unsigned int colIndex, 
-  const OCCI_STD_NAMESPACE::string & charSet) = 0; 
-  
-  virtual OCCI_STD_NAMESPACE::string getCharSet(unsigned int colIndex) 
-  const = 0; 
-  
-  virtual void setBinaryStreamMode(unsigned int colIndex, unsigned int size)
-    = 0;
-
-  virtual void setCharacterStreamMode(unsigned int colIndex, unsigned int size)
-    = 0;
-  
-  virtual void setDatabaseNCHARParam(unsigned int paramIndex, 
-    bool isNCHAR) = 0;
-  
-  virtual bool getDatabaseNCHARParam(unsigned int paramIndex) const = 0;       
-                                         
-  virtual Stream * getStream(unsigned int colIndex)  = 0; 
-
-  virtual void closeStream(Stream *stream) =0;
-  
-  virtual unsigned int getCurrentStreamColumn() const= 0; 
-  
-  virtual unsigned int getCurrentStreamRow() const= 0;       
-  
-  virtual OCCI_STD_NAMESPACE::vector<MetaData> getColumnListMetaData() const 
-    = 0;
-
-  virtual Statement* getStatement() const=0;
-
-  //new interfaces
-
-  virtual BFloat getBFloat(unsigned int colIndex)  = 0;
-  
-  virtual BDouble getBDouble(unsigned int colIndex)  = 0;
-  
-  virtual UString getUString(unsigned int colIndex)  = 0; 
-  
-  virtual void setCharSetUString(unsigned int colIndex, 
-  const UString & charSet) = 0; 
-  
-  virtual UString getCharSetUString(unsigned int colIndex) 
-  const = 0; 
-
-};
-
-
-class Stream
-{
-  public : 
-
-    enum Status {READY_FOR_READ, READY_FOR_WRITE, INACTIVE};
-
-    virtual ~Stream(){}
-    virtual int readBuffer(char *buffer, unsigned int size)
-       =0;
-    virtual int readLastBuffer(char *buffer, unsigned int size)
-       =0;
-    virtual void writeBuffer(char *buffer, unsigned int size)
-       =0;
-    virtual void writeLastBuffer(char *buffer, unsigned int size)
-       =0;
-    virtual Status status() const  =0;
-
-};
-
-/*---------------------------------------------------------------------------
-                PROTOTYPES USED BY FUNCTION TEMPLATES
- -------------------------------------------------------------------------*/
-  void getVectorOfPObjects( ResultSet *rs, unsigned int index,
-  OCCI_STD_NAMESPACE::vector<PObject *> &vect) ;
-  void getVectorOfOCIRefs(ResultSet  *rs, unsigned int index,
-  OCCI_STD_NAMESPACE::vector<void *> &vect) ;
-  void getVectorOfPObjects( Statement *rs, unsigned int index,
-  OCCI_STD_NAMESPACE::vector<PObject *> &vect) ;
-  void getVectorOfOCIRefs(Statement  *rs, unsigned int index,
-  OCCI_STD_NAMESPACE::vector<void *> &vect) ;
-  void setVectorOfPObjects( Statement *stmt, unsigned int paramIndex,
-  const OCCI_STD_NAMESPACE::vector<PObject *> &vect, 
-  const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVectorOfPObjects( Statement *stmt, unsigned int paramIndex,
-  const OCCI_STD_NAMESPACE::vector<PObject *> &vect, 
-  const OCCI_STD_NAMESPACE::string &schemaName,
-  const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVectorOfPObjects( Statement *stmt, unsigned int paramIndex,
-  const OCCI_STD_NAMESPACE::vector<PObject *> &vect, 
-  const UString &schemaName,
-  const UString &typeName) ;
-  void setVectorOfOCIRefs(Statement *stmt, unsigned int paramIndex,
-  const  OCCI_STD_NAMESPACE::vector<void *> &vect,
-  const OCCI_STD_NAMESPACE::vector<OCIInd> &vecind,
-  const OCCI_STD_NAMESPACE::string &sqltype) ;
-  void setVectorOfOCIRefs(Statement *stmt, unsigned int paramIndex,
-  const  OCCI_STD_NAMESPACE::vector<void *> &vect,
-  const OCCI_STD_NAMESPACE::vector<OCIInd> &vecind,
-  const OCCI_STD_NAMESPACE::string &schemaName,
-  const OCCI_STD_NAMESPACE::string &typeName) ;
-  void setVectorOfOCIRefs(Statement *stmt, unsigned int paramIndex,
-  const  OCCI_STD_NAMESPACE::vector<void *> &vect,
-  const OCCI_STD_NAMESPACE::vector<OCIInd> &vecind,
-  const UString &schemaName,
-  const UString &typeName) ;
-  void pinVectorOfOCIRefs(const Connection *conn, 
-  OCCI_STD_NAMESPACE::vector<void *> & vecRef,
-  OCCI_STD_NAMESPACE::vector<void *> & vecCor,
-  OCCI_STD_NAMESPACE::vector<PObject *> &vecPObj,LockOptions &lockOpt );
-
-
-/*---------------------------------------------------------------------------
-                           EXPORT FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-/*------------------------ getVector for objects ---------------------------*/
-/*
-   NAME
-      getVector - overloaded function. Retrieves the attribute in the current
-position as a vector of objects
-
-   PARAMETERS
-      rs - ResultSet
-      vect- reference to vector of objects(OUT parameter).
-
-   DESCRIPTION
-     Retrieves the column in the specified position as a vector of RefAny.
-   The attribute at the current position should be a collection type (varray or
-   nested table). The SQL type of the elements in the collection should be
-   compatible with objects.
-
-   RETURNS
-     nothing
-
-   NOTES
-        compatible SQL types : NTY
-
-        will call getVector(..., vector<PObject*>)
-*/
-#ifdef WIN32COMMON
-// and other platforms that do not support
-// partial function template specialization
-
-template <class T>
-void getVector( ResultSet *rs, unsigned int index,OCCI_STD_NAMESPACE::vector<T>
-& vect) 
-{
-  OCCI_STD_NAMESPACE::vector<PObject *> vec_pobj;
-  getVectorOfPObjects(rs, index, vec_pobj);
-
-  vect.clear();
-  unsigned int size = vec_pobj.size();
-  vect.reserve( size );
-  for ( unsigned int i=0; i< size; i++)
-    vect.push_back((T)vec_pobj[i]);
-}
-
-#else
-template <class T>
-void getVector( ResultSet *rs, unsigned int index, OCCI_STD_NAMESPACE::vector<T
- *> &vect)
-{
-  OCCI_STD_NAMESPACE::vector<PObject *> vec_pobj;
-  getVectorOfPObjects(rs, index, vec_pobj);
-
-  vect.clear();
-  unsigned int size = vec_pobj.size();
-  vect.reserve( size );
-  for (unsigned int i=0; i< size; i++)
-    vect.push_back((T *)vec_pobj[i]);
-}
-#endif
-
-/*------------------------ getVector for objects ---------------------------*/
-/*
-   NAME
-      getVector - overloaded function. Retrieves the attribute in the current
-position as a vector of objects
-
-   PARAMETERS
-      stmt - Statement
-      vect- reference to vector of objects(OUT parameter).
-
-   DESCRIPTION
-     Retrieves the column in the specified position as a vector of RefAny.
-   The attribute at the current position should be a collection type (varray or
-   nested table). The SQL type of the elements in the collection should be
-   compatible with objects.
-
-   RETURNS
-     nothing
-
-   NOTES
-        compatible SQL types : NTY
-
-        will call getVector(..., vector<PObject*>)
-*/
-#ifdef WIN32COMMON
-// and other platforms that do not support
-// partial function template specialization
-
-template <class T>
-void getVector( Statement *stmt, unsigned int index, 
-OCCI_STD_NAMESPACE::vector<T> &vect) 
-{
-  OCCI_STD_NAMESPACE::vector<PObject *> vec_pobj;
-  getVectorOfPObjects(stmt, index, vec_pobj);
-  vect.clear();
-  unsigned int size = vec_pobj.size();
-  vect.reserve( size );
-  for (unsigned int i=0; i< size; i++)
-    vect.push_back((T)vec_pobj[i]);
-}
-#else
-template <class T>
-void getVector( Statement *stmt, unsigned int index,
-OCCI_STD_NAMESPACE::vector<T *> &vect)
-{
-  OCCI_STD_NAMESPACE::vector<PObject *> vec_pobj;
-  getVectorOfPObjects(stmt, index, vec_pobj);
-  vect.clear();
-  unsigned int size = vec_pobj.size();
-  vect.reserve( size );
-  for (unsigned int i=0; i< size; i++)
-    vect.push_back((T *)vec_pobj[i]);
-}
-#endif
-
-/*------------------------ getVector for Ref<T> ---------------------------*/
-/*
-   NAME
-      getVector - overloaded function. Retrieves the attribute in the current
-position as a vector of Ref<T>
-
-   PARAMETERS
-      rs - ResultSet
-      vect- reference to vector of Ref<T>(OUT parameter).
-
-   DESCRIPTION
-     Retrieves the column in the specified position as a vector of Ref<T>.
-   The attribute at the current position should be a collection type (varray or
-   nested table). The SQL type of the elements in the collection should be
-   compatible with Ref<T>.
-
-   RETURNS
-     nothing
-
-   NOTES
-        compatible SQL types : REF
-*/
-#ifndef WIN32COMMON
-template <class T>
-void getVector( ResultSet *rs, unsigned int index, 
-                OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) 
-{
-  OCCI_STD_NAMESPACE::vector<void *> vec_ref;
-  getVectorOfOCIRefs(rs, index, vec_ref);
-
-  const Connection *sess = rs->getStatement()->getConnection();
-
-  vect.clear();
-  unsigned int size = vec_ref.size();
-  vect.reserve( size );
-  for (unsigned int i=0; i< size; i++)
-  {
-    if (vec_ref[i] == (OCIRef *)0)
-       vect.push_back(Ref<T>());     // pushing a default-constructed Ref
-     else
-       vect.push_back(Ref<T>(sess, (OCIRef *)vec_ref[i], FALSE));
-  }
-}
-#endif
-
-/*------------------------ setVector for PObject*---------------------------*/
-/*
-   NAME
-      SetVector - overloaded function. Binds the attribute in the current
-      position with a vector of objects.
-
-   PARAMETERS
-      rs - ResultSet
-      vect- reference to vector of objects(OUT parameter).
-
-   DESCRIPTION
-     Binds the column in the specified position with a vector of signed int .
-   The column at the current position should be a collection type (varray or
-   nested table). The SQL type of the elements in the collection should be
-   compatible with objects .
-
-   RETURNS
-     nothing
-
-   NOTES
-     compatible SQL types : SQLT_NTY
- 
-     This will be calling setVector(..., vector<PObject*>,..)
-
-*/
-#ifdef WIN32COMMON
-// and other platforms that do not support
-// partial function template specialization
-
-template <class T>
-void setVector( Statement *stmt, unsigned int index, 
-                const OCCI_STD_NAMESPACE::vector<T> &vect, 
-                const OCCI_STD_NAMESPACE::string &sqltype) 
-{
-  OCCI_STD_NAMESPACE::vector<PObject *> vec_pobj;
-  unsigned int size = vect.size();
-  vec_pobj.reserve( size );
-  
-  for (unsigned int i = 0; i < size; i++)
-    vec_pobj.push_back((PObject *)vect[i]);
-
-  setVectorOfPObjects(stmt, index, vec_pobj, sqltype);
-}
-
-template <class T>
-void setVector( Statement *stmt, unsigned int index, const OCCI_STD_NAMESPACE::
-vector<T> &vect, const OCCI_STD_NAMESPACE::string &schemaName,
-const OCCI_STD_NAMESPACE::string &typeName)
-{
-  OCCI_STD_NAMESPACE::vector<PObject *> vec_pobj;
-  unsigned int size = vect.size();
-  vec_pobj.reserve( size );
-
-  for (unsigned int i = 0; i < size; i++)
-    vec_pobj.push_back((PObject *)vect[i]);
-
-  setVectorOfPObjects(stmt, index, vec_pobj, schemaName, typeName);
-}
-
-template <class T>
-void setVector( Statement *stmt, unsigned int index, const OCCI_STD_NAMESPACE::
-vector<T> &vect, const UString &schemaName,
-const UString &typeName)
-{
-  OCCI_STD_NAMESPACE::vector<PObject *> vec_pobj;
-  unsigned int size = vect.size();
-  vec_pobj.reserve( size );
-
-  for (unsigned int i = 0; i < size; i++)
-    vec_pobj.push_back((PObject *)vect[i]);
-
-  setVectorOfPObjects(stmt, index, vec_pobj, schemaName, typeName);
-}
-#else
-template <class T>
-void setVector( Statement *stmt, unsigned int index, const OCCI_STD_NAMESPACE::
-vector<T *> &vect, const OCCI_STD_NAMESPACE::string &sqltype)
-{
-  OCCI_STD_NAMESPACE::vector<PObject *> vec_pobj;
-  unsigned int size = vect.size();
-  vec_pobj.reserve( size );
-
-  for (unsigned int i = 0; i < size; i++)
-    vec_pobj.push_back((PObject *)vect[i]);
-
-  setVectorOfPObjects(stmt, index, vec_pobj, sqltype);
-}
-
-template <class T>
-void setVector( Statement *stmt, unsigned int index, const OCCI_STD_NAMESPACE::
-vector<T *> &vect, const OCCI_STD_NAMESPACE::string &schemaName,
-const OCCI_STD_NAMESPACE::string &typeName)
-{
-  OCCI_STD_NAMESPACE::vector<PObject *> vec_pobj;
-  unsigned int size = vect.size();
-  vec_pobj.reserve( size );
-
-  for (unsigned int i = 0; i < size; i++)
-    vec_pobj.push_back((PObject *)vect[i]);
-
-  setVectorOfPObjects(stmt, index, vec_pobj, schemaName, typeName);
-}
-
-template <class T>
-void setVector( Statement *stmt, unsigned int index, const OCCI_STD_NAMESPACE::
-vector<T *> &vect, const UString &schemaName,
-const UString &typeName)
-{
-  OCCI_STD_NAMESPACE::vector<PObject *> vec_pobj;
-  unsigned int size = vect.size();
-  vec_pobj.reserve( size );
-
-  for (unsigned int i = 0; i < size; i++)
-    vec_pobj.push_back((PObject *)vect[i]);
-
-  setVectorOfPObjects(stmt, index, vec_pobj, schemaName, typeName);
-}
-#endif
-
-/*------------------------ setVector for Ref<T>---------------------------*/
-/*
-   NAME
-      setVector - overloaded function. Binds the attribute in the current
-      position with a vector of Ref<T>.
-
-   PARAMETERS
-      rs - ResultSet
-      vect- reference to vector of REF
-
-   DESCRIPTION
-     Binds the column in the specified position with a vector of signed int .
-   The column at the current position should be a collection type (varray or
-   nested table). The SQL type of the elements in the collection should be
-   compatible with OCIRef* .
-
-   RETURNS
-     nothing
-
-   NOTES
-     compatible SQL types : REF 
-
-     This will just call setVector(..., vector<OCIRef*>,..)
-
-
-*/
-#ifndef WIN32COMMON
-template <class T>
-void setVector( Statement *stmt, unsigned int index, 
-                const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, 
-                const OCCI_STD_NAMESPACE::string &sqltype)
-{
-  OCCI_STD_NAMESPACE::vector<void *> vec_ref;
-  OCCI_STD_NAMESPACE::vector<OCIInd> vec_ind;
-  unsigned int size = vect.size();
-  vec_ref.reserve( size );
-  vec_ind.reserve( size );
-
-  for (unsigned int i = 0; i < size; i++)
-  {
-    vec_ref.push_back((void *)vect[i].getRef());
-    vec_ind.push_back( vect[i].isNull() ? OCI_IND_NULL : OCI_IND_NOTNULL);
-  }
-
-  setVectorOfOCIRefs(stmt, index, vec_ref, vec_ind, sqltype);
-}
-
-template <class T>
-void setVector( Statement *stmt, unsigned int index, 
-                const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, 
-                const OCCI_STD_NAMESPACE::string &schemaName,
-                const OCCI_STD_NAMESPACE::string &typeName)
-{
-  OCCI_STD_NAMESPACE::vector<void *> vec_ref;
-  OCCI_STD_NAMESPACE::vector<OCIInd> vec_ind;
-  unsigned int size = vect.size();
-  vec_ref.reserve( size );
-  vec_ind.reserve( size );
-
-  for (unsigned int i = 0; i < size; i++)
-  {
-    vec_ref.push_back((void *)vect[i].getRef());
-    vec_ind.push_back( vect[i].isNull() ? OCI_IND_NULL : OCI_IND_NOTNULL);
-  }
-
-  setVectorOfOCIRefs(stmt, index, vec_ref, vec_ind, schemaName, typeName);
-}
-
-template <class T>
-void setVector( Statement *stmt, unsigned int index, 
-                const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, 
-                const UString &schemaName,
-                const UString &typeName)
-{
-  OCCI_STD_NAMESPACE::vector<void *> vec_ref;
-  OCCI_STD_NAMESPACE::vector<OCIInd> vec_ind;
-  unsigned int size = vect.size();
-  vec_ref.reserve( size );
-  vec_ind.reserve( size );
-
-  for (unsigned int i = 0; i < size; i++)
-  {
-    vec_ref.push_back((void *)vect[i].getRef());
-    vec_ind.push_back( vect[i].isNull() ? OCI_IND_NULL : OCI_IND_NOTNULL);
-  }
-
-  setVectorOfOCIRefs(stmt, index, vec_ref, vec_ind, schemaName, typeName);
-}
-#endif
-
-/*------------------------ getVector for Ref<T> ---------------------------*/
-/*
-   NAME
-      getVector - overloaded function. Retrieves the attribute in the current
-position as a vector of Ref<T>
-
-   PARAMETERS
-      stmt - Statement
-      vect- reference to vector of Ref<T>(OUT parameter).
-
-   DESCRIPTION
-     Retrieves the column in the specified position as a vector of Ref<T>.
-   The attribute at the current position should be a collection type (varray or
-   nested table). The SQL type of the elements in the collection should be
-   compatible with Ref<T>.
-
-   RETURNS
-     nothing
-
-   NOTES
-        compatible SQL types : REF
-*/
-#ifndef WIN32COMMON
-template <class T>
-void getVector( Statement *stmt, unsigned int index, 
-                OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) 
-{
-  OCCI_STD_NAMESPACE::vector<void *> vec_ref;
-  getVectorOfOCIRefs(stmt, index, vec_ref);
-
-  const Connection *sess = stmt->getConnection();
-
-  vect.clear();
-  unsigned int size = vec_ref.size();
-  vect.reserve( size );
-  for (unsigned int i=0; i< size; i++)
-  {
-    if (vec_ref[i] == (OCIRef *)0)
-       vect.push_back(Ref <T>());     // pushing a default-constructed Ref
-     else
-       vect.push_back(Ref<T> (sess, (OCIRef *)vec_ref[i], FALSE));
-  }
- 
-}
-#endif
-
-// Platform independent get/setVectorOfRefs method added
-// get(set)Vector of Ref<T> and get(set)VectorOfRefs are identical 
-// in functionality. 
-
-/*------------------------ getVectorOfRefs for Ref<T> ----------------------*/
-/*
-   NAME
-      getVectorOfRefs - overloaded function. Retrieves the attribute in the
-      current position as a vector of Ref<T>
-
-   PARAMETERS
-      rs - ResultSet
-      vect- reference to vector of Ref<T>(OUT parameter).
-
-   DESCRIPTION
-     Retrieves the column in the specified position as a vector of Ref<T>.
-   The attribute at the current position should be a collection type (varray or
-   nested table). The SQL type of the elements in the collection should be
-   compatible with Ref<T>.
-
-   RETURNS
-     nothing
-
-   NOTES
-        compatible SQL types : REF
-*/
-
-template <class T>
-void getVectorOfRefs( ResultSet *rs, unsigned int index, 
-OCCI_STD_NAMESPACE::vector<Ref<T> > &vect)
-{
-  OCCI_STD_NAMESPACE::vector<void *> vec_ref;
-  getVectorOfOCIRefs(rs, index, vec_ref);
-
-  const Connection *sess = rs->getStatement()->getConnection();
-
-  vect.clear();
-  unsigned int size = vec_ref.size();
-  vect.reserve( size );
-  for (unsigned int i=0; i< size; i++)
-  {
-    if (vec_ref[i] == (OCIRef *)0)
-       vect.push_back(Ref<T>());     // pushing a default-constructed Ref
-     else
-       vect.push_back(Ref<T>(sess, (OCIRef *)vec_ref[i], FALSE));
-  }
-}
-
-/*------------------------ setVectorOfRefs for Ref<T>-----------------------*/
-/*
-   NAME
-      setVectorOfRefs - overloaded function. Binds the attribute in the current
-      position with a vector of Ref<T>.
-
-   PARAMETERS
-      rs - ResultSet
-      vect- reference to vector of REF
-
-   DESCRIPTION
-     Binds the column in the specified position with a vector of signed int .
-   The column at the current position should be a collection type (varray or
-   nested table). The SQL type of the elements in the collection should be
-   compatible with OCIRef* .
-
-   RETURNS
-     nothing
-
-   NOTES
-     compatible SQL types : REF
-
-     This will just call setVector(..., vector<OCIRef*>,..)
-
-
-*/
-
-template <class T>
-void setVectorOfRefs( Statement *stmt, unsigned int index, 
-const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, 
-const OCCI_STD_NAMESPACE::string &sqltype)
-{
-  OCCI_STD_NAMESPACE::vector<void *> vec_ref;
-  OCCI_STD_NAMESPACE::vector<OCIInd> vec_ind;
-  unsigned int size = vect.size();
-  vec_ref.reserve( size );
-  vec_ind.reserve( size );
-
-  for (unsigned int i = 0; i < size; i++)
-  {
-    vec_ref.push_back((void *)vect[i].getRef());
-    vec_ind.push_back( vect[i].isNull() ? OCI_IND_NULL : OCI_IND_NOTNULL);
-  }
-
-  setVectorOfOCIRefs(stmt, index, vec_ref, vec_ind, sqltype);
-}
-
-template <class T>
-void setVectorOfRefs( Statement *stmt, unsigned int index, 
-const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, 
-const OCCI_STD_NAMESPACE::string &schemaName,
-const OCCI_STD_NAMESPACE::string &typeName)
-{
-  OCCI_STD_NAMESPACE::vector<void *> vec_ref;
-  OCCI_STD_NAMESPACE::vector<OCIInd> vec_ind;
-  unsigned int size = vect.size();
-  vec_ref.reserve( size );
-  vec_ind.reserve( size );
-
-  for (unsigned int i = 0; i < size; i++)
-  {
-    vec_ref.push_back((void *)vect[i].getRef());
-    vec_ind.push_back( vect[i].isNull() ? OCI_IND_NULL : OCI_IND_NOTNULL);
-  }
-
-  setVectorOfOCIRefs(stmt, index, vec_ref, vec_ind, schemaName, typeName);
-}
-
-template <class T>
-void setVectorOfRefs( Statement *stmt, unsigned int index, 
-const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, 
-const UString &schemaName,
-const UString &typeName)
-{
-  OCCI_STD_NAMESPACE::vector<void *> vec_ref;
-  OCCI_STD_NAMESPACE::vector<OCIInd> vec_ind;
-  unsigned int size = vect.size();
-  vec_ref.reserve( size );
-  vec_ind.reserve( size );
-
-  for (unsigned int i = 0; i < size; i++)
-  {
-    vec_ref.push_back((void *)vect[i].getRef());
-    vec_ind.push_back( vect[i].isNull() ? OCI_IND_NULL : OCI_IND_NOTNULL);
-  }
-
-  setVectorOfOCIRefs(stmt, index, vec_ref, vec_ind, schemaName, typeName);
-}
-
-/*------------------------ getVectorOfRefs for Ref<T> ----------------------*/
-/*
-   NAME
-      getVectorOfRefs - overloaded function. Retrieves the attribute in the
-      current position as a vector of Ref<T>
-
-   PARAMETERS
-      stmt - Statement
-      vect- reference to vector of Ref<T>(OUT parameter).
-
-   DESCRIPTION
-     Retrieves the column in the specified position as a vector of Ref<T>.
-   The attribute at the current position should be a collection type (varray or
-   nested table). The SQL type of the elements in the collection should be
-   compatible with Ref<T>.
-
-   RETURNS
-     nothing
-
-   NOTES
-        compatible SQL types : REF
-*/
-
-template <class T>
-void getVectorOfRefs( Statement *stmt, unsigned int index, 
-OCCI_STD_NAMESPACE::vector <Ref<T> > &vect)
-{
-  OCCI_STD_NAMESPACE::vector<void *> vec_ref;
-  getVectorOfOCIRefs(stmt, index, vec_ref);
-
-  const Connection *sess = stmt->getConnection();
-
-  vect.clear();
-  unsigned int size = vec_ref.size();
-  vect.reserve( size );
-  for (unsigned int i=0; i< size; i++)
-  {
-    if (vec_ref[i] == (OCIRef *)0)
-       vect.push_back(Ref <T>());     // pushing a default-constructed Ref
-     else
-       vect.push_back(Ref<T> (sess, (OCIRef *)vec_ref[i], FALSE));
-  }
-}
-/*----------------------------- pinVectorOfRefs---------------------*/
-/*
-   NAME
-    pinVectorOfRefs - array pin implementation
-
-   PARAMETERS
-     conn- Connection object
-     vecRef - vector of OCIRefs *
-     vecCor - vector of OCIComplexObject *
-     vecPOBj - vector of PObject * ( OUT )
-
-   DESCRIPTION
-    implements the array pin of refs passed and returns the corresponding
-    PObject s
-
-   RETURNS
-
-   NOTES
-*/
-template <class T>
-void pinVectorOfRefs( const Connection *conn,
-OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, 
-OCCI_STD_NAMESPACE::vector<T* > &vectObj, LockOptions lockOpt) 
-{
-   
- OCCI_STD_NAMESPACE::vector<void *> vecRef;
- OCCI_STD_NAMESPACE::vector<void *> vecCor;
- OCCI_STD_NAMESPACE::vector<PObject *> vecPObj;
- unsigned int sz = vect.size();
- vecRef.reserve( sz );
- vecCor.reserve( sz );
-
- for ( unsigned int  i=0; i < sz; i++)
- {
-   vecRef.push_back((void *)vect[i].getRef());
-   vecCor.push_back((void *)vect[i].getCor());
- }
- pinVectorOfOCIRefs(conn, vecRef, vecCor, vecPObj, lockOpt);
- for ( unsigned int  k=0; k < sz; k++)
- {
-   vectObj.push_back((T *)vecPObj[k]);
-   vect[k].setPinnedObject(vecPObj[k]);
- }
-}
-
-/*----------------------------- pinVectorOfRefs---------------------*/
-/*
-   NAME
-    pinVectorOfRefs - array pin implementation
-
-   PARAMETERS
-     conn- Connection object
-     vecRef - vector of OCIRefs *
-     vecCor - vector of OCIComplexObject *
-
-   DESCRIPTION
-    implements the array pin of refs passed 
-
-   RETURNS
-
-   NOTES
-*/
-template <class T>
-void pinVectorOfRefs( const Connection *conn,
-OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
-LockOptions lockOpt)
-{
-  
- OCCI_STD_NAMESPACE::vector<void *> vecRef;
- OCCI_STD_NAMESPACE::vector<void *> vecCor;
- OCCI_STD_NAMESPACE::vector<PObject *> vecPObj;
- unsigned int sz = vect.size();
- vecRef.reserve( sz );
- vecCor.reserve( sz );
-
- for ( unsigned int  i=0; i < sz; i++)
- {
-   vecRef.push_back((void *)vect[i].getRef());
-   vecCor.push_back((void *)vect[i].getCor());
- }
- pinVectorOfOCIRefs(conn, vecRef, vecCor,vecPObj, lockOpt);
- for ( unsigned int  k=0; k < sz; k++)
-   vect[k].setPinnedObject(vecPObj[k]);
-}
-
-
-
-/*---------------------------------------------------------------------------
-                          INTERNAL FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-} /* end of namespace occi */
-} /* end of namespace oracle */
-#endif                                              /* OCCICONTROL_ORACLE */
-
-#endif                                              /* _olint */
diff --git a/src/terralib/drivers/Oracle/OCI/include/occiData.h b/src/terralib/drivers/Oracle/OCI/include/occiData.h
deleted file mode 100644
index 50b8d64..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/occiData.h
+++ /dev/null
@@ -1,936 +0,0 @@
-/* Copyright (c) 2000, 2003, Oracle Corporation.  All rights reserved.  */
-   
-/* 
-   NAME 
-     occiData.h - header file for OCCI data classes
-
-   DESCRIPTION 
-     Class definitions for Stream, Blob, Clob ,Bfile,
-     Number, Date, IntervalYM, IntervalDS, Time,
-     Timestamp
-
-   RELATED DOCUMENTS 
-     <note any documents related to this facility>
- 
-   EXPORT FUNCTION(S) 
-   <external functions declared for use outside package - one-line descriptions>
-
-   INTERNAL FUNCTION(S)
-     <other external functions declared - one-line descriptions>
-
-   EXAMPLES
-
-   NOTES
-     <other useful comments, qualifications, etc.>
-
-   MODIFIED   (MM/DD/YY)
-   shiyer      10/31/03 - Timestamp constructors issue 
-   rvallam     10/07/03 - bug 3089939 - add private method in Date to compute 
-                          hour and min component in daysBetween to be passed 
-                          to set method of IntervalDS.
-   cparampa    08/21/03 - added toCopy to IntervalDS and IntervalYM
-   cparampa    07/14/03 - make SubscriptionImpl friend of Bytes class. 
-   rvallam     02/12/03 - modified BFloat/BDouble interface - BFloat/BDouble
-                          type is now a struct
-   cparampa    01/20/03 - made ProducerImpl friend of Bytes class
-   rvallam     11/19/02 - objects support for interval class
-   shiyer      11/15/02 - Add UTF16 support to IntervalYM & IntervalDS
-   cparampa    12/11/02 - removed references to class Payload
-   cparampa    10/12/02 - AQ additions
-   shiyer      10/12/02 - Added UTF16 version of get/set CharsetId in Clob
-   shiyer      09/06/02 - OCCI globalization support
-   aahluwal    06/04/02 - bug 2360115
-   vvinay      02/21/02 - operator= added for Bytes
-   gayyappa    10/23/01 - fix bug 2073327 , use string instead of enum CharSet  
-   vvinay      12/21/01 - signed char constructor and cast operator
-                          (bug 2073334)
-                          binary operator methods not friends any more
-   gayyappa    15/10/01 - add parameter toCopy to Lob/Timestamp private 
-                          constructors 
-   rvallam     04/09/01 - change private constructor in Number to pass
-                          parameter by reference and made it const
-   chliang     03/05/01 - disable olint
-   rvallam     01/27/02 - remove #include <ostream>
-   gayyappa    01/17/01 - add methods/operators to Interval and
-                          timestamp classes..
-   gayyappa    12/15/00 - interface changes in set methods
-   rvallam     11/29/00 - change method signature in Bytes
-                          added 3 new methods in Number  
-   rvallam     10/20/00  - change method signatures in Date
-   rvallam     09/15/00 - make StmtImpl/ResultSetImpl friend to 
-                          interval classes 
-   gayyappa    08/21/00 - modified timestamp, interval headers.
-                          add OCIEnv to constructor of Bytes.,
-                          removed getOCIRaw from Bytes.
-                          add const to setVector mthds of anydata.
-                          add dvoid* data member to Timestamp/Interval.
-   rvallam     08/10/00 - modified CORE class headers to add friends , 
-                          added private constructor in Bytes
-   slari       08/02/00 - comment out Stream
-   rratnam     08/04/00 - updated the LOB stream interface
-   rkasamse    08/07/00 - make getVector friend of Time
-   slari       07/31/00 - add const to Bytes methods
-   slari       07/25/00 - disable Bytes(Bytes *)
-   slari       07/23/00 - add Bytes
-   gayyappa    07/26/00 - update Timestamp, IntervalYM, IntervalDS.
-   gayyappa    07/04/00 - for fixing a problem in occiNumber
-   rratnam     06/13/00 - Updated LOB class headers
-   kmohan      05/31/00 - Change Environment to Environment * in 
-			  Date constructor
-   kmohan      05/29/00 - No string
-   rkasamse    04/25/00 - Added string class header
-   etucker     04/19/00 - Added CORE class headers
-   kmohan      04/11/00 - Creation
-
-*/
-
-#ifndef _olint   /* disable olint check */
-
-#ifndef OCCIDATA_ORACLE
-# define OCCIDATA_ORACLE
-
-#ifndef OCCICOMMON_ORACLE
-#include <occiCommon.h>
-#endif
-
-#ifndef OCCICONTROL_ORACLE
-#include <occiControl.h>
-#endif
-
-namespace oracle {
-namespace occi {
-class Bytes
-{
- 
- public:
- 
-  Bytes(const Environment *env = NULL);      // default constructor
- 
-  Bytes(unsigned char *value, unsigned int count, 
-            unsigned int offset = 0, const Environment *env = NULL); 
-
-  Bytes(const Bytes &e); // copy constructor
-
- 
-                    // public methods
- 
-  void getBytes(unsigned char *dst, unsigned int count, 
-                        unsigned int srcBegin = 0,
-                        unsigned int dstBegin = 0) const; 
- 
-  unsigned int length() const;
- 
-  unsigned char byteAt(unsigned int index) const;
-
-  bool isNull() const;
- 
-  void setNull();
-
-  void operator=(const Bytes &other);
- 
-  ~Bytes();
-
-private:
-                                // private data members
-  Bytes(OCIEnv *,OCIRaw *) ;
-  Bytes(Ptr<BytesImpl> bytesPtr) ;
-  Ptr<BytesImpl> ptr_;
-  friend class AnyDataImpl;
-  friend class aq::MessageImpl;
-  friend class aq::ProducerImpl;
-  friend class aq::SubscriptionImpl;
-  friend  void getVector(const AnyData &any, 
-                         OCCI_STD_NAMESPACE::vector<Bytes> &vect) ;
-  friend  void setVector(AnyData &any, 
-  const OCCI_STD_NAMESPACE::vector<Bytes> &vect) ;
-
-};
- 
-class Bfile
-{
-  public :
-
-    Bfile();
-    Bfile(const Connection *connectionp) ;
-    Bfile(const Bfile &srcBfile) ;
-    ~Bfile();
-    unsigned int length() const ;
-    OCCI_STD_NAMESPACE::string getDirAlias() const ;
-    UString getUStringDirAlias() const ;
-    OCCI_STD_NAMESPACE::string getFileName() const ;
-    UString getUStringFileName() const ;
-    void setName(const OCCI_STD_NAMESPACE::string &dirAlias, 
-                 const OCCI_STD_NAMESPACE::string &fileName) ;
-    void setName(const UString &dirAlias, const UString &fileName) ;
-    bool fileExists() const ; 
-    Bfile& operator =(const Bfile &srcBfile) ;
-    bool operator ==(const Bfile &srcBfile) const ;
-    bool operator !=(const Bfile &srcBfile) const ;
-    void setNull() ;
-    bool isNull() const ;
-    bool isInitialized() const;
-    void open() ;
-    void close() ;
-    bool isOpen() const ;
-    unsigned int read(unsigned int  amt, unsigned char *buffer,
-      unsigned int  bufsize, unsigned int offset = 1) const ;
-    Stream* getStream(unsigned int offset = 1,
-      unsigned int amount =0)  ;
-    void closeStream(Stream *stream);
-
-  private:
-
-    //Data Members:
-
-    // pointer to the FILE locator
-    OCIBFileLocator *filep; 
-
-    // pointer to the ConnectionImpl instance
-    const ConnectionImpl *connp; 
-
-    // pointer to the LobStreamImpl instance obtained from this FILE
-    LobStreamImpl *streamp;
-
-    void *bfileExt;
-
-    //Enumerations:
-    enum {MAXDIRNAMELEN = 32, MAXFILENAMELEN = 256};
-
-    //Constructor: 
-    Bfile(const Connection *connectionp, 
-    OCIBFileLocator *locatorp, bool toCopy = true) ;
-  
-    //Methods:
-    OCIBFileLocator* getLocator() const;
-    void do_getDirAlias( void * dirAlias, ub2 * dirAliasLen) const ;
-    void do_getFileName( void * fileName, ub2 * fileNameLen) const ;
-    void do_setName( void * alias, ub2 aliasLen,
-                     void *fileName, ub2 fileNameLen);   
-  // Friends
-  friend class AnyDataImpl;
-  friend class StatementImpl;
-  friend class ResultSetImpl;
-  friend class Blob;
-  friend class Clob;
-  friend class aq::MessageImpl;
-
-  friend void getVector(const AnyData&, OCCI_STD_NAMESPACE::vector<Bfile>&) ;
-  friend void getVector(Statement*, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Bfile>&) ;
-  friend void getVector(ResultSet*, unsigned int , 
-  OCCI_STD_NAMESPACE::vector<Bfile>&) ;
-  friend void setVector(AnyData&, const OCCI_STD_NAMESPACE::vector<Bfile>&) ;
-  friend void do_setVectorOfBfile(Statement*, unsigned int, 
-  const OCCI_STD_NAMESPACE::vector<Bfile>&, void *, unsigned int, void *, unsigned int ) ;
-};
-
-class Blob
-{
-  public:
-
-    Blob();
-    Blob(const Connection *connectionp) ;
-    Blob(const Blob &srcBlob) ;
-    ~Blob();
-    unsigned int getChunkSize() const ;
-    unsigned int length() const ;
-    Blob& operator =(const Blob &srcBlob) ;
-    bool operator ==(const Blob &srcBlob) const ;
-    bool operator !=(const Blob &srcBlob) const ;
-    void setNull() ;
-    bool isNull() const ;
-    void setEmpty() ;
-    void setEmpty(const Connection *connectionp) ;
-    bool isInitialized() const;
-    void open(LobOpenMode mode=OCCI_LOB_READWRITE) ;
-    void close() ;
-    bool isOpen() const ;
-    void copy(const Blob &srcBlob, unsigned int numBytes,
-      unsigned int  dstOffset =1, unsigned int srcOffset =1) ;
-    void copy(const Bfile &srcBfile, unsigned int numBytes,
-      unsigned int  dstOffset =1, unsigned int srcOffset =1) ;
-    void append(const Blob &srcBlob) ;
-    unsigned int read(unsigned int  amt, unsigned char *buffer,
-      unsigned int  bufsize, unsigned int offset = 1) const ;
-    unsigned int write(unsigned int amt, unsigned char *buffer,
-      unsigned int bufsize, unsigned int offset = 1) ;
-    unsigned int writeChunk(unsigned int amt, unsigned char *buffer,
-      unsigned int bufsize, unsigned int offset = 1) ;
-    void trim(unsigned int newlen) ;
-    Stream* getStream(unsigned int offset = 1,
-      unsigned int amount =0)  ;
-    void closeStream(Stream *stream);
-
-  private:
-
-    //Data Members:
-
-    // pointer to the BLOB locator
-    OCIBlobLocator *lobp; 
-
-    // pointer to the ConnectionImpl instance
-    const ConnectionImpl *connp; 
-
-    // pointer to the LobStreamImpl instance obtained from this LOB
-    LobStreamImpl *streamp; 
-
-    //for future use !
-    void *blobExt;
-
-    //Constructor: 
-    Blob(const Connection *connectionp, 
-    OCIBlobLocator *locatorp, bool toCopy=true) ;
-
-    //Methods:
-    OCIBlobLocator* getLocator() const;
-
-  // Friends
-  friend class AnyDataImpl;
-  friend class StatementImpl;
-  friend class ResultSetImpl;
-
-  friend void getVector(const AnyData&, OCCI_STD_NAMESPACE::vector<Blob>&) ;
-  friend void getVector(Statement*, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Blob>&) ;
-  friend void getVector(ResultSet*, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Blob>&) ;
-  friend void setVector(AnyData&, const OCCI_STD_NAMESPACE::vector<Blob>&) ;
-  friend void do_setVectorOfBlob(Statement*, unsigned int, 
-  const OCCI_STD_NAMESPACE::vector<Blob>&, void *, unsigned int, void *, unsigned int ) ;
-};
-
-class Clob
-{
-  public:
-
-    Clob();
-    Clob(const Connection *connectionp) ;
-    Clob(const Clob &srcClob) ;
-    ~Clob();
-    unsigned int getChunkSize() const ;
-    unsigned int length() const ;
-    OCCI_STD_NAMESPACE::string getCharSetId() const;
-    CharSetForm getCharSetForm() const;
-    void setCharSetId( const OCCI_STD_NAMESPACE::string &charset) ;
-    void setCharSetForm( CharSetForm csfrm) ;
-    Clob& operator =(const Clob &srcClob) ;
-    bool operator ==(const Clob &srcClob) const ;
-    bool operator !=(const Clob &srcClob) const ;
-    void setNull() ;
-    bool isNull() const ;
-    void setEmpty() ;
-    void setEmpty(const Connection *connectionp) ;
-    bool isInitialized() const;
-    void open(LobOpenMode mode=OCCI_LOB_READWRITE) ;
-    void close() ;
-    bool isOpen() const ;
-    void copy(const Clob &srcClob, unsigned int numBytes,
-              unsigned int  dstOffset = 1, unsigned int srcOffset = 1) ;
-    void copy(const Bfile &srcBfile, unsigned int numBytes,
-              unsigned int  dstOffset = 1, unsigned int srcOffset = 1) ;
-    void append(const Clob &srcClob) ;
-    unsigned int read(unsigned int  amt, unsigned char *buffer,
-                      unsigned int  bufsize,  unsigned int offset = 1) const;
-    unsigned int read(unsigned int  amt, utext *buffer,
-                      unsigned int  bufsize,  unsigned int offset = 1) const;
-    unsigned int write(unsigned int amt, unsigned char *buffer,
-                       unsigned int bufsize,  unsigned int offset = 1 );
-    unsigned int write(unsigned int amt, utext *buffer,
-                       unsigned int bufsize,  unsigned int offset = 1 );
-    unsigned int writeChunk(unsigned int amt, unsigned char *buffer,
-                            unsigned int bufsize, unsigned int offset = 1 );
-    unsigned int writeChunk(unsigned int amt, utext *buffer,
-                            unsigned int bufsize, unsigned int offset = 1 );
-    void trim(unsigned int newlen) ;
-    Stream* getStream(unsigned int offset = 1,
-      unsigned int amount =0 );
-    void closeStream(Stream *stream);
-    
-    UString getCharSetIdUString() const;
-    void setCharSetIdUString( const UString &charset) ;
-
-  private:
-
-    //Data Members:
-
-    // pointer to the CLOB locator
-    OCIClobLocator *lobp; 
-
-    // pointer to the ConnectionImpl instance
-    const ConnectionImpl *connp; 
-
-    // pointer to the LobStreamImpl instance obtained from this LOB
-    LobStreamImpl *streamp; 
-
-    //charset id
-    ub2 charsetId;
-
-    //charset form
-    CharSetForm charsetForm;
-
-    //for future use !
-    void *clobExt;
-
-    //Constructor: 
-    Clob(const Connection *connectionp, 
-    OCIClobLocator *locatorp, bool toCopy =true ) ;
-
-    //Methods:
-    OCIClobLocator* getLocator() const;
-    unsigned int do_read( unsigned int amt, void *buffer, 
-    unsigned int bufsize, unsigned int offset) const;
-    unsigned int do_write( unsigned int amt, void *buffer, 
-    unsigned int bufsize, unsigned int offset) ;
-    unsigned int do_writeChunk( unsigned int amt, void *buffer, 
-    unsigned int bufsize, unsigned int offset) ;
-   
-  // Friends
-  friend class AnyDataImpl;
-  friend class StatementImpl;
-  friend class ResultSetImpl;
-
-  friend void getVector(const AnyData&, OCCI_STD_NAMESPACE::vector<Clob>&) ;
-  friend void getVector(Statement*, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Clob>&) ;
-  friend void getVector(ResultSet*, unsigned int, 
-  OCCI_STD_NAMESPACE::vector<Clob>&) ;
-  friend void setVector(AnyData&, const OCCI_STD_NAMESPACE::vector<Clob>&) ;
-  friend void do_setVectorOfClob(Statement*, unsigned int, 
-  const OCCI_STD_NAMESPACE::vector<Clob>&, void *, unsigned int, void *, unsigned int ) ;
-};
-
-class Number
-{
- 
- public:
-
- // Constructors
-  /* default constructor added  */
-  Number();
-  Number(const Number &srcNum);
-  Number(long double val) ;
-  Number(double val) ;
-  Number(float val) ;
-  Number(long val) ;
-  Number(int val) ;
-  Number(short val) ;
-  Number(char val) ;
-  Number(signed char val);
-  Number(unsigned long val) ;
-  Number(unsigned int val) ;
-  Number(unsigned short val) ;
-  Number(unsigned char val) ;
-
-  ~Number();
-  // Methods
-  const Number abs() const ;
-  // unary negate
-  const Number operator-() ;
-  // unary increment
-  Number& operator++() ;
-  const Number operator++(int) ;
-  // unary decrement
-  Number& operator--() ;
-  const Number operator--(int) ;
-  // assigment operator
-  Number& operator=(const Number &a);
-  // add and assign
-  Number& operator+=(const Number &a) ;
-  // subtract and assign
-  Number& operator-=(const Number &a) ;
-  // Mulitply an assign
-  Number& operator*=(const Number &a) ;
-   // divide and assign
-  Number& operator/=(const Number &a) ;
-  // Modulo and assign
-  Number& operator%=(const Number &a) ;
-  // casting operators
-  operator long() const;
-  operator int() const;
-  operator short() const;
-  operator char() const;
-  operator signed char() const;
-  operator unsigned long() const;
-  operator unsigned int() const;
-  operator unsigned short() const;
-  operator unsigned char() const;
-  operator long double() const;
-  operator double() const;
-  operator float() const;
-  // Decimal shift
-  const Number shift(int val) const ;
-  // Integer Power
-  const Number intPower(int val) const ;
-  const Number ceil() const ;
-  const Number floor() const ;
-  const Number squareroot() const ;
-  const int sign() const ;
-  // conversion routines
-  //  Format Number and return as a OCCI_STD_NAMESPACE::string
-  OCCI_STD_NAMESPACE::string toText(const Environment *envp,
-                const OCCI_STD_NAMESPACE::string &fmt,const OCCI_STD_NAMESPACE::string &nlsParam="") const
-                ;
-  UString toText(const Environment *envp,
-                const UString &fmt,const UString &nlsParam) const
-                ;
-  // Create an Number from formatted text
-  void fromText(const Environment *envp,const OCCI_STD_NAMESPACE::string &number,
-                const OCCI_STD_NAMESPACE::string &fmt, const OCCI_STD_NAMESPACE::string &nlsParam = "")
-               ;
-  void fromText(const Environment *envp,
-  const UString &number, 
-  const UString &fmt, const UString &nlsParam);
-  void fromBytes(const Bytes &s) ;
-  Bytes toBytes() const;
-  // truncate digits
-  const Number trunc(int decplace) const ;
-   // round to the decplace place.
-  const Number round(int decplace) const ;
-  // returns an Number with digits decimal digits
-  const Number prec(int digits) const ;
-  const Number sin() const ;
-  const Number cos() const ;
-  const Number tan() const ;
-  const Number hypSin() const ;
-  const Number hypCos() const ;
-  const Number hypTan() const ;
-  const Number arcSin() const ;
-  const Number arcCos() const ;
-  const Number arcTan() const ;
-  const Number arcTan2(const Number &val) const;
-  const Number power(const Number &val) const;
-  const Number exp() const ;
-  const Number ln() const ;
-  const Number log(const Number &val) const;
-  bool isNull() const;
-  void setNull();
- private:
-  /* Private constructor for constructing number from methods inside  */
-  Number(const OCINumber &result);
-  OCINumber getOCINumber() const;
-
-  OCINumber data;
-  /* a flag to indicate if the  Number  is null */
-  bool numberIsNull;
-  void *numberExt;
-
-  // a >= b
-  friend bool operator>=(const Number &a, const Number &b);
-  // a < = b
-  friend bool operator<=(const Number &a, const Number &b);
-  // a > b
-  friend bool operator>(const Number &a, const Number &b);
-  // a < b
-  friend bool operator<(const Number &a, const Number &b);
-
-  friend class IntervalDS;
-  friend class IntervalYM;
-  friend const IntervalYM operator*(const IntervalYM &a,
-  const Number& factor) ;
-  friend const IntervalDS operator*(const IntervalDS &a,
-  const Number& factor) ;
-  friend const IntervalYM operator/(const IntervalYM &a,
-  const Number &factor) ;
-  friend const IntervalDS operator/(const IntervalDS &a,
-  const Number &factor) ;
-  friend class ResultSetImpl;
-  friend class StatementImpl;
-  friend class AnyDataImpl;
-  friend void getVector(const AnyData &any, 
-  OCCI_STD_NAMESPACE::vector<Number> &vect);
-  friend void setVector(AnyData &any, 
-  const OCCI_STD_NAMESPACE::vector<Number> &vect) ;
-  friend Number MetaData::getNumber(MetaData::AttrId attrid)          const ;
-  friend void getVector(Statement  *stmt, unsigned int paramIndex,
-  OCCI_STD_NAMESPACE::vector<Number> &vect) ;
-  friend void do_setVectorOfNumber(Statement *stmt, unsigned int paramIndex,
-  const OCCI_STD_NAMESPACE::vector<Number> &vect, void *schemaName, unsigned int schemaNameLen,
-  void *typeName, unsigned int typeNameLen);
-  friend void getVector(ResultSet  *rs, unsigned int colIndex,
-  OCCI_STD_NAMESPACE::vector<Number> &vect);
-
-};
-
-class Date
-{
- public:
-
-  // Constructors
-  Date();
-  Date(const Date &a);
-  Date(const Environment *envp,int year = 1,unsigned int month = 1,
-           unsigned int day = 1,unsigned  int hour = 0,
-           unsigned int minute = 0, unsigned int seconds = 0);
-  ~Date();
-  // Methods
-
-  void setDate(int year = 1,unsigned int month = 1,unsigned int day = 1,
-               unsigned int hour = 0,unsigned int minute = 0,
-               unsigned int seconds = 0);
-  void getDate(int &year,unsigned int &month,unsigned int &day,
-           unsigned int &hour ,unsigned int &min ,unsigned int &sec) const;
-  Bytes toBytes() const ;
-  void fromBytes(const Bytes &byteStream, 
-  const Environment *envp = NULL);
-  OCCI_STD_NAMESPACE::string toText(
-                 const OCCI_STD_NAMESPACE::string &fmt = "",
-                 const OCCI_STD_NAMESPACE::string &nlsParam = "") const;
-  UString toText(
-                 const UString &fmt ,
-                 const UString &nlsParam ) const;
-  void fromText(const OCCI_STD_NAMESPACE::string &datestr,
-                const OCCI_STD_NAMESPACE::string &fmt = "",
-                const OCCI_STD_NAMESPACE::string &nlsParam = "",
-                const Environment *envp = NULL);
-  void fromText(const UString &datestr,
-                const UString &fmt , const UString &nlsParam ,
-                const Environment *envp = NULL);
-  Date toZone(const OCCI_STD_NAMESPACE::string &zone1, const OCCI_STD_NAMESPACE::string &zone2) const;
-  Date& operator=(const Date &d);
-  Date addMonths(int i) const;
-  Date addDays(int i) const ;
-  Date lastDay() const ;
-  IntervalDS daysBetween(const Date &d) const;
-  Date nextDay(const OCCI_STD_NAMESPACE::string &dow) const;
-  Date nextDay(const UString &dow) const;
-  bool isNull() const;
-  void setNull();
-  static Date getSystemDate(const Environment *envp) ;
-
- private:
-  OCIDate date;
-  OCIEnv *envhp;
-  bool dateIsNull;
-  void *dateExt;
-
-  /* private constructor */
-  Date(OCIEnv *envp,OCIDate dateval);
-  OCIDate getOCIDate() const;
-  void do_toText( void * fmt, ub1 fmtLen, void * nlsParam, 
-                  ub4 nlsParamLen, void * buf, ub4 * bufLen, 
-                  bool isUTF16) const;
-  void do_fromText( void * datestr, ub4 datestrLen,
-                  void * fmt, ub1 fmtLen,
-                  void * nlsParam, ub4 nlsParamLen,
-                  const Environment * envp,
-                  bool isUTF16);
-  Date do_nextDay( void * dow, size_t dowLen, bool isUTF16) const;
-  void constructHourAndMinute(sb4 &seconds, sb4 &hours, sb4 &minutes) const;
-  friend bool operator==(const Date &a,const Date &b);
-  friend bool operator>(const Date &a,const Date &b);
-  friend bool operator<(const Date &a,const Date &b);
-  friend bool operator!=(const Date &a,const Date &b);
-  friend bool operator>=(const Date &a,const Date &b);
-  friend bool operator<=(const Date &a,const Date &b);
-  friend class ResultSetImpl;
-  friend class StatementImpl;
-  friend class AnyDataImpl;
-  friend class aq::MessageImpl;
-  friend void getVector(const AnyData &any, 
-                        OCCI_STD_NAMESPACE::vector<Date> &vect) ;
-  friend void setVector(AnyData &any, 
-                        const OCCI_STD_NAMESPACE::vector<Date> &vect);
-  friend void getVector(Statement  *stmt, unsigned int paramIndex,
-   OCCI_STD_NAMESPACE::vector<Date> &vect)  ;
-  friend void do_setVectorOfDate(Statement *stmt, unsigned int paramIndex, 
-   const OCCI_STD_NAMESPACE::vector<Date> &vect, void *schemaName, unsigned int schemaNameLen,
-   void *typeName, unsigned int typeNameLen) ;
-  friend void getVector(ResultSet  *rs, unsigned int colIndex, 
-  OCCI_STD_NAMESPACE::vector<Date> &vect) ;
-
-}; //class Date
-
-class Timestamp
-{
-  public:
-  Timestamp() ;
-
-  Timestamp( const Environment *env, int year=1,
-             unsigned int month=1, unsigned int day=1, unsigned int hour=0,
-             unsigned int min=0 ,unsigned int sec=0, unsigned int fs=0, 
-             int tzhour=0, int tzmin=0) ;
-  Timestamp( const Environment *env, int year,
-             unsigned int month, unsigned int day, unsigned int hour,
-             unsigned int min ,unsigned int sec, unsigned int fs, 
-             const OCCI_STD_NAMESPACE::string &timezone);
-  Timestamp( const Environment *env, int year,
-             unsigned int month, unsigned int day, unsigned int hour,
-             unsigned int min ,unsigned int sec, unsigned int fs, 
-             const UString &timezone);
-  Timestamp( const Timestamp &src) ;
-  ~Timestamp();
-
-  void getTimeZoneOffset( int &hour, int &minute) const ;
-  void getTime( unsigned int &hour, unsigned int &minute,
-  unsigned int &second, unsigned int &fs) const ;
-  void getDate( int &year, unsigned int &month, unsigned int &day )const ;
-  OCCI_STD_NAMESPACE::string toText(const OCCI_STD_NAMESPACE::string &fmt, 
-                     unsigned int fsprec, 
-                     const OCCI_STD_NAMESPACE::string &nlsParam ="") const   ;
-  UString toText(const UString &fmt, 
-                 unsigned int fsprec, const UString &nlsParam ) const   ;
-  void setTimeZoneOffset( int hour,  int minute)  ;
-  void setTime( unsigned int hour, unsigned int minute,
-  unsigned int second, unsigned int fs)  ;
-  void setDate( int year, unsigned int month, unsigned int day ) ;
-  void setNull() ;
-  void fromText( const OCCI_STD_NAMESPACE::string &timestmpStr, 
-                 const OCCI_STD_NAMESPACE::string &fmt ,
-                 const OCCI_STD_NAMESPACE::string &nlsParam= "", 
-                 const Environment *env =NULL);
-  void fromText( const UString &timestmpStr, 
-                 const UString &fmt , const UString &nlsParam, 
-                 const Environment *env =NULL);
-  bool isNull() const;
-  Timestamp & operator =( const Timestamp &src) ;
-  const IntervalYM subYM(const Timestamp& val) const ;
-  const IntervalDS subDS(const Timestamp& val) const ;
-  const Timestamp intervalAdd(const IntervalDS& val) const ;
-  const Timestamp intervalSub(const IntervalDS& val) const ;
-  const Timestamp intervalAdd(const IntervalYM& val) const ;
-  const Timestamp intervalSub(const IntervalYM& val) const ;
-
-  friend bool operator==(const Timestamp &a,const Timestamp &b);
-  friend bool operator>(const Timestamp &a,const Timestamp &b);
-  friend bool operator<(const Timestamp &a,const Timestamp &b);
-  friend bool operator !=(const Timestamp &a,const Timestamp &b);
-  friend bool operator >=(const Timestamp &a,const Timestamp &b);
-  friend bool operator <=(const Timestamp &a,const Timestamp &b);
-
-  friend class ResultSetImpl;
-  friend class StatementImpl;
-  friend class AnyDataImpl;
-
-  private:
-   OCIDateTime *ocidatetime;
-   OCIEnv *ocienv;
-   void *timestampExt;
-
-   OCIDateTime *getOCIDateTime() const;
-   Timestamp( OCIEnv *env, OCIDateTime *dt, bool toCopy = true) ;
-   void allocateDataMembers( OCIEnv *env) ;
-   void do_TimestampConstruct( const Environment *env, int year, 
-   unsigned int month, unsigned int day, unsigned int hour, unsigned int min, 
-   unsigned int sec, unsigned int fs, void *tzinter);
-
-   friend  void getVector(const AnyData &any,
-   OCCI_STD_NAMESPACE::vector<Timestamp> &vect);
-   friend  void setVector(AnyData &any, 
-   const OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
-   friend Timestamp MetaData::getTimestamp(
-   MetaData::AttrId attrid) const ;
-   friend void getVector(ResultSet  *rs, unsigned int,
-   OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
-   friend void getVector(Statement  *rs, unsigned int,
-   OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
-   friend void do_setVectorOfTimestamp(Statement *stmt, unsigned int paramIndex,
-   const OCCI_STD_NAMESPACE::vector<Timestamp> &vect, void *schemaName, unsigned int schemaNameLen,
-   void *typeName, unsigned int typeNameLen) ;
-}; // class Timestamp
-
-class IntervalDS
-{
-
-  public:
-  IntervalDS() ;
-  IntervalDS( const Environment *env,int day=0, 
-  int hour=0, int minute=0, int second=0, 
-  int fs=0) ;
-  IntervalDS( const IntervalDS &src) ;
-
-  ~IntervalDS();
-
-  int getDay () const ;
-  int getHour () const ;
-  int getMinute () const ;
-  int getSecond() const ;
-  int getFracSec () const ;
-  void set( int day, int hour, int minute, int second, int fracsec) ;
-  void setNull() ;
-  void fromText( const OCCI_STD_NAMESPACE::string &inpstr, const OCCI_STD_NAMESPACE::string &nlsParam ="",
-  const Environment *env=NULL)  ;
-  OCCI_STD_NAMESPACE::string toText( unsigned int lfprec, unsigned int fsprec,
-  const OCCI_STD_NAMESPACE::string &nlsParam="") const ;
-  bool isNull() const;
-  IntervalDS& operator =( const IntervalDS &src) ;
-  IntervalDS& operator +=( const IntervalDS &a);
-  IntervalDS& operator -=( const IntervalDS &a);
-  IntervalDS& operator *=( const Number &factor);
-  IntervalDS& operator /=( const Number &factor);
-
-  friend bool operator>(const IntervalDS &a,
-  const IntervalDS &b) ;
-  friend bool operator<(const IntervalDS &a,
-  const IntervalDS &b) ;
-  friend bool operator >=( const IntervalDS &a, 
-  const IntervalDS &b);
-  friend bool operator <=( const IntervalDS &a, 
-  const IntervalDS &b);
-  
-  //UTF16 support
-  void fromUText( const UString &inpstr, const Environment *env=NULL );
-  UString toUText( unsigned int lfprec, unsigned int fsprec) const;
-
-  private:
-   OCIInterval *ociinter;
-   OCIEnv *ocienv;
-   void *intervalDSExt;
-
-   IntervalDS( OCIEnv *env, OCIInterval *inter, bool toCopy = true) ;
-   OCIInterval * getOCIInterval() const;
-
-   void allocateDataMembers( OCIEnv *env) ;
-   friend const IntervalDS Timestamp::subDS(
-   const Timestamp& val) const ;
-   friend const Timestamp Timestamp::intervalAdd(
-   const IntervalDS& val) const ;
-   friend const Timestamp Timestamp::intervalSub(
-   const IntervalDS& val) const ;
-   friend class Date;
-   friend void getVector(ResultSet  *rs, unsigned int,
-   OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
-   friend void getVector(Statement  *rs, unsigned int,
-   OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
-   friend void do_setVectorOfIntervalDS(Statement *stmt, unsigned int paramIndex,
-   const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect, void *schemaName, unsigned int schemaNameLen,
-   void *typeName, unsigned int typeNameLen) ;
-   friend class StatementImpl;
-   friend class ResultSetImpl;
-   friend class AnyDataImpl;
-   friend  void getVector(const AnyData &any,
-   OCCI_STD_NAMESPACE::vector<IntervalDS> &vect);
-   friend  void setVector(AnyData &any,
-   const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
-
- 
-};  //class IntervalDS
-
-class IntervalYM
-{
-
-  public:
-  IntervalYM() ;
-  IntervalYM( const Environment *env,int year=0, int month=0) ;
-  IntervalYM( const IntervalYM &src) ;
-  ~IntervalYM();
-
-  int getYear() const ;
-  int getMonth() const ;
-
-  void set( int year, int month) ;
-  void setNull() ;
-  void fromText( const OCCI_STD_NAMESPACE::string &inpstr, const OCCI_STD_NAMESPACE::string &nlsParam="",
-  const Environment *env=NULL) ;
-  OCCI_STD_NAMESPACE::string toText( unsigned int lfprec, const OCCI_STD_NAMESPACE::string &nlsParam="") const;
-  bool isNull() const;
-  IntervalYM & operator =( const IntervalYM &src) ;
-  IntervalYM& operator +=( const IntervalYM &a);
-  IntervalYM& operator -=( const IntervalYM &a);
-  IntervalYM& operator *=( const Number &factor);
-  IntervalYM& operator /=( const Number &factor);
-
-  friend bool operator>(const IntervalYM &a, const IntervalYM &b) ;
-  friend bool operator<( const IntervalYM &a, const IntervalYM &b) ;
-  friend bool operator >=(const IntervalYM &a, const IntervalYM &b);
-  friend bool operator <=(const IntervalYM &a, const IntervalYM &b);
-  
-  //UTF16 support
-  void fromUText( const UString &inpstr, const Environment *env=NULL );
-  UString toUText( unsigned int lfprec ) const;
-
-  private:
-   OCIInterval *ociinter;
-   OCIEnv *ocienv;
-   void *intervalYMExt;
-
-   IntervalYM( OCIEnv *env, OCIInterval *inter, bool toCopy = true) ;
-   OCIInterval *getOCIInterval() const;
-   void allocateDataMembers( OCIEnv *env) ;
-   friend const IntervalYM Timestamp :: subYM(
-   const Timestamp& val) const ;
-   friend const Timestamp Timestamp::intervalAdd(
-   const IntervalYM &val) const ;
-   friend const Timestamp Timestamp::intervalSub(
-   const IntervalYM &val) const ;
-
-   friend void getVector(ResultSet  *rs, unsigned int,
-   OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
-   friend void getVector(Statement  *rs, unsigned int,
-   OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
-   friend void do_setVectorOfIntervalYM(Statement *stmt, unsigned int paramIndex,
-   const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect, void *schemaName, unsigned int schemaNameLen,
-   void *typeName, unsigned int typeNameLen) ;
-
-   friend class StatementImpl;
-   friend class ResultSetImpl;
-   friend class AnyDataImpl;
-   friend  void getVector(const AnyData &any,
-   OCCI_STD_NAMESPACE::vector<IntervalYM> &vect);
-   friend  void setVector(AnyData &any,
-   const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
-
-}; //class IntervalYM
-
-
-Number operator+(const Number &a, const Number &b) ;
-Number operator/(const Number &dividend, const Number &divisor) ;
-Number operator*(const Number &a, const Number &b) ;
-Number operator%(const Number &a, const Number &b) ;
-Number operator-(const Number &subtrahend, const Number &subtractor) ;
-bool operator==(const Number &a, const Number &b);
-bool operator!=(const Number &a, const Number &b);
-
-const IntervalYM operator+(const IntervalYM &a, const IntervalYM &b) ;
-const IntervalYM operator-(const IntervalYM &a, const IntervalYM &b) ;
-const IntervalYM operator*(const IntervalYM &a, const Number& factor);
-const IntervalYM operator/(const IntervalYM &a, const Number &factor);
-bool operator==(const IntervalYM &a, const IntervalYM &b) ;
-bool operator!=(const IntervalYM &a, const IntervalYM &b) ;
-
-const IntervalDS operator+(const IntervalDS &a, const IntervalDS &b) ;
-const IntervalDS operator-(const IntervalDS &a, const IntervalDS &b) ;
-const IntervalDS operator*(const IntervalDS &a, const Number& factor);
-const IntervalDS operator/(const IntervalDS &a, const Number &factor);
-bool operator==(const IntervalDS &a, const IntervalDS &b) ;
-bool operator!=(const IntervalDS &a, const IntervalDS &b) ;
-
-
-typedef struct BFloat
-{
- float value;
- bool  isNull;
-
- BFloat()
- {
-   isNull = false;
-   value = 0.;
- }
-} BFloat;
-
-typedef struct BDouble
-{
- double value;
- bool   isNull;
-
- BDouble()
- {
-   isNull = false;
-   value = 0.;
- }
-} BDouble;
-
-/*---------------------------------------------------------------------------
-                           EXPORT FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                          INTERNAL FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-} /* end of namespace occi */
-} /* end of namespace oracle */
-#endif                                              /* OCCIDATA_ORACLE */
-
-#endif                                              /* _olint */
diff --git a/src/terralib/drivers/Oracle/OCI/include/occiObjects.h b/src/terralib/drivers/Oracle/OCI/include/occiObjects.h
deleted file mode 100644
index f582b4f..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/occiObjects.h
+++ /dev/null
@@ -1,990 +0,0 @@
-/* Copyright (c) 2000, 2003, Oracle Corporation.  All rights reserved.  */
-
-/* 
-   NAME 
-     occiObjects.h - header file for OCCI object classes
-
-   DESCRIPTION 
-     Class definitions for Ref, RefAny, AnyData
-
-   RELATED DOCUMENTS 
-     <note any documents related to this facility>
- 
-   EXPORT FUNCTION(S) 
-     <external functions declared for use outside package - one-line 
-     descriptions>
-
-   INTERNAL FUNCTION(S)
-     <other external functions declared - one-line descriptions>
-
-   EXAMPLES
-
-   NOTES
-     <other useful comments, qualifications, etc.>
-
-   MODIFIED   (MM/DD/YY)
-   cparampa    10/28/03 - add PObject::getSQLTypeName
-   shiyer      01/01/03 - add PObject::refresh
-   cparampa    02/19/03 - bug2732941-setFromRef takes schema and typename
-   rvallam     02/12/03 - modify Bfloat/Bdouble interface to use the new
-                          Bfloat/Bdouble type
-   rvallam     11/19/02 - objects support for interval classes
-   cparampa    12/26/02 - Added getType for AnyData,
-                          removed getAs/setFrom methods for Blob/Clob
-   cparampa    10/12/02 - making AnyData a public type
-   rvallam     10/12/02 - added method getCor to get the COR handle and the 
-                          setPinnedObject method - arrayPin 
-   rvallam     10/10/02 - objects performance enhancement - modified
-                          getObject and getVector<T *> to take the
-                          schName and typeName of the object
-   rvallam     10/11/02 - added native float/double API - get(set) methods
-                          for AnyData class
-   shiyer      09/17/02 - Refs performance improvement
-   shiyer      08/14/02 - 10iR1, OCCI Globalization support
-   aahluwal    06/04/02 - bug 2360115
-   vvinay      12/24/01 - declarations for setNull() and isClear() in RefImpl
-   rvallam     11/17/01 - implemented transactional consistency of refs
-   gayyappa    10/01/01 - reserve memory for vectors in set/getVector 
-   rkasamse    07/31/01 - add PObject::new(size_t, void*)
-   gayyappa    07/17/01 - use C style comment in end of #ifdef WIN32COMMON.
-   gayyappa    06/20/01 - fix linux porting bug 1801312.
-   rvallam     06/14/01 - replace call to get(set)VectorOfRefs in 
-                          get(set)Vector for Ref<T> with code in 
-                          get(set)VectorOfRefs
-   rvallam     11/06/01 - renamed internal methods in get/setVector to 
-                          get(set)VectorOfPObjects/get(set)VectorOfOCIRefs
-                          as part of NT porting fix
-                          added destructor to AnyData
-   rratnam     06/07/01 - fixed bug 1816387.
-   rvallam     06/07/01 - fixed bug 1811749 :replaced .data() to .c_str()
-                          for string to char* conversion.
-   rvallam     04/30/01 - modified const methods in Ref (->, *, ptr)
-   rvallam     04/12/01 - passed dummy argument OCCIPOBJECT in getVector
-                          of AnyData for PObject *
-   rvallam     04/09/01 - fixed bug 1721365- call RefAny default constructor
-                          for a NULL Ref in operator RefAny
-   gayyappa    03/29/01 - remove methods for get/set int/float/double/unsigned 
-                          int , wasLastAttrNull, setAttrNull , geSQLTypeName
-                          from AnyData 
-                          as OTT does not use them.
-   gayyappa    03/15/01 - add OCCItype parameter to getVector for OCCIRef.
-   rratnam     03/15/01 - fixed set and getRef / get and setVector for NULL 
-                          Refs, fixed NT compilation errors
-   rratnam     03/13/01 - changed AnyData constructor to take a freeImg flag,
-   rkasamse    03/15/01 - pass OCCI_SQLT_REF to getVector
-   chliang     03/05/01 - disable olint.
-   rvallam     03/01/01 - changed getSessionPtr() to getConnection()
-                          added const methods for dereferencing in Ref
-   gayyappa    02/23/01 - correct template code for setVector
-   gayyappa    12/13/00 - remove allocator from list member for PObject.
-                          bug#1529973
-                          nullify object pointer in clear method of Ref
-   rvallam     11/08/00 - make RefAny constructor public
-   gayyappa    08/21/00 - replace objPtr by objptr.
-                          move templated get/set vector code of anydata 
-                          to header.
-   rkasamse    08/07/00 - make getVector friend of RefAny
-   rkasamse    07/11/00 - take void* instead of AnyDataCtx*
-   rkasamse    07/26/00 - make ResultSetImp friend of RefAny
-   rratnam     06/19/00 - added getConnection in PObject 
-   rvallam     06/13/00 - added Ref<T> and occiRefImpl code
-   rvallam     06/05/00 - to add the Ref<T> code
-   kmohan      06/02/00 -
-   kmohan      05/31/00 - Datamember Connection * changed to ConnectionImpl * 
-                          in class RefAny
-   kmohan      04/11/00 - Ref, RefAny, AnyData class definitions
-                          added
-   rkasamse    04/03/00 - header (interface) files for OCCI Objects clases
-   rkasamse    04/03/00 - Creation
-
-*/
-
-#ifndef _olint   /* disable olint check */
-
-#ifndef OCCIOBJECTS_ORACLE
-# define OCCIOBJECTS_ORACLE
-
-#ifndef OCCICOMMON_ORACLE
-#include <occiCommon.h>
-#endif
-
-namespace oracle {
-namespace occi {
-struct AnyDataCtx {
-   ConnectionImpl *occiSession;
-   OCIAnyData *anyData;
-   dvoid *objHeader;
-   ub4 errNum;
-};
-typedef struct AnyDataCtx AnyDataCtx;
-
-class PObject
-{
-  public:
-        enum LockOption {OCCI_LOCK_WAIT, OCCI_LOCK_NOWAIT};
-        enum UnpinOption {OCCI_PINCOUNT_DECR, OCCI_PINCOUNT_RESET};
-        static void destroy(void *);
-        static void refresh(void *); 
-        PObject();
-        PObject(const void *ctx);
-        PObject(const PObject& obj);
-        virtual ~PObject();
-        PObject& operator=(const PObject& obj);
-        void *operator new(size_t size);
-        void *operator new(size_t size, const Connection *x,
-                           const OCCI_STD_NAMESPACE::string& tablename, 
-                           const char *typeName);
-        void *operator new(size_t size, const Connection *sess,
-               const OCCI_STD_NAMESPACE::string& tablename,
-               const OCCI_STD_NAMESPACE::string& typName ,
-               const OCCI_STD_NAMESPACE::string& schTabName="",
-               const OCCI_STD_NAMESPACE::string& schTypName = "");
-        void *operator new(size_t size, const Connection *sess,
-               const UString& tablename, const UString &typName,
-               const UString& schTabName, const UString& schTypName);
-        void *operator new(size_t size, void *adctx);
-        void operator delete(void *obj, size_t size);
-        RefAny getRef() const;
-        bool isLocked() const;
-        void unpin(UnpinOption mode=OCCI_PINCOUNT_DECR);
-        void pin();
-        void lock(PObject::LockOption lock_option);
-        void unmark();
-        void flush();
-        void markDelete();
-        void markModified();
-        bool isNull() const;
-        void setNull();
-        const Connection *getConnection() const;
-        virtual OCCI_STD_NAMESPACE::string getSQLTypeName() const = 0;
-        virtual void getSQLTypeName(Environment *env, void **schName,
-                     unsigned int &schNameLen, void **typeName,
-                     unsigned int &typeNameLen) const = 0;
-        void getSQLTypeName(Environment *env, void *(*rSQL)(void *),
-                            void **schname, unsigned int &schnamelen,
-                            void **typname, unsigned int &typnamelen) const;
-        virtual void writeSQL(AnyData& stream) = 0;
-        virtual void readSQL(AnyData& stream) = 0;
-  private:
-       static void initialise( void * obj, const Connection * sess,
-              void *schTabName, unsigned int schTabLen,
-              void *tableName, unsigned int tabLen,
-              void *schTypName, unsigned int schTypLen,
-              void *typeName, unsigned int typLen);
-
-        ConnectionImpl  *occiSession_;
-        dvoid *objHeader_;
-        ub2 customNewed_;
-        enum {CUSTOM_NEWED = 0x5cde};
-        ub2 flags_;
-        enum {NULL_INFO = 0x0001, GARBAGE_COLLECTED = 0x0002,
-              REFRESH_OBJECT = 0x0004};
-        // for future use 
-        void *pobjectExt;
-        friend class RefImpl;
-};
-
-class AnyData
-{
-    public:
-    ~AnyData();
-    AnyData(void *any) ;
-    AnyData(const Connection *sessp);
-    AnyData(const Connection *sessp, OCIAnyData *any, bool freeImg = true) ; 
- 
-    AnyData(const AnyData &src);
-    AnyData& operator = (const AnyData &src);
-
-    OCIAnyData* getOCIAnyData() const;
-    const Connection* getConnection() const;
-
-
-    bool isNull() const ;
-    void setNull() ;
-    OCCI_STD_NAMESPACE::string getString() const ;
-    UString getUString() const ;
-    Blob getBlob() const ;
-    Clob getClob() const ;
-    Bfile getBfile() const ;
-    BFloat  getBFloat() const ;
-    BDouble getBDouble() const ;
-    Number getNumber() const ;
-    Bytes getBytes() const ;
-    Date getDate() const ;
-    Timestamp getTimestamp() const ;
-    IntervalYM getIntervalYM() const ;
-    IntervalDS getIntervalDS() const ;
-    PObject *getObject(void *(*rSQL)(void *)) const ;
-    RefAny getRef() const ;
-
-    void setString(const OCCI_STD_NAMESPACE::string &str)  ;
-    void setUString(const UString &str)  ;
-    void setBlob(const Blob &blob) ;
-    void setClob(const Clob &clob) ;
-    void setBfile(const Bfile &bfile) ;
-    void setBFloat(const BFloat &n) ;
-    void setBDouble(const BDouble &n) ;
-    void setNumber(const Number &n) ;
-    void setBytes(const Bytes &bytes) ;
-    void setDate(const Date &date) ;
-    void setTimestamp(const Timestamp &timestamp)  ;
-    void setIntervalYM(const IntervalYM &intervalym)  ;
-    void setIntervalDS(const IntervalDS &intervalds)  ;
-    void setObject(const PObject *objptr) ;
-    void setRef(const RefAny &ref) ;
-
-    void setFromString(const OCCI_STD_NAMESPACE::string &str)  ;
-    void setFromBfile(const Bfile &bfile) ;
-    void setFromBFloat(const BFloat &n) ;
-    void setFromBDouble(const BDouble &n) ;
-    void setFromNumber(const Number &n) ;
-    void setFromBytes(const Bytes &bytes) ;
-    void setFromDate(const Date &date) ;
-    void setFromTimestamp(const Timestamp &timestamp)  ;
-    void setFromIntervalYM(const IntervalYM &intervalym)  ;
-    void setFromIntervalDS(const IntervalDS &intervalds)  ;
-    void setFromObject(const PObject *objptr) ;
-    void setFromRef(const RefAny &ref,
-                    const OCCI_STD_NAMESPACE::string &typname,
-                    const OCCI_STD_NAMESPACE::string &schname) ;
-
-    OCCI_STD_NAMESPACE::string getAsString() const ;
-    Bfile getAsBfile() const ;
-    BFloat  getAsBFloat() const ;
-    BDouble getAsBDouble() const ;
-    Number getAsNumber() const ;
-    Bytes getAsBytes() const ;
-    Date getAsDate() const ;
-    Timestamp getAsTimestamp() const ;
-    IntervalYM getAsIntervalYM() const ;
-    IntervalDS getAsIntervalDS() const ;
-    PObject *getAsObject() const ;
-    RefAny getAsRef() const ;
-
-    TypeCode getType() const;
-    
-    private:
-
-                                 
-    // private data members
-    Ptr<AnyDataImpl> anyDataImplPtr;              
-   
-
-};
-
-template <class T>
-class Ref
-{
-  public:
-
-  Ref();
-  Ref(const T *obj) ;
-  Ref(const RefAny &refAny) ;
-  Ref(const Ref<T> &src) ;
-  Ref(const Connection *sessp, OCIRef *tref, bool copy=TRUE) 
-  ;
- ~Ref();
-  Ref<T>& operator=(const Ref<T> &src) 
-  ;
-  Ref<T>& operator=(const T *obj) ;
-  Ref<T>& operator=(const RefAny &src);
-  T * operator->() ;
-  T * ptr() ;
-  T & operator *() ;
-  const T * operator->() const;
-  const T * ptr()  const;
-  const T & operator *() const ;
-  void markDelete() ;
-  void unmarkDelete() ;
-  void setNull();
-  bool isNull() const;
-  void clear() ;
-  bool isClear() const;
-  void setPrefetch(const OCCI_STD_NAMESPACE::string &typeName, 
-                   unsigned int depth);
-  void setPrefetch(const OCCI_STD_NAMESPACE::string &schName,
-                   const OCCI_STD_NAMESPACE::string &typeName,
-                   unsigned int depth);
-  void setPrefetch(const UString &schName,
-                   const UString &typeName,
-                   unsigned int depth);
-  void setPrefetch(unsigned int depth) ;
-  void setLock(LockOptions );
-  operator RefAny() const;
-  OCIRef *getRef() const;
-  const Connection *getConnection() const;
-  bool operator == (const Ref<T> &ref) const;
-  bool operator != (const Ref<T> &ref) const;
-  bool operator == (const RefAny &refAnyR) const ;
-  bool operator != (const RefAny &refAnyR) const ;
-  OCIComplexObject *getCor() const;
-  void destroy();
-  void setPinnedObject(PObject *objPtr); 
- private:
-
-  RefImpl  *rimplPtr;
-};
-
-
-class RefImpl
-{
-  public:
-
-  RefImpl();
-  RefImpl(PObject *obj) ;
-  RefImpl(const RefAny &refAny) ;
-  RefImpl(const RefImpl &src) ;
-  RefImpl(const Connection *sessp, OCIRef *tref, 
-  bool copy=TRUE) ;
-  ~RefImpl();
-  bool isNull() const ;
-  void setNull() ;
-  void markDelete() ;
-  void unmarkDelete() ;
-  void clear() ;
-  bool isClear() const ;
-  void setPrefetch(const OCCI_STD_NAMESPACE::string &typeName, 
-                   unsigned int depth) ;
-  void setPrefetch(const OCCI_STD_NAMESPACE::string &schName,
-                   const OCCI_STD_NAMESPACE::string &typeName,
-                   unsigned int depth);
-  void setPrefetch(const UString &schName,
-                   const UString &typeName,
-                   unsigned int depth);
-  void setPrefetch(unsigned int depth) ;
-  void setLock(LockOptions lckOption) ;
-  PObject *pin() ;
-  void unpin(PObject *obj) ;
-  void setRefFromObjPtr(const PObject *obj) ;
-  OCIRef* getRef() const;
-  void setRefImpl(RefImpl *rptr);
-  const Connection * getConnection() const;
-  bool operator == (const RefImpl &refI) const ;
-  bool operator == (const RefAny &refAnyR) const ;
-  void assignObj(PObject *newObjPtr) ;
-  void assignRefAny(const RefAny &src) ;
-  // added following methods
-  bool isEqual(PObject *obj);
-  void operator = ( const RefImpl &src);
-  void destroy();
-  OCIComplexObject *getCor() const;
-  void setPinnedObject( PObject *objPtr);
- private:
-
-  OCIRef *ref;
-  const ConnectionImpl *sessp;
-  OCIComplexObject *corhp;
-  OCCI_STD_NAMESPACE::list<void *> descriptorList;
-  LockOptions lockOption;
-  // added data member for object header
-  dvoid *objHeader;
-  //common implementation function for setPrefetch
-  void do_setPrefetch(void *schName, unsigned int schNameLen,
-                      void *typeName, unsigned int typeNameLen,
-                      unsigned int depth);
-};
-
-
-class RefAny
-{
-  public:
-
-  RefAny();
-  RefAny (const Connection *sessptr, const OCIRef *ref);
-  RefAny (const Connection *sessptr, const OCIRef *ref, bool isowner);
-  ~RefAny() ;
-  RefAny(const RefAny& src) ;
-  RefAny& operator=(const RefAny& src) ;
-  void markDelete() ;
-  void unmarkDelete() ;
-  void clear() ;
-  bool isNull() const;
-  OCIRef * getRef() const;
-  const Connection * getConnection() const;
-  bool operator == (const RefAny &refAnyR) const;
-  bool operator != (const RefAny &refAnyR) const;
-  bool isOwner() const;
-
-  private:
-
-  OCIRef *ref;
-  const ConnectionImpl *sessp;
-  // for future use
-  void *refanyExt;
-  bool owner;
-
-  friend RefAny MetaData::getRef(MetaData::AttrId) const;
-  friend RefAny PObject::getRef() const;
-  friend class AnyDataImpl;
-  friend class ResultSetImpl;
-  friend class StatementImpl;
-  friend void getVector(const ResultSet  *rs,
-                        unsigned int colIndex,
-                        OCCI_STD_NAMESPACE::vector<RefAny> &vect) ;
-  friend void getVector(const Statement  *stmt,
-                        unsigned int colIndex,
-                        OCCI_STD_NAMESPACE::vector<RefAny> &vect) ;
-};
-
-template <class T>
-Ref<T>::Ref()
-{
-   rimplPtr = new RefImpl();
-}
-
-template <class T>
-Ref<T>::Ref(const T *obj)
-{
-   rimplPtr = new RefImpl((PObject *)obj);
-}
-
-template <class T>
-Ref<T>::Ref(const RefAny &refAny)
-
-{
-  rimplPtr = new RefImpl(refAny);
-}
-
-template <class T>
-Ref<T>::Ref(const Ref<T>& src)
-
-{
-    rimplPtr = new RefImpl(*(src.rimplPtr));
-}
-
-template <class T>
-Ref<T>::Ref(const Connection *sessp, OCIRef *tref, bool copy)
-
-{
-   rimplPtr = new RefImpl(sessp, tref, copy);
-}
-
-template <class T>
-Ref<T>::~Ref()
-{
-  delete rimplPtr;
-}
-
-
-template <class T>
-Ref<T>& Ref<T>::operator=(const Ref<T> &src)
-{
-   if (&src == this)
-     return *this;
-   *rimplPtr = *(src.rimplPtr);
-   return *this;
-}
-
-template <class T>
-Ref<T>& Ref<T>::operator=(const T *obj)
-{
-  if (rimplPtr->isEqual((PObject *)obj))
-    return *this;
-  rimplPtr->assignObj((PObject *)obj);
-  return *this;
-}
-
-template <class T>
-Ref<T>& Ref<T>::operator=(const RefAny &src)
-{
-  rimplPtr->assignRefAny(src);
-  return *this;
-}
-
-template <class T>
-T* Ref<T>::operator->()
-{
-  return ((T *)rimplPtr->pin());
-}
-
-template <class T>
-T* Ref<T>::ptr()
-{
-  return ((T *)rimplPtr->pin());
-}
-
-template <class T>
-T& Ref<T>::operator * ()
-{
-  return ((T &)(*(rimplPtr->pin())));
-}
-
-template <class T>
-const T* Ref<T>::operator->() const
-{
-  return ((const T *)rimplPtr->pin());
-}
-
-template <class T>
-const T* Ref<T>::ptr() const
-{
-  return ((const T *)rimplPtr->pin());
-}
-
-template <class T>
-const T& Ref<T>::operator * () const
-{
-  return ((const T &)(*(rimplPtr->pin())));
-}
-
-template <class T>
-void Ref<T>::markDelete ()
-{
-   rimplPtr->markDelete();
-}
-
-template <class T>
-void Ref<T>::unmarkDelete ()
-{
-   rimplPtr->unmarkDelete();
-}
-
-template <class T>
-void Ref<T>::setNull()
-{
-   rimplPtr->setNull();
-}
-
-template <class T>
-bool Ref<T>::isNull() const
-{
-  return rimplPtr->isNull();
-}
-
-template <class T>
-void Ref<T>::clear ()
-{
-   rimplPtr->clear();
-}
-
-template <class T>
-bool Ref<T>::isClear() const
-{
-   return rimplPtr->isClear();
-}
-
-template <class T>
-void Ref<T>::setPrefetch (const OCCI_STD_NAMESPACE::string &typeName,
-unsigned int depth)
-
-{
-  rimplPtr->setPrefetch(typeName,depth);
-}
-
-template <class T>
-void Ref<T>::setPrefetch (const OCCI_STD_NAMESPACE::string &schemaName,
-const OCCI_STD_NAMESPACE::string &typeName,
-unsigned int depth)
-
-{
-  rimplPtr->setPrefetch(schemaName,typeName,depth);
-}
-
-template <class T>
-void Ref<T>::setPrefetch (const UString &schemaName,
-const UString &typeName,
-unsigned int depth)
-
-{
-  rimplPtr->setPrefetch(schemaName,typeName,depth);
-}
-
-template <class T>
-void Ref<T>::setPrefetch (unsigned int depth)
-
-{
-  rimplPtr->setPrefetch(depth);
-}
-
-template <class T>
-void Ref<T>::setLock (LockOptions lckOption)
-{
-  rimplPtr->setLock(lckOption);
-}
-
-template <class T>
-OCIRef* Ref<T>::getRef() const
-{
-  return (rimplPtr->getRef());
-}
-
-template<class T>
-const Connection* Ref<T>::getConnection () const
-{
-  return (rimplPtr->getConnection());
-}
-
-template <class T>
-Ref<T>::operator RefAny () const
-{
-  if (isNull())
-    return  RefAny();
-  return (RefAny(rimplPtr->getConnection(), rimplPtr->getRef()));
-}
-
-template <class T>
-bool Ref<T>::operator ==(const Ref<T> &ref) const
-
-{
-  return ( (*rimplPtr) == (*(ref.rimplPtr)) );
-}
-
-template <class T>
-bool Ref<T>::operator !=(const Ref<T> &ref) const
-
-{
-  return ( !((*rimplPtr) == (*(ref.rimplPtr))) );
-}
-
-template <class T>
-bool Ref<T>::operator == (const RefAny & refAnyR) const
-
-{
-  return ( (*rimplPtr) == refAnyR );
-}
-
-template <class T>
-bool Ref<T>::operator != (const RefAny & refAnyR) const
-
-{
-  return ( !((*rimplPtr) == refAnyR ));
-}
-
-template <class T>
-void Ref<T>::destroy()
-{
-   rimplPtr->destroy();
-}
-
-template <class T>
-OCIComplexObject * Ref<T>::getCor() const
-{
-  return (rimplPtr->getCor());
-}
-
-template < class T>
-void Ref<T>::setPinnedObject( PObject *objPtr)
-{
-   rimplPtr->setPinnedObject(objPtr);
-}
-
-/*---------------------------------------------------------------------------
-                PROTOTYPES USED BY FUNCTION TEMPLATES
- ---------------------------------------------------------------------------*/
-  void getVectorOfOCIRefs( const AnyData &any, 
-  OCCI_STD_NAMESPACE::vector<void *> &vect);
-  void getVectorOfPObjects( const AnyData &any,
-  OCCI_STD_NAMESPACE::vector< PObject* > &vect,
-  void *(*rSQL)(void *))  ;
-  void setVectorOfOCIRefs( AnyData &any, 
-  const OCCI_STD_NAMESPACE::vector<void *> &vect,
-  const OCCI_STD_NAMESPACE::vector< OCIInd> &vec_ind) ;
-  void setVectorOfPObjects( AnyData &any, 
-  const OCCI_STD_NAMESPACE::vector< PObject* > &vect) ;
-
-/*---------------------------------------------------------------------------
-                           EXPORT FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-/*------------------- getVector for POBject----------------------------*/
-/*
-   NAME
-      getVector - overloaded function. Retrieves the attribute in the
-   current position as a vector of PObject
-
-   PARAMETERS
-      any - AnyData
-      vect- reference to vector of PObject (OUT parameter).
-
-   DESCRIPTION
-   Retrieves the attribute in the current position as a vector
-   of PObject
-   The attribute at the current position should be a collection
-   type (varray or nested table). The SQL type of the elements in
-   the collection should be compatible with PObject
-
-   RETURNS
-     nothing
-
-   NOTES
-     compatible SQL types : user defined types (SQLT_NTY) etc.
-*/
-
-#ifdef WIN32COMMON
-// and other platforms that do not support
-// partial function template specialization
- template <class T>
- void getVector(const AnyData &any, OCCI_STD_NAMESPACE::vector<T> &vect,
- void *(*rSQL)(void *))
- {
-   OCCI_STD_NAMESPACE::vector< PObject *> vec_pobj;
-   getVectorOfPObjects( any, vec_pobj, rSQL);
-
-   vect.clear();
-   unsigned int size= vec_pobj.size();
-   vect.reserve( size );
-   for( unsigned int i=0; i< size; i++)
-      vect.push_back( (T)vec_pobj[i] );
- }
-#else
- template <class T>
- void getVector(const AnyData &any, OCCI_STD_NAMESPACE::vector<T*> &vect,
- void *(*rSQL)(void *)) 
- {
-   OCCI_STD_NAMESPACE::vector< PObject *> vec_pobj;
-   getVectorOfPObjects( any, vec_pobj, rSQL);
-
-   vect.clear();
-   unsigned int size= vec_pobj.size();
-   vect.reserve( size );
-   for( unsigned int i=0; i< size; i++)
-      vect.push_back( (T*)vec_pobj[i] );
- }
-#endif /* end of #ifdef WIN32COMMON */
-
- /*------------------- getVector for Ref<T>----------------------------*/
-/*
-   NAME
-      getVector - overloaded function. Retrieves the attribute in the
-   current position as a vector of PObject
-
-   PARAMETERS
-      any - AnyData
-      vect- reference to vector of PObject (OUT parameter).
-
-   DESCRIPTION
-   Retrieves the attribute in the current position as a vector
-   of PObject
-   The attribute at the current position should be a collection
-   type (varray or nested table). The SQL type of the elements in
-   the collection should be compatible with PObject
-
-   RETURNS
-     nothing
-
-   NOTES
-     compatible SQL types : user defined types (SQLT_NTY) etc.
-*/
-#ifndef WIN32COMMON
- template <class T>
- void getVector(const AnyData &any,OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) 
- {
-   OCCI_STD_NAMESPACE::vector< void *> vec_ref;
-   getVectorOfOCIRefs( any, vec_ref);
-
-   vect.clear();
-   unsigned int size = vec_ref.size();
-   vect.reserve( size );
-   const Connection *sess = any.getConnection();
-
-   for (unsigned int i=0; i< size; i++)
-   {
-     if (vec_ref[i] == (OCIRef *)0)
-       vect.push_back(Ref<T>());     // pushing a default-constructed Ref
-     else
-       vect.push_back(Ref<T>(sess, (OCIRef *)vec_ref[i], FALSE));
-   }
- }
-#endif /* end of #ifndef WIN32COMMON  */
- 
-/*-----------------------setVector for PObject--------------------------*/
-/*
-   NAME
-     setVector - overloaded function. sets the attribute in the current
-   position of anydata with the vector elements.
-
-   PARAMETERS
-      none.
-
-   DESCRIPTION
-      sets the attribute in the current position in anydata with the
-   vector elements.
-  The attribute in the current position of anydata should be a
-  collection type. If the collection type is a varray, the input vector
-  size should be equal to the size of the varray. Also the SQL type of
-  the collection's elements should be compatible with PObject.
-
-   RETURNS
-     nothing.
-
-   NOTES
-     compatible SQL types : SQLT_NTY  (user defined types).
-*/
-#ifdef WIN32COMMON
-// and other platforms that do not support
-// partial function template specialization
-
- template <class T>
- void setVector(AnyData &any, const OCCI_STD_NAMESPACE::vector<T> &vect) 
- {
-   OCCI_STD_NAMESPACE::vector< PObject *> vec_pobj;
-   unsigned int size= vect.size();
-   vec_pobj.reserve( size );
-   for( unsigned int i=0; i< size; i++)
-      vec_pobj.push_back( vect[i] );
-   setVectorOfPObjects( any, vec_pobj);
-
- }
- 
-#else
-
- template <class T>
- void setVector(AnyData &any, const OCCI_STD_NAMESPACE::vector<T*> &vect)
- {
-   OCCI_STD_NAMESPACE::vector< PObject *> vec_pobj;
-   unsigned int size= vect.size();
-   vec_pobj.reserve( size );
-   for( unsigned int i=0; i< size; i++)
-      vec_pobj.push_back( vect[i] );
-   setVectorOfPObjects( any, vec_pobj);
-
- }
-#endif /* end of #ifdef WIN32COMMON */
-
-/*-----------------------setVector for Ref<T>--------------------------*/
-/*
-   NAME
-     setVector - overloaded function. sets the attribute in the current
-   position of anydata with the vector elements.
-
-   PARAMETERS
-      none.
-
-   DESCRIPTION
-      sets the attribute in the current position in anydata with the
-   vector elements.
-  The attribute in the current position of anydata should be a
-  collection type. If the collection type is a varray, the input vector
-  size should be equal to the size of the varray. Also the SQL type of
-  the collection's elements should be compatible with PObject.
-
-   RETURNS
-     nothing.
-
-   NOTES
-     compatible SQL types : SQLT_NTY  (user defined types).
-*/
-#ifndef WIN32COMMON
- template <class T>
- void setVector(AnyData &any, const OCCI_STD_NAMESPACE::vector< Ref<T> > &vect)
- {
-   OCCI_STD_NAMESPACE::vector< void *> vec_ref;
-   OCCI_STD_NAMESPACE::vector<OCIInd> vec_ind;
-
-   unsigned int size= vect.size();
-   vec_ref.reserve( size );
-   vec_ind.reserve( size );
-   for( unsigned int i=0; i< size; i++)
-   {
-      vec_ref.push_back( vect[i].getRef() );
-      vec_ind.push_back(vect[i].isNull() ? OCI_IND_NULL : OCI_IND_NOTNULL);
-   }
-   setVectorOfOCIRefs( any, vec_ref, vec_ind);
-
- }
-#endif  /* end of #ifndef WIN32COMMON */
- 
-// Platform independent get/setVectorOfRefs method added 
-// get(set)Vector of Ref<T> and get(set)VectorOfRefs are identical
-// in functionality.
-
- /*------------------- getVectorOfRefs for Ref<T>----------------------------*/
-/*
-   NAME
-      getVectorOfRefs - overloaded function. Retrieves the attribute in the
-   current position as a vector of PObject
-
-   PARAMETERS
-      any - AnyData
-      vect- reference to vector of PObject (OUT parameter).
-
-   DESCRIPTION
-   Retrieves the attribute in the current position as a vector
-   of PObject
-   The attribute at the current position should be a collection
-   type (varray or nested table). The SQL type of the elements in
-   the collection should be compatible with PObject
-
-   RETURNS
-     nothing
-
-   NOTES
-     compatible SQL types : user defined types (SQLT_NTY) etc.
-*/
-
- template <class T>
- void getVectorOfRefs(const AnyData &any,
-                      OCCI_STD_NAMESPACE::vector< Ref<T> > &vect)
- {
-   OCCI_STD_NAMESPACE::vector< void *> vec_ref;
-   getVectorOfOCIRefs( any, vec_ref);
-
-   vect.clear();
-   unsigned int size = vec_ref.size();
-   vect.reserve( size );
-   const Connection *sess = any.getConnection();
-
-   for (unsigned int i=0; i< size; i++)
-   {
-     if (vec_ref[i] == (OCIRef *)0)
-       vect.push_back(Ref<T>());     // pushing a default-constructed Ref
-     else
-       vect.push_back(Ref<T>(sess, (OCIRef *)vec_ref[i], FALSE));
-   }
- }
-
-/*-----------------------setVectorOfRefs for Ref<T>--------------------------*/
-/*
-   NAME
-     setVectorOfRefs - overloaded function. sets the attribute in the current
-   position of anydata with the vector elements.
-
-   PARAMETERS
-      none.
-
-   DESCRIPTION
-      sets the attribute in the current position in anydata with the
-   vector elements.
-  The attribute in the current position of anydata should be a
-  collection type. If the collection type is a varray, the input vector
-  size should be equal to the size of the varray. Also the SQL type of
-  the collection's elements should be compatible with PObject.
-
-   RETURNS
-     nothing.
-
-   NOTES
-     compatible SQL types : SQLT_NTY  (user defined types).
-*/
-
- template <class T>
- void setVectorOfRefs(AnyData &any, 
-                      const OCCI_STD_NAMESPACE::vector< Ref<T> > &vect)
-
- {
-   OCCI_STD_NAMESPACE::vector< void *> vec_ref;
-   OCCI_STD_NAMESPACE::vector<OCIInd> vec_ind;
-
-   unsigned int size= vect.size();
-   vec_ref.reserve( size );
-   vec_ind.reserve( size );
-   for( unsigned int i=0; i< size; i++)
-   {
-      vec_ref.push_back( vect[i].getRef() );
-      vec_ind.push_back(vect[i].isNull() ? OCI_IND_NULL : OCI_IND_NOTNULL);
-   }
-   setVectorOfOCIRefs( any, vec_ref, vec_ind);
-
- }
-
-
-/*---------------------------------------------------------------------------
-                          INTERNAL FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-} /* end of namespace occi */
-} /* end of namespace oracle */
-#endif                                              /* OCCIOBJECTS_ORACLE */
-
-#endif                                              /* _olint */
diff --git a/src/terralib/drivers/Oracle/OCI/include/oci.h b/src/terralib/drivers/Oracle/OCI/include/oci.h
deleted file mode 100644
index 466b7a2..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/oci.h
+++ /dev/null
@@ -1,2366 +0,0 @@
-/*
- * $Header$
- */
-
-/* Copyright (c) 1995, 2003, Oracle Corporation.  All rights reserved.  */
- 
-/* 
-   NAME 
-     oci.h - V8 Oracle Call Interface public definitions
-
-   DESCRIPTION 
-     This file defines all the constants and structures required by a V8
-     OCI programmer.
-
-   RELATED DOCUMENTS 
-     V8 OCI Functional Specification 
-     Oracle Call Interface Programmer's Guide Vol 1 and 2
- 
-   INSPECTION STATUS 
-     Inspection date: 
-     Inspection status: 
-     Estimated increasing cost defects per page: 
-     Rule sets: 
- 
-   ACCEPTANCE REVIEW STATUS 
-     Review date: 
-     Review status: 
-     Reviewers: 
- 
-   PUBLIC FUNCTION(S) 
-     None
-
-   PRIVATE FUNCTION(S) 
-     None
- 
-   EXAMPLES 
- 
-   NOTES 
-
-
-   MODIFIED   (MM/DD/YY)
-   chliang     11/26/03 - add OCI_ATTR_RESERVED_19 
-   preilly     10/23/03 - Make OCI_ATTR_DIRPATH_METADATA_BUF private 
-   chliang     08/07/03 - add OCI_ATTR_SKIP_BUFFER
-   srseshad    03/12/03 - convert public oci api to ansi
-   weiwang     05/14/03 - remove iot creation for rule sets
-   rkoti       04/15/03 - [2746515] add fntcodes for Unlimited size LOB 6003
-   tcruanes    05/13/03 - add slave SQL OCI execution mode
-   rkoti       02/21/03 - [2761455] add OCI_FNCODE_AQENQARRAY,
-                          OCI_FNCODE_AQDEQARRAY and update OCI_FNCODE_MAXFCN
-   tkeefe      01/29/03 - bug-2773794: Add new interface for setting Kerb attrs
-   aahluwal    02/06/03 - add OCI_ATTR_TRANSFORMATION_NO
-   weiwang     12/05/02 - add OCI_ATTR_USER_PROPERTY
-   ataracha    01/03/03 - include ocixmldb.h
-   preilly     12/05/02 - Add wait attribute for locking when using dir path
-   tkeefe      01/03/03 - bug-2623771: Added OCI_ATTR_KERBEROS_KEY
-   lchidamb    12/13/02 - end-to-end tracing attributes
-   msakayed    10/28/02 - Bug #2643907: add OCI_ATTR_DIRPATH_SKIPINDEX_METHOD
-   rphillip    11/13/02 - Add OCIP_ATTR_DIRPATH_INDEX
-   sagrawal    10/13/02 - liniting
-   sagrawal    10/03/02 - PL/SQL Compiler warnings
-   jstenois    11/07/02 - remove ocixad.h
-   chliang     10/21/02 - add OCI_ATTR_RESERVED_16,17
-   hsbedi      10/30/02 - grabtrans 'jstenois_fix_xt_convert'
-   aahluwal    10/12/02 - add OCI_ATTR_AQ_NUM_E_ERRORS/OCI_ATTR_AQ_ERROR_INDEX
-   bdagevil    10/21/02 - add SQL analyze internal exec mode
-   csteinba    10/11/02 - add OCI_ATTR_RESERVED_16
-   chliang     10/12/02 - add bind row callback attributes
-   preilly     10/25/02 - Add new reserved parameters
-   tkeefe      10/31/02 - bug-2623771: Added OCI_ATTR_AUDIT_SESSION_ID
-   csteinba    10/04/02 - Add OCI_ATTR_RESERVED_15
-   mhho        10/11/02 - add new credential constant
-   thoang      09/25/02 - Add OCI_XMLTYPE_CREATE_CLOB
-   skaluska    10/07/02 - describe rules objects
-   csteinba    09/16/02 - Remove OCI_CACHE
-   gtarora     10/03/02 - OCI_ATTR_COL_SUBS => OCI_ATTR_OBJ_SUBS
-   msakayed    09/09/02 - Bug #2482469: add OCI_ATTR_DIRPATH_RESERVED_[3-6]
-   aahluwal    08/30/02 - adding dequeue across txn group
-   srseshad    04/24/02 - Add attribute OCI_ATTR_SPOOL_STMTCACHESIZE.
-   ebatbout    07/22/02 - Remove OCI_ATTR_RESERVED_11.
-   abande      01/17/02 - Bug 1788921; Add external attribute.
-   aahluwal    06/04/02 - bug 2360115
-   pbagal      05/24/02 - Incorporate review comments
-   pbagal      05/22/02 - Introduce instance type attribute.
-   whe         07/01/02 - add OCI_BIND_DEFINE_SOFT flags
-   gtarora     07/01/02 - Add OCI_ATTR_COL_SUBS
-   tkeefe      05/30/02 - Add support for new proxy authentication credentials
-   dgprice     12/18/01 - bug 2102779 add reserved force describe
-   schandir    11/19/01 - add/modify modes.
-   schandir    11/15/01 - add OCI_SPC_STMTCACHE.
-   schandir    12/06/01 - change mode value of OCI_SPOOL.
-   msakayed    11/02/01 - Bug #2094292: add OCI_ATTR_DIRPATH_INPUT
-   dsaha       11/09/01 - add OCI_DTYPE_RESERVED1
-   skabraha    11/05/01 - new method flag
-   skabraha    10/25/01 - another flag for XML
-   skabraha    10/11/01 - describe flags for subtypes
-   nbhatt      09/18/01 - new reserved AQ flags
-   celsbern    10/19/01 - merge LOG to MAIN
-   ksurlake    10/12/01 - add OCI_ATTR_RESERVED_13
-   ksurlake    08/13/01 - add OCI_ATTR_RESERVED_12
-   schandir    09/24/01 - Adding stmt caching
-   abande      09/04/01 - Adding session pooling
-   sagrawal    10/23/01 - add new bit for OCIPHandleFree
-   preilly     10/25/01 - Add support for specifying metadata on DirPathCtx
-   skabraha    09/24/01 - describe flags for XML type
-   schandir    09/24/01 - Adding stmt caching
-   abande      09/04/01 - Adding session pooling
-   stakeda     09/17/01 - add OCI_NLS_CHARSET_ID
-   whe         09/19/01 - add OCIXMLType create options
-   rpingte     09/11/01 - add OCI_MUTEX_ENV_ONLY and OCI_NO_MUTEX_STMT
-   cmlim       08/28/01 - mod datecache attrs to use same naming as dpapi attrs
-   wzhang      08/24/01 - Add new keywords for OCINlsNameMap.
-   rphillip    05/02/01 - Add date cache attributes
-   rphillip    08/22/01 - Add new stream version
-   ebatbout    04/13/01 - add definition, OCI_ATTR_RESERVED_11
-   chliang     04/12/01 - add shortnames for newer oci funcation
-   wzhang      04/11/01 - Add new OCI NLS constants.
-   cmlim       04/13/01 - remove attrs not used by dpapi (151 & 152 avail)
-   rkambo      03/23/01 - bugfix 1421793
-   cmlim       04/02/01 - remove OCI_ATTR_DIRPATH_{NESTED_TBL, SUBST_OBJ_TBL}
-                        - note: attribute #s 186 & 205 available
-   whe         03/28/01 - add OCI_AFC_PAD_ON/OFF mode
-   preilly     03/05/01 - Add stream versioning support to DirPath context
-   schandir    12/18/00 - remove attr CONN_INCR_DELAY.
-   schandir    12/12/00 - change mode from OCI_POOL to OCI_CPOOL.
-   cbarclay    01/12/01 - add atribute for OCIP_ATTR_TMZ
-   whe         01/07/01 - add attributes related to UTF16 env mode
-   slari       12/29/00 - add blank line
-   slari       12/28/00 - OCI_ATTR_RESERVED_10
-   whe         12/19/00 - add OCI_ENVCR_RESERVED3
-   rpang       11/29/00 - Added OCI_ATTR_ORA_DEBUG_JDWP attribute
-   cmlim       11/28/00 - support substitutable object tables in dpapi
-   akatti      10/09/00 - [198379]:add OCIRowidToChar
-   sgollapu    10/11/00 - Add OCI_PREP_RESERVED_1
-   sgollapu    08/27/00 - add attribute to get erroneous column
-   sgollapu    07/29/00 - Add snapshot attributes
-   kmohan      09/18/00 - add OCI_FNCODE_LOGON2
-   abrumm      10/08/00 - include ocixad.h
-   mbastawa    10/04/00 - add OCI_ATTR_ROWS_FETCHED
-   nbhatt      08/24/00 - add transformation attribute
-   dmwong      08/22/00 - OCI_ATTR_CID_VALUE -> OCI_ATTR_CLIENT_IDENTIFIER.
-   cmlim       08/30/00 - add OCI_ATTR_DIRPATH_SID
-   dsaha       08/18/00 - add OCI_ATTR_RESERVED_5
-   amangal     08/17/00 - Merge into 8.2 : 1194361
-   slari       08/03/00 - add OCI_ATTR_HANDLE_POSITION
-   dsaha       07/20/00 - 2rt exec
-   sgollapu    07/04/00 - Add virtual session flag
-   cmlim       07/07/00 - add OCI_ATTR_DIRPATH_OID, OCI_ATTR_DIRPATH_NESTED_TBL
-   etucker     07/28/00 - add OCIIntervalFromTZ
-   rwessman    06/26/00 - N-tier: added new credential attributes
-   whe         07/27/00 - add OCI_UTF16 mode
-   vjayaram    07/18/00 - add connection pooling changes
-   etucker     07/12/00 - add dls apis
-   cmlim       07/07/00 - add OCI_ATTR_DIRPATH_OID, OCI_ATTR_DIRPATH_NESTED_TBL
-   sgollapu    07/04/00 - Add virtual session flag
-   najain      05/01/00 - AQ Signature support
-   sgollapu    06/14/00 - Add reserved OCI mode
-   rkambo      06/08/00 - notification presentation support
-   sagrawal    06/04/00 - ref cursor to c
-   ksurlake    06/07/00 - define OCI_POOL
-   mbastawa    06/05/00 - added scrollable cursor attributes
-   weiwang     03/31/00 - add LDAP support
-   whe         05/30/00 - add OCI_ATTR_MAXCHAR_SIZE
-   whe         05/23/00 - validate OCI_NO_CACHE mode
-   dsaha       02/02/00 - Add no-cache attr in statement handle
-   whe         05/23/00 - add OCIP_ICACHE
-   allee       05/17/00 - describe support for JAVA implmented TYPE
-   preilly     05/30/00 - Continue adding support for objects in direct path lo
-   cmlim       05/16/00 - 8.2 dpapi support of ADTs
-   rxgovind    05/04/00 - OCIAnyDataSet changes
-   rkasamse    05/25/00 - add OCIAnyDataCtx
-   rmurthy     04/26/00 - describe support for inheritance
-   ksurlake    04/18/00 - Add credential type
-   whe         05/24/00 - add OCI_ATTR_CHAR_ attrs
-   rkambo      04/19/00 - subscription enhancement
-   rmurthy     04/26/00 - describe support for inheritance
-   delson      03/28/00 - add OCI_ATTR_RESERVED_2
-   abrumm      03/31/00 - external table support
-   rkasamse    03/13/00 - add declarations for OCIAnyData
-   najain      02/24/00 - support for dequeue as select
-   dsaha       03/10/00 - Add OCI_ALWAYS_BLOCKING
-   esoyleme    04/25/00 - separated transactions
-   sgollapu    12/23/99 - OCIServerAttach extensions
-   slari       08/23/99 - add OCI_DTYPE_UCB
-   slari       08/20/99 - add OCI_UCBTYPE_REPLACE
-   hsbedi      08/31/99 - Memory Stats .
-   sgollapu    08/02/99 - oci sql routing
-   slari       08/06/99 - rename values for OCI_SERVER_STATUS
-   slari       08/02/99 - add OCI_ATTR_SERVER_STATUS
-   tnbui       07/28/99 - Remove OCI_DTYPE_TIMESTAMP_ITZ                       
-   amangal     07/19/99 - Merge into 8.1.6 : bug 785797
-   tnbui       07/07/99 - Change ADJUSTMENT modes                              
-   dsaha       07/07/99 - OCI_SAHRED_EXT
-   dmwong      06/08/99 - add OCI_ATTR_APPCTX_*
-   vyanaman    06/23/99 -
-   vyanaman    06/21/99 - Add new OCI Datetime and Interval descriptors
-   esoyleme    06/29/99 - expose MTS performance enhancements                  
-   rshaikh     04/23/99 - add OCI_SQL_VERSION_*
-   tnbui       05/24/99 - Remove OCIAdjStr                                     
-   dsaha       05/21/99 - Add OCI_ADJUST_UNK
-   mluong      05/17/99 - fix merge
-   tnbui       04/05/99 - ADJUSTMENT values
-   abrumm      04/16/99 - dpapi: more attributes
-   dsaha       02/24/99 - Add OCI_SHOW_DML_WARNINGS
-   jiyang      12/07/98 - Add OCI_NLS_DUAL_CURRENCY
-   slari       12/07/98 - change OCI_NOMUTEX to OCI_NO_MUTEX
-   aroy        11/30/98 - change OCI_NOCALLBACK to OCI_NO_UCB
-   aroy        11/13/98 - add env modes to process modes
-   slari       09/08/98 - add OCI_FNCODE_SVC2HST and _SVCRH
-   aroy        09/04/98 - Add OCI_ATTR_MIGSESSION
-   skray       08/14/98 - server groups for session switching
-   mluong      08/11/98 - add back OCI_HTYPE_LAST.
-   aroy        05/25/98 - add process handle type                              
-   aroy        04/06/98 - add shared mode                                      
-   slari       07/13/98 -  merge forward to 8.1.4
-   slari       07/09/98 -  add OCI_BIND_RESERVED_2
-   slari       07/08/98 -  add OCI_EXACT_FETCH_RESERVED_1
-   dsaha       07/07/98 -  Add OCI_PARSE_ONLY
-   dsaha       06/29/98 -  Add OCI_PARSE_ONLY
-   slari       07/01/98 -  add OCI_BIND_RESERVED_2
-   sgollapu    06/25/98 -  Fix bug 683565
-   slari       06/17/98 -  remove OC_FETCH_RESERVED_2
-   slari       06/11/98 -  add OCI_FETCH_RESERVED_1 and 2
-   jhasenbe    05/27/98 -  Remove definitions for U-Calls (Unicode)
-   jiyang      05/18/98 - remove OCI_ATTR_CARTLANG
-   nbhatt      05/20/98 -  OCI_DEQ_REMOVE_NODATA
-   nbhatt      05/19/98 - correct AQ opcode
-   skmishra    05/06/98 - Add precision attribute to Attributes list
-   aroy        04/20/98 - merge forward 8.0.5 -> 8.1.3
-   schandra    05/01/98 - OCI sender id
-   sgollapu    02/19/98 - enhanced array DML
-   nbhatt      05/15/98 -  AQ listen call
-   sgollapu    04/27/98 - more attributes
-   skaluska    04/06/98 - Add OCI_PTYPE_SCHEMA, OCI_PTYPE_DATABASE
-   slari       04/28/98 - add OCI_ATTR_PDPRC
-   lchidamb    05/05/98 - change OCI_NAMESPACE_AQ to 1
-   nbhatt      04/27/98 - AQ Notification Descriptor
-   abrumm      06/24/98 - more direct path attributes
-   abrumm      05/27/98 - OCI direct path interface support
-   abrumm      05/08/98 - OCI direct path interface support
-   lchidamb    03/02/98 - client notification additions
-   kkarun      04/17/98 - Add more Interval functions
-   vyanaman    04/16/98 - Add get/set TZ
-   kkarun      04/14/98 - Add OCI Datetime shortnames
-   vyanaman    04/13/98 - Add OCI DateTime and Interval check error codes
-   kkarun      04/07/98 - Add OCI_DTYPE_DATETIME and OCI_DTYPE_INTERVAL
-   esoyleme    12/15/97 - support failover callback retry
-   esoyleme    04/22/98 - merge support for failover callback retry
-   mluong      04/16/98 - add OCI_FNCODE_LOBLOCATORASSIGN
-   rkasamse    04/17/98 - add short names for OCIPickler(Memory/Ctx) cart servi
-   slari       04/10/98 - add OCI_FNCODE_SVCCTXTOLDA
-   slari       04/09/98 - add OCI_FNCODE_RESET
-   slari       04/07/98 - add OCI_FNCODE_LOBFILEISOPEN
-   slari       04/06/98 - add OCI_FNCODE_LOBOPEN
-   slari       03/20/98 - change OCI_CBTYPE_xxx to OCI_UCBTYPE_xxx
-   slari       03/18/98 - add OCI_FNCODE_MAXFCN
-   slari       02/12/98 - add OCI_ENV_NO_USRCB
-   skabraha    04/09/98 - adding shortnames for OCIFile
-   rhwu        04/03/98 - Add short names for the OCIThread package
-   tanguyen    04/03/98 - add OCI_ATTR_xxxx for type inheritance
-   rkasamse    04/02/98 - add OCI_ATTR_UCI_REFRESH
-   nramakri    04/01/98 - Add short names for the OCIExtract package
-   ewaugh      03/31/98 - Add short names for the OCIFormat package.
-   jhasenbe    04/06/98 - Add definitions for U-Calls (Unicode)
-                          (OCI_TEXT, OCI_UTEXT, OCI_UTEXT4)
-   skmishra    03/03/98 - Add OCI_ATTR_PARSE_ERROR_OFFSET
-   rwessman    03/11/98 - Added OCI_CRED_PROXY for proxy authentication
-   abrumm      03/31/98 - OCI direct path interface support
-   nmallava    03/03/98 - add constants for temp lob apis
-   skotsovo    03/05/98 - resolve merge conflicts
-   skotsovo    02/24/98 - add OCI_DTYPE_LOC
-   skaluska    01/21/98 - Add OCI_ATTR_LTYPE
-   rkasamse    01/06/98 - add OCI_ATTR* for obj cache enhancements
-   dchatter    01/08/98 - more comments
-   skabraha    12/02/97 - moved oci1.h to the front of include files.
-   jiyang      12/18/97 - Add OCI_NLS_MAX_BUFSZ
-   rhwu        12/02/97 - move oci1.h up
-   ewaugh      12/15/97 - Add short names for the OCIFormat package.
-   rkasamse    12/02/97 - Add a constant for memory cartridge services -- OCI_M
-   nmallava    12/31/97 - open/close for internal lobs
-   khnguyen    11/27/97 - add OCI_ATTR_LFPRECISION, OCI_ATTR_FSPRECISION
-   rkasamse    11/03/97 - add types for pickler cartridge services
-   mluong      11/20/97 - changed ubig_ora to ub4 per skotsovo
-   ssamu       11/14/97 - add oci1.h
-   jiyang      11/13/97 - Add NLS service for cartridge
-   esoyleme    12/15/97 - support failover callback retry
-   jwijaya     10/21/97 - change OCILobOffset/Length from ubig_ora to ub4
-   cxcheng     07/28/97 - fix compile with SLSHORTNAME
-   schandra    06/25/97 - AQ OCI interface
-   sgollapu    07/25/97 - Add OCI_ATTR_DESC_PUBLIC
-   cxcheng     06/16/97 - add OCI_ATTR_TDO
-   skotsovo    06/05/97 - add fntcodes for lob buffering subsystem
-   esoyleme    05/13/97 - move failover callback prototype
-   skmishra    05/06/97 - stdc compiler fixes
-   skmishra    04/22/97 - Provide C++ compatibility
-   lchidamb    04/19/97 - add OCI_ATTR_SESSLANG
-   ramkrish    04/15/97 - Add OCI_LOB_BUFFER_(NO)FREE
-   sgollapu    04/18/97 - Add OCI_ATTR_TABLESPACE
-   skaluska    04/17/97 - Add OCI_ATTR_SUB_NAME
-   schandra    04/10/97 - Use long OCI names
-   aroy        03/27/97 - add OCI_DTYPE_FILE
-   sgollapu    03/26/97 - Add OCI_OTYPEs
-   skmishra    04/09/97 - Added constant OCI_ROWID_LEN
-   dchatter    03/21/97 - add attr OCI_ATTR_IN_V8_MODE
-   lchidamb    03/21/97 - add OCI_COMMIT_ON_SUCCESS execution mode
-   skmishra    03/20/97 - Added OCI_ATTR_LOBEMPTY
-   sgollapu    03/19/97 - Add OCI_ATTR_OVRLD_ID
-   aroy        03/17/97 - add postprocessing callback
-   sgollapu    03/15/97 - Add OCI_ATTR_PARAM
-   cxcheng     02/07/97 - change OCI_PTYPE codes for type method for consistenc
-   cxcheng     02/05/97 - add OCI_PTYPE_TYPE_RESULT
-   cxcheng     02/04/97 - rename OCI_PTYPE constants to be more consistent
-   cxcheng     02/03/97 - add OCI_ATTR, OCI_PTYPE contants for describe type
-   esoyleme    01/23/97 - merge neerja callback
-   sgollapu    12/30/96 - Remove OCI_DTYPE_SECURITY
-   asurpur     12/26/96 - CHanging OCI_NO_AUTH to OCI_AUTH
-   sgollapu    12/23/96 - Add more attrs to COL, ARG, and SEQ
-   sgollapu    12/12/96 - Add OCI_DESCRIBE_ONLY
-   slari       12/11/96 - change prototype of OCICallbackInBind
-   nbhatt      12/05/96 - "callback"
-   lchidamb    11/19/96 - handle subclassing
-   sgollapu    11/09/96 - OCI_PATTR_*
-   dchatter    11/04/96 - add attr OCI_ATTR_CHRCNT
-   mluong      11/01/96 - test
-   cxcheng     10/31/96 - add #defines for OCILobLength etc
-   dchatter    10/31/96 - add lob read write call back fp defs
-   dchatter    10/30/96 - more changes
-   rhari       10/30/96 - Include ociextp.h at the very end
-   lchidamb    10/22/96 - add fdo attribute for bind/server handle
-   dchatter    10/22/96 - change attr defn for prefetch parameters & lobs/file
-                          calls
-   slari       10/21/96 - add OCI_ENV_NO_MUTEX
-   rhari       10/25/96 - Include ociextp.h
-   rxgovind    10/25/96 - add OCI_LOBMAXSIZE, remove OCI_FILE_READWRITE
-   sgollapu    10/24/96 - Correct OCILogon and OCILogoff
-   sgollapu    10/24/96 - Correct to OCILogon and OCILogoff
-   sgollapu    10/21/96 - Add ocilon and ociloff
-   skaluska    10/31/96 - Add OCI_PTYPE values
-   sgollapu    10/17/96 - correct OCI_ATTR_SVCCTX to OCI_ATTR_SERVER
-   rwessman    10/16/96 - Added security functions and fixed olint errors.
-   sthakur     10/14/96 - add more COR attributes
-   cxcheng     10/14/96 - re-enable LOB functions
-   sgollapu    10/10/96 - Add ocibdp and ocibdn
-   slari       10/07/96 - add back OCIRowid
-   aroy        10/08/96 -  add typedef ocibfill for PRO*C
-   mluong      10/11/96 - replace OCI_ATTR_CHARSET* with OCI_ATTR_CHARSET_*
-   cxcheng     10/10/96 - temporarily take out #define for lob functions
-   sgollapu    10/02/96 - Rename OCI functions and datatypes
-   skotsovo    10/01/96 - move orl lob fnts to oci
-   aroy        09/10/96 - fix merge errors
-   aroy        08/19/96 - NCHAR support
-   jboonleu    09/05/96 - add OCI attributes for object cache
-   dchatter    08/20/96 - HTYPE ranges from 1-50; DTYPE from 50-255
-   slari       08/06/96 - define OCI_DTYPE_ROWID
-   sthakur     08/14/96 - complex object support
-   schandra    06/17/96 - Convert XA to use new OCI
-   abrik       08/15/96 - OCI_ATTR_HEAPALLOC added
-   aroy        07/17/96 - terminology change: ocilobd => ocilobl
-   aroy        07/03/96 - add lob typedefs for Pro*C
-   slari       06/28/96 - add OCI_ATTR_STMT_TYPE
-   lchidamb    06/26/96 - reorg #ifndef
-   schandra    05/31/96 - attribute types for internal and external client name
-   asurpur     05/30/96 - Changing the value of mode
-   schandra    05/18/96 - OCI_TRANS_TWOPHASE -> 0x00000001 to 0x00100000
-   slari       05/30/96 - add callback function prototypes
-   jbellemo    05/23/96 - remove ociisc
-   schandra    04/23/96 - loosely-coupled branches
-   asurpur     05/15/96 - New mode for ocicpw
-   aroy        04/24/96 - making ocihandles opaque
-   slari       04/18/96 - add missing defines
-   schandra    03/27/96 - V8OCI - add transaction related calls
-   dchatter    04/01/96 - add OCI_FILE options
-   dchatter    03/21/96 - add oci2lda conversion routines
-   dchatter    03/07/96 - add OCI piece definition
-   slari       03/12/96 - add describe attributes
-   slari       03/12/96 - add OCI_OTYPE_QUERY
-   aroy        02/28/96 - Add column attributes
-   slari       02/09/96 - add OCI_OBJECT
-   slari       02/07/96 - add OCI_HYTPE_DSC
-   aroy        01/10/96 - adding function code defines...
-   dchatter    01/03/96 - define OCI_NON_BLOCKING
-   dchatter    01/02/96 - Add Any descriptor
-   dchatter    01/02/96 - Add Select List descriptor
-   dchatter    12/29/95 - V8 OCI definitions
-   dchatter    12/29/95 - Creation
-
-*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef ORATYPES 
-#include <oratypes.h> 
-#endif
- 
-#ifndef OCIDFN
-#include <ocidfn.h>
-#endif
-
-#ifndef OCI_ORACLE
-# define OCI_ORACLE
-
- 
-/*--------------------------------------------------------------------------- 
- Short names provided for platforms which do not allow extended symbolic names 
-  ---------------------------------------------------------------------------*/
-
-#ifdef SLSHORTNAME
-/* Translation of the long function/type names to short names for IBM only */
-/* maybe lint will use this too */
-#define OCISessionEnd              ocitac
-#define OCIResultSetToStmt         ocirs2sh
-#define OCISessionBegin            ociauth
-#define OCIServerAttach            ociatch
-#define OCIDescriptorAlloc         ocigdesc
-#define OCIServerDetach            ocidtch
-#define OCIDescriptorFree          ocifdesc
-#define OCIServerVersion           ocivers
-#define OCIDescribeAny             ocidsca
-#define OCIBindDynamic             ocibda
-#define OCIBindByName              ocibdn
-#define OCIBindByPos               ocibdp
-#define OCIErrorGet                ocigdr
-#define OCIBindArrayOfStruct       ocibsa
-#define OCIEnvInit                 ociinit
-#define OCIBindObject              ocibndt
-#define OCIHandleAlloc             ocighndl
-#define OCIHandleFree              ocifhndl
-#define OCIRowidToChar             ociri2c
-#ifdef NEVER
-#define OCIStmtBindByPos           ocibndp
-#define OCIStmtBindByName          ocibndn
-#endif
-#define OCIAttrGet                 ocigattr
-#define OCIDefineByPos             ocidfne
-#define OCIAttrSet                 ocisattr
-#define OCIDefineDynamic           ociddf
-#define OCILdaToSvcCtx             ocild2sv
-#define OCIDefineArrayOfStruct     ocidarr
-#define OCIInitialize              ocipi
-#define OCIDefineObject            ocidndt
-#define OCIStmtExecute             ociexec
-#define OCILobAppend               ocilfap
-#define OCILobOpenFile             ocifopn
-#define OCILobCloseFile            ocifcls
-#define OCILobLocator              ocilobd
-#define OCILobCopy                 ocilfcp
-#define OCILobFileCreate           ocifcrt
-#define OCILobFileDelete           ocifdel
-#define OCILobGetLength            ocilfln
-#define OCILobWrite                ocilfwr
-#define OCILobRead                 ocilfrd
-#define OCILobErase                ocilfer
-#define OCILobTrim                 ocilftr
-
-#define OCIStmtFetch               ocifch
-#define OCIStmtGetBindInfo         ocigbp
-#define OCIStmtGetPieceInfo        ocigpi
-#define OCIStmtPrepare             ocireq
-#define OCIStmtSetPieceInfo        ocispi
-#define OCISvcCtxToLda             ocisv2ld
-#define OCITransCommit             ocitxcm
-#define OCITransDetach             ocitxdt
-#define OCITransForget             ocitxfgt
-#define OCITransPrepare            ocitxpre
-#define OCITransRollback           ocitxrl
-#define OCIPasswordChange          ocicpw
-#define OCITransStart              ocitxst
-#define OCITransMultiPrepare       ocitxmp
-
-#define OCIBreak                   ocibreak
-#define OCIParamGet                ocigparm
-#define OCIParamSet                ocisparm
-
-#define OCISecurityOpenWallet           ocizwOpenWallet
-#define OCISecurityCloseWallet          ocizwCloseWallet
-#define OCISecurityCreateWallet         ocizwCreateWallet
-#define OCISecurityDestroyWallet        ocizwDestroyWallet
-#define OCISecurityStorePersona         ocizeStorePersona
-#define OCISecurityOpenPersona          ocizeOpenPersona
-#define OCISecurityClosePersona         ocizeClosePersona
-#define OCISecurityRemovePersona        ocizeRemovePersona
-#define OCISecurityCreatePersona        ocizeCreatePersona
-#define OCISecuritySetProtection        ocizeSetProtection
-#define OCISecurityGetProtection        ocizeGetProtection
-#define OCISecurityRemoveIdentity       ociziRemoveIdentity
-#define OCISecurityCreateIdentity       ociziCreateIdentity
-#define OCISecurityAbortIdentity        ociziAbortIdentity
-#define OCISecurityFreeIdentity         ociziFreeIdentity
-#define OCISecurityStoreTrustedIdentity ociziStoreTrustedIdentity
-#define OCISecuritySign                 ocizSign
-#define OCISecuritySignExpansion        ocizxSignExpansion
-#define OCISecurityVerify               ocizVerify
-#define OCISecurityValidate             ocizValidate
-#define OCISecuritySignDetached         ocizsd_SignDetached
-#define OCISecuritySignDetExpansion     ocizxsd_SignDetachedExpansion
-#define OCISecurityVerifyDetached       ocizved_VerifyDetached
-#define OCISecurity_PKEncrypt           ocizkec_PKEncrypt
-#define OCISecurityPKEncryptExpansion   ocizxkec_PKEncryptExpansion
-#define OCISecurityPKDecrypt            ocizkdc_PKDecrypt
-#define OCISecurityEncrypt              ocizEncrypt
-#define OCISecurityEncryptExpansion     ocizxEncryptExpansion
-#define OCISecurityDecrypt              ocizDecrypt
-#define OCISecurityEnvelope             ocizEnvelope
-#define OCISecurityDeEnvelope           ocizDeEnvelope
-#define OCISecurityKeyedHash            ocizKeyedHash
-#define OCISecurityKeyedHashExpansion   ocizxKeyedHashExpansion
-#define OCISecurityHash                 ocizHash
-#define OCISecurityHashExpansion        ocizxHashExpansion
-#define OCISecuritySeedRandom           ocizSeedRandom
-#define OCISecurityRandomBytes          ocizrb_RandomBytes
-#define OCISecurityRandomNumber         ocizrn_RandomNumber
-#define OCISecurityInitBlock            ocizibInitBlock
-#define OCISecurityReuseBlock           ocizrbReuseBlock
-#define OCISecurityPurgeBlock           ocizpbPurgeBlock
-#define OCISecuritySetBlock             ocizsbSetBlock
-#define OCISecurityGetIdentity          ocizgi_GetIdentity
-
-#define OCIExtractInit             ocixeini
-#define OCIExtractTerm             ocixetrm
-#define OCIExtractReset            ocixerst
-#define OCIExtractSetNumKeys       ocixesnk
-#define OCIExtractSetKey           ocixesk
-#define OCIExtractFromFile         ocixeff
-#define OCIExtractFromStr          ocixefs
-#define OCIExtractToInt            ocixeti
-#define OCIExtractToBool           ocixetb
-#define OCIExtractToStr            ocixets
-#define OCIExtractToOCINum         ocixeton
-#define OCIExtractToList           ocixetl
-#define OCIExtractFromList         ocixefl
-
-#define OCIDateTimeGetTime         ocidt01_GetTime
-#define OCIDateTimeGetDate         ocidt02_GetDate
-#define OCIDateTimeGetTimeZoneOffset     ocidt03_GetTZ
-#define OCIDateTimeSysTimeStamp    ocidt07_SysTS
-#define OCIDateTimeAssign          ocidt08_Assign 
-#define OCIDateTimeToText          ocidt09_ToText
-#define OCIDateTimeFromText        ocidt10_FromText
-#define OCIDateTimeCompare         ocidt11_Compare
-#define OCIDateTimeCheck           ocidt12_Check
-#define OCIDateTimeConvert         ocidt13_Convert
-#define OCIDateTimeSubtract        ocidt14_Subtract
-#define OCIDateTimeIntervalAdd     ocidt15_IntervalAdd
-#define OCIDateTimeIntervalSub     ocidt16_IntervalSub
-#define OCIDateTimeGetTimeZoneName ocidt17_Gettzname
-#define OCIDateTimeToArray         ocidt18_ToArray  
-#define OCIDateTimeFromArray       ocidt19_FromArray
-
-#define OCIIntervalSubtract        ociint01_Subtract  
-#define OCIIntervalAdd             ociint02_Add  
-#define OCIIntervalMultiply        ociint03_Multiply  
-#define OCIIntervalDivide          ociint04_Divide  
-#define OCIIntervalCompare         ociint05_Compare  
-#define OCIIntervalFromText        ociint06_FromText  
-#define OCIIntervalToText          ociint07_ToText  
-#define OCIIntervalToNumber        ociint08_ToNumber  
-#define OCIIntervalCheck           ociint09_Check  
-#define OCIIntervalAssign          ociint10_Assign  
-#define OCIIntervalGetYearMonth    ociint11_GetYearMonth
-#define OCIIntervalSetYearMonth    ociint12_SetYearMonth
-#define OCIIntervalGetDaySecond    ociint13_GetDaySecond
-#define OCIIntervalSetDaySecond    ociint14_SetDaySecond
-#define OCIIntervalFromNumber      ociint15_FromNumber
-#define OCIIntervalFromTZ          ociint16_FromTZ 
-
-#define OCIFormatInit              ocixs01_Init
-#define OCIFormatString            ocixs02_Format
-#define OCIFormatTerm              ocixs03_Term
-#define OCIFormatTUb1              ocixs04_TUb1
-#define OCIFormatTUb2              ocixs05_TUb2
-#define OCIFormatTUb4              ocixs06_TUb4
-#define OCIFormatTUword            ocixs07_TUword
-#define OCIFormatTUbig_ora         ocixs08_TUbig_ora
-#define OCIFormatTSb1              ocixs09_TSb1
-#define OCIFormatTSb2              ocixs10_TSb2
-#define OCIFormatTSb4              ocixs11_TSb4
-#define OCIFormatTSword            ocixs12_TSword
-#define OCIFormatTSbig_ora         ocixs13_TSbig_ora
-#define OCIFormatTEb1              ocixs14_TEb1
-#define OCIFormatTEb2              ocixs15_TEb2
-#define OCIFormatTEb4              ocixs16_TEb4
-#define OCIFormatTEword            ocixs17_TEword
-#define OCIFormatTChar             ocixs18_TChar
-#define OCIFormatTText             ocixs19_TText
-#define OCIFormatTDouble           ocixs20_TDouble
-#define OCIFormatTDvoid            ocixs21_TDvoid
-#define OCIFormatTEnd              ocixs22_TEnd
-
-#define OCIFileInit                ocifinit
-#define OCIFileTerm                ocifterm
-#define OCIFileOpen                ocifopen
-#define OCIFileClose               ocifclose
-#define OCIFileRead                ocifread
-#define OCIFileWrite               ocifwrite
-#define OCIFileSeek                ocifseek
-#define OCIFileExists              ocifexists
-#define OCIFileGetLength           ocifglen
-#define OCIFileFlush               ocifflush
-
-
-/* OCIThread short name */
-#define OCIThreadProcessInit       ocitt01_ProcessInit
-#define OCIThreadInit              ocitt02_Init
-#define OCIThreadTerm              ocitt03_Term
-#define OCIThreadIsMulti           ocitt04_IsMulti
-#define OCIThreadMutexInit         ocitt05_MutexInit
-#define OCIThreadMutexDestroy      ocitt06_MutexDestroy
-#define OCIThreadMutexAcquire      ocitt07_MutexAcquire
-#define OCIThreadMutexRelease      ocitt08_MutexRelease
-#define OCIThreadKeyInit           ocitt09_KeyInit
-#define OCIThreadKeyDestroy        ocitt10_KeyDestroy
-#define OCIThreadKeyGet            ocitt11_KeyGet
-#define OCIThreadKeySet            ocitt12_KeySet
-#define OCIThreadIdInit            ocitt13_IdInit
-#define OCIThreadIdDestroy         ocitt14_IdDestroy
-#define OCIThreadIdSet             ocitt15_IdSet
-#define OCIThreadIdSetNull         ocitt16_IdSetNull
-#define OCIThreadIdGet             ocitt17_IdGet
-#define OCIThreadIdSame            ocitt18_IdSame
-#define OCIThreadIdNull            ocitt19_IdNull
-#define OCIThreadHndInit           ocitt20_HndInit
-#define OCIThreadHndDestroy        ocitt21_HndDestroy
-#define OCIThreadCreate            ocitt22_Create
-#define OCIThreadJoin              ocitt23_Join
-#define OCIThreadClose             ocitt24_Close
-#define OCIThreadHandleGet         ocitt25_HandleGet
-
-/* Translation between the old and new datatypes */
-
-#define OCISession                 ociusrh
-#define OCIBind                    ocibndh
-#define OCIDescribe                ocidsch
-#define OCIDefine                  ocidfnh
-#define OCIEnv                     ocienvh
-#define OCIError                   ocierrh
-
-#define OCICPool                   ocicpool
-
-#define OCISPool                   ocispool
-#define OCIAuthInfo                ociauthinfo
-
-
-#define OCILob                     ocilobd
-#define OCILobLength               ocillen
-#define OCILobMode                 ocilmo
-#define OCILobOffset               ociloff
-
-#define OCILobLocator              ocilobd
-#define OCIBlobLocator             ociblobl
-#define OCIClobLocator             ociclobl
-#define OCIBFileLocator            ocibfilel
-
-#define OCIParam                   ocipard
-#define OCIResult                  ocirstd
-#define OCISnapshot                ocisnad
-#define OCIServer                  ocisrvh
-#define OCIStmt                    ocistmh
-#define OCISvcCtx                  ocisvch
-#define OCITrans                   ocitxnh
-#define OCICallbackInBind          ocibicfp
-#define OCICallbackOutBind         ocibocfp
-#define OCICallbackDefine          ocidcfp
-#define OCICallbackLobRead         ocilrfp
-#define OCICallbackLobWrite        ocilwfp
-#define OCISecurity                ociossh
-#define OCIComplexObject           ocicorh
-#define OCIComplexObjectComp       ocicord
-#define OCIRowid                   ociridd
-
-#define OCIAQDeq                   ociaqdeq                  
-#define OCIAQEnq                   ociaqenq
-#define OCIConnectionPoolCreate    ociconpc
-#define OCIConnectionPoolDestroy   ociconpd
-#define OCIEnvCreate               ocienvct
-#define OCILobAssign               ociloass
-#define OCILobCharSetForm          ocilocfm
-#define OCILobCharSetId            ocilocid
-#define OCILobDisableBuffering     ocilodbf
-#define OCILobEnableBuffering      ociloebf
-#define OCILobFileClose            ocilofcl
-#define OCILobFileCloseAll         ocilofca
-#define OCILobFileExists           ocilofex
-#define OCILobFileGetName          ocilofgn
-#define OCILobFileIsOpen           ocifiopn
-#define OCILobFileOpen             ocilofop
-#define OCILobFileSetName          ocilofsn
-#define OCILobFlushBuffer          ocilofbf
-#define OCILobIsEqual              ociloieq
-#define OCILobLoadFromFile         ocilolff
-#define OCILobLocatorIsInit        ocilolii
-#define OCILobLocatorAssign        ocilolas
-#define OCILogon                   ocilogon
-#define OCILogon2                  ocilgon2
-#define OCILogoff                  ocilgoff
-#endif /* ifdef SLSHORTNAME */
-
-/*--------------------------------------------------------------------------- 
-                     PUBLIC TYPES AND CONSTANTS 
-  ---------------------------------------------------------------------------*/
-
-/*-----------------------------Handle Types----------------------------------*/
-                                           /* handle types range from 1 - 49 */
-#define OCI_HTYPE_FIRST          1             /* start value of handle type */
-#define OCI_HTYPE_ENV            1                     /* environment handle */
-#define OCI_HTYPE_ERROR          2                           /* error handle */
-#define OCI_HTYPE_SVCCTX         3                         /* service handle */
-#define OCI_HTYPE_STMT           4                       /* statement handle */
-#define OCI_HTYPE_BIND           5                            /* bind handle */
-#define OCI_HTYPE_DEFINE         6                          /* define handle */
-#define OCI_HTYPE_DESCRIBE       7                        /* describe handle */
-#define OCI_HTYPE_SERVER         8                          /* server handle */
-#define OCI_HTYPE_SESSION        9                  /* authentication handle */
-#define OCI_HTYPE_AUTHINFO      OCI_HTYPE_SESSION  /* SessionGet auth handle */
-#define OCI_HTYPE_TRANS         10                     /* transaction handle */
-#define OCI_HTYPE_COMPLEXOBJECT 11        /* complex object retrieval handle */
-#define OCI_HTYPE_SECURITY      12                        /* security handle */
-#define OCI_HTYPE_SUBSCRIPTION  13                    /* subscription handle */
-#define OCI_HTYPE_DIRPATH_CTX   14                    /* direct path context */
-#define OCI_HTYPE_DIRPATH_COLUMN_ARRAY 15        /* direct path column array */
-#define OCI_HTYPE_DIRPATH_STREAM       16              /* direct path stream */
-#define OCI_HTYPE_PROC                 17                  /* process handle */
-#define OCI_HTYPE_DIRPATH_FN_CTX       18    /* direct path function context */
-#define OCI_HTYPE_DIRPATH_FN_COL_ARRAY 19          /* dp object column array */
-#define OCI_HTYPE_XADSESSION    20                  /* access driver session */
-#define OCI_HTYPE_XADTABLE      21                    /* access driver table */
-#define OCI_HTYPE_XADFIELD      22                    /* access driver field */
-#define OCI_HTYPE_XADGRANULE    23                  /* access driver granule */
-#define OCI_HTYPE_XADRECORD     24                   /* access driver record */
-#define OCI_HTYPE_XADIO         25                      /* access driver I/O */
-#define OCI_HTYPE_CPOOL         26                 /* connection pool handle */
-#define OCI_HTYPE_SPOOL         27                    /* session pool handle */
-
-#define OCI_HTYPE_LAST          27            /* last value of a handle type */
-
-/*---------------------------------------------------------------------------*/
-
-
-/*-------------------------Descriptor Types----------------------------------*/
-                                    /* descriptor values range from 50 - 255 */
-#define OCI_DTYPE_FIRST 50                 /* start value of descriptor type */
-#define OCI_DTYPE_LOB 50                                     /* lob  locator */
-#define OCI_DTYPE_SNAP 51                             /* snapshot descriptor */
-#define OCI_DTYPE_RSET 52                           /* result set descriptor */
-#define OCI_DTYPE_PARAM 53  /* a parameter descriptor obtained from ocigparm */
-#define OCI_DTYPE_ROWID  54                              /* rowid descriptor */
-#define OCI_DTYPE_COMPLEXOBJECTCOMP  55
-                                      /* complex object retrieval descriptor */
-#define OCI_DTYPE_FILE 56                                /* File Lob locator */
-#define OCI_DTYPE_AQENQ_OPTIONS 57                        /* enqueue options */
-#define OCI_DTYPE_AQDEQ_OPTIONS 58                        /* dequeue options */
-#define OCI_DTYPE_AQMSG_PROPERTIES 59                  /* message properties */
-#define OCI_DTYPE_AQAGENT 60                                     /* aq agent */
-#define OCI_DTYPE_LOCATOR 61                                  /* LOB locator */
-#define OCI_DTYPE_INTERVAL_YM 62                      /* Interval year month */
-#define OCI_DTYPE_INTERVAL_DS 63                      /* Interval day second */
-#define OCI_DTYPE_AQNFY_DESCRIPTOR  64               /* AQ notify descriptor */
-#define OCI_DTYPE_DATE 65                            /* Date */
-#define OCI_DTYPE_TIME 66                            /* Time */
-#define OCI_DTYPE_TIME_TZ 67                         /* Time with timezone */
-#define OCI_DTYPE_TIMESTAMP 68                       /* Timestamp */
-#define OCI_DTYPE_TIMESTAMP_TZ 69                /* Timestamp with timezone */
-#define OCI_DTYPE_TIMESTAMP_LTZ 70             /* Timestamp with local tz */
-#define OCI_DTYPE_UCB           71               /* user callback descriptor */
-#define OCI_DTYPE_SRVDN         72              /* server DN list descriptor */
-#define OCI_DTYPE_SIGNATURE     73                              /* signature */
-#define OCI_DTYPE_RESERVED_1    74              /* reserved for internal use */
-#define OCI_DTYPE_LAST          74        /* last value of a descriptor type */
-
-/*---------------------------------------------------------------------------*/
-
-/*--------------------------------LOB types ---------------------------------*/
-#define OCI_TEMP_BLOB 1                /* LOB type - BLOB ------------------ */
-#define OCI_TEMP_CLOB 2                /* LOB type - CLOB ------------------ */
-/*---------------------------------------------------------------------------*/
-
-/*-------------------------Object Ptr Types----------------------------------*/
-#define OCI_OTYPE_NAME 1                                      /* object name */
-#define OCI_OTYPE_REF  2                                       /* REF to TDO */
-#define OCI_OTYPE_PTR  3                                       /* PTR to TDO */
-/*---------------------------------------------------------------------------*/
-
-/*=============================Attribute Types===============================*/
-/* 
-   Note: All attributes are global.  New attibutes should be added to the end
-   of the list. Before you add an attribute see if an existing one can be 
-   used for your handle. 
-
-   If you see any holes please use the holes first. 
- 
-*/
-/*===========================================================================*/
-
-
-#define OCI_ATTR_FNCODE  1                          /* the OCI function code */
-#define OCI_ATTR_OBJECT   2 /* is the environment initialized in object mode */
-#define OCI_ATTR_NONBLOCKING_MODE  3                    /* non blocking mode */
-#define OCI_ATTR_SQLCODE  4                                  /* the SQL verb */
-#define OCI_ATTR_ENV  5                            /* the environment handle */
-#define OCI_ATTR_SERVER 6                               /* the server handle */
-#define OCI_ATTR_SESSION 7                        /* the user session handle */
-#define OCI_ATTR_TRANS   8                         /* the transaction handle */
-#define OCI_ATTR_ROW_COUNT   9                  /* the rows processed so far */
-#define OCI_ATTR_SQLFNCODE 10               /* the SQL verb of the statement */
-#define OCI_ATTR_PREFETCH_ROWS  11    /* sets the number of rows to prefetch */
-#define OCI_ATTR_NESTED_PREFETCH_ROWS 12 /* the prefetch rows of nested table*/
-#define OCI_ATTR_PREFETCH_MEMORY 13         /* memory limit for rows fetched */
-#define OCI_ATTR_NESTED_PREFETCH_MEMORY 14   /* memory limit for nested rows */
-#define OCI_ATTR_CHAR_COUNT  15 
-                    /* this specifies the bind and define size in characters */
-#define OCI_ATTR_PDSCL   16                          /* packed decimal scale */
-#define OCI_ATTR_FSPRECISION OCI_ATTR_PDSCL   
-                                          /* fs prec for datetime data types */
-#define OCI_ATTR_PDPRC   17                         /* packed decimal format */
-#define OCI_ATTR_LFPRECISION OCI_ATTR_PDPRC 
-                                          /* fs prec for datetime data types */
-#define OCI_ATTR_PARAM_COUNT 18       /* number of column in the select list */
-#define OCI_ATTR_ROWID   19                                     /* the rowid */
-#define OCI_ATTR_CHARSET  20                      /* the character set value */
-#define OCI_ATTR_NCHAR   21                                    /* NCHAR type */
-#define OCI_ATTR_USERNAME 22                           /* username attribute */
-#define OCI_ATTR_PASSWORD 23                           /* password attribute */
-#define OCI_ATTR_STMT_TYPE   24                            /* statement type */
-#define OCI_ATTR_INTERNAL_NAME   25             /* user friendly global name */
-#define OCI_ATTR_EXTERNAL_NAME   26      /* the internal name for global txn */
-#define OCI_ATTR_XID     27           /* XOPEN defined global transaction id */
-#define OCI_ATTR_TRANS_LOCK 28                                            /* */
-#define OCI_ATTR_TRANS_NAME 29    /* string to identify a global transaction */
-#define OCI_ATTR_HEAPALLOC 30                /* memory allocated on the heap */
-#define OCI_ATTR_CHARSET_ID 31                           /* Character Set ID */
-#define OCI_ATTR_CHARSET_FORM 32                       /* Character Set Form */
-#define OCI_ATTR_MAXDATA_SIZE 33       /* Maximumsize of data on the server  */
-#define OCI_ATTR_CACHE_OPT_SIZE 34              /* object cache optimal size */
-#define OCI_ATTR_CACHE_MAX_SIZE 35   /* object cache maximum size percentage */
-#define OCI_ATTR_PINOPTION 36             /* object cache default pin option */
-#define OCI_ATTR_ALLOC_DURATION 37
-                                 /* object cache default allocation duration */
-#define OCI_ATTR_PIN_DURATION 38        /* object cache default pin duration */
-#define OCI_ATTR_FDO          39       /* Format Descriptor object attribute */
-#define OCI_ATTR_POSTPROCESSING_CALLBACK 40
-                                         /* Callback to process outbind data */
-#define OCI_ATTR_POSTPROCESSING_CONTEXT 41
-                                 /* Callback context to process outbind data */
-#define OCI_ATTR_ROWS_RETURNED 42
-               /* Number of rows returned in current iter - for Bind handles */
-#define OCI_ATTR_FOCBK        43              /* Failover Callback attribute */
-#define OCI_ATTR_IN_V8_MODE   44 /* is the server/service context in V8 mode */
-#define OCI_ATTR_LOBEMPTY     45                              /* empty lob ? */
-#define OCI_ATTR_SESSLANG     46                  /* session language handle */
-
-#define OCI_ATTR_VISIBILITY             47                     /* visibility */
-#define OCI_ATTR_RELATIVE_MSGID         48            /* relative message id */
-#define OCI_ATTR_SEQUENCE_DEVIATION     49             /* sequence deviation */
-
-#define OCI_ATTR_CONSUMER_NAME          50                  /* consumer name */
-#define OCI_ATTR_DEQ_MODE               51                   /* dequeue mode */
-#define OCI_ATTR_NAVIGATION             52                     /* navigation */
-#define OCI_ATTR_WAIT                   53                           /* wait */
-#define OCI_ATTR_DEQ_MSGID              54             /* dequeue message id */
-
-#define OCI_ATTR_PRIORITY               55                       /* priority */
-#define OCI_ATTR_DELAY                  56                          /* delay */
-#define OCI_ATTR_EXPIRATION             57                     /* expiration */
-#define OCI_ATTR_CORRELATION            58                 /* correlation id */
-#define OCI_ATTR_ATTEMPTS               59                  /* # of attempts */
-#define OCI_ATTR_RECIPIENT_LIST         60                 /* recipient list */
-#define OCI_ATTR_EXCEPTION_QUEUE        61           /* exception queue name */
-#define OCI_ATTR_ENQ_TIME               62 /* enqueue time (only OCIAttrGet) */
-#define OCI_ATTR_MSG_STATE              63/* message state (only OCIAttrGet) */
-                                                   /* NOTE: 64-66 used below */
-#define OCI_ATTR_AGENT_NAME             64                     /* agent name */
-#define OCI_ATTR_AGENT_ADDRESS          65                  /* agent address */
-#define OCI_ATTR_AGENT_PROTOCOL         66                 /* agent protocol */
-#define OCI_ATTR_USER_PROPERTY          67                  /* user property */
-#define OCI_ATTR_SENDER_ID              68                      /* sender id */
-#define OCI_ATTR_ORIGINAL_MSGID         69            /* original message id */
-
-#define OCI_ATTR_QUEUE_NAME             70                     /* queue name */
-#define OCI_ATTR_NFY_MSGID              71                     /* message id */
-#define OCI_ATTR_MSG_PROP               72             /* message properties */
-
-#define OCI_ATTR_NUM_DML_ERRORS         73       /* num of errs in array DML */
-#define OCI_ATTR_DML_ROW_OFFSET         74        /* row offset in the array */
-
-              /* AQ array error handling uses DML method of accessing errors */
-#define OCI_ATTR_AQ_NUM_ERRORS          OCI_ATTR_NUM_DML_ERRORS
-#define OCI_ATTR_AQ_ERROR_INDEX         OCI_ATTR_DML_ROW_OFFSET
-
-#define OCI_ATTR_DATEFORMAT             75     /* default date format string */
-#define OCI_ATTR_BUF_ADDR               76                 /* buffer address */
-#define OCI_ATTR_BUF_SIZE               77                    /* buffer size */
-#define OCI_ATTR_DIRPATH_MODE           78  /* mode of direct path operation */
-#define OCI_ATTR_DIRPATH_NOLOG          79               /* nologging option */
-#define OCI_ATTR_DIRPATH_PARALLEL       80     /* parallel (temp seg) option */
-#define OCI_ATTR_NUM_ROWS               81 /* number of rows in column array */
-                                  /* NOTE that OCI_ATTR_NUM_COLS is a column
-                                   * array attribute too.
-                                   */
-#define OCI_ATTR_COL_COUNT              82        /* columns of column array
-                                                     processed so far.       */
-#define OCI_ATTR_STREAM_OFFSET          83  /* str off of last row processed */
-#define OCI_ATTR_SHARED_HEAPALLOC       84    /* Shared Heap Allocation Size */
-
-#define OCI_ATTR_SERVER_GROUP           85              /* server group name */
-
-#define OCI_ATTR_MIGSESSION             86   /* migratable session attribute */
-
-#define OCI_ATTR_NOCACHE                87                 /* Temporary LOBs */
-
-#define OCI_ATTR_MEMPOOL_SIZE           88                      /* Pool Size */
-#define OCI_ATTR_MEMPOOL_INSTNAME       89                  /* Instance name */
-#define OCI_ATTR_MEMPOOL_APPNAME        90               /* Application name */
-#define OCI_ATTR_MEMPOOL_HOMENAME       91            /* Home Directory name */
-#define OCI_ATTR_MEMPOOL_MODEL          92     /* Pool Model (proc,thrd,both)*/
-#define OCI_ATTR_MODES                  93                          /* Modes */
-
-#define OCI_ATTR_SUBSCR_NAME            94           /* name of subscription */
-#define OCI_ATTR_SUBSCR_CALLBACK        95            /* associated callback */
-#define OCI_ATTR_SUBSCR_CTX             96    /* associated callback context */
-#define OCI_ATTR_SUBSCR_PAYLOAD         97             /* associated payload */
-#define OCI_ATTR_SUBSCR_NAMESPACE       98           /* associated namespace */
-
-#define OCI_ATTR_PROXY_CREDENTIALS      99         /* Proxy user credentials */
-#define OCI_ATTR_INITIAL_CLIENT_ROLES  100       /* Initial client role list */
-
-#define OCI_ATTR_UNK              101                   /* unknown attribute */
-#define OCI_ATTR_NUM_COLS         102                   /* number of columns */
-#define OCI_ATTR_LIST_COLUMNS     103        /* parameter of the column list */
-#define OCI_ATTR_RDBA             104           /* DBA of the segment header */
-#define OCI_ATTR_CLUSTERED        105      /* whether the table is clustered */
-#define OCI_ATTR_PARTITIONED      106    /* whether the table is partitioned */
-#define OCI_ATTR_INDEX_ONLY       107     /* whether the table is index only */
-#define OCI_ATTR_LIST_ARGUMENTS   108      /* parameter of the argument list */
-#define OCI_ATTR_LIST_SUBPROGRAMS 109    /* parameter of the subprogram list */
-#define OCI_ATTR_REF_TDO          110          /* REF to the type descriptor */
-#define OCI_ATTR_LINK             111              /* the database link name */
-#define OCI_ATTR_MIN              112                       /* minimum value */
-#define OCI_ATTR_MAX              113                       /* maximum value */
-#define OCI_ATTR_INCR             114                     /* increment value */
-#define OCI_ATTR_CACHE            115   /* number of sequence numbers cached */
-#define OCI_ATTR_ORDER            116     /* whether the sequence is ordered */
-#define OCI_ATTR_HW_MARK          117                     /* high-water mark */
-#define OCI_ATTR_TYPE_SCHEMA      118                  /* type's schema name */
-#define OCI_ATTR_TIMESTAMP        119             /* timestamp of the object */
-#define OCI_ATTR_NUM_ATTRS        120                /* number of sttributes */
-#define OCI_ATTR_NUM_PARAMS       121                /* number of parameters */
-#define OCI_ATTR_OBJID            122       /* object id for a table or view */
-#define OCI_ATTR_PTYPE            123           /* type of info described by */
-#define OCI_ATTR_PARAM            124                /* parameter descriptor */
-#define OCI_ATTR_OVERLOAD_ID      125     /* overload ID for funcs and procs */
-#define OCI_ATTR_TABLESPACE       126                    /* table name space */
-#define OCI_ATTR_TDO              127                       /* TDO of a type */
-#define OCI_ATTR_LTYPE            128                           /* list type */
-#define OCI_ATTR_PARSE_ERROR_OFFSET 129                /* Parse Error offset */
-#define OCI_ATTR_IS_TEMPORARY     130          /* whether table is temporary */
-#define OCI_ATTR_IS_TYPED         131              /* whether table is typed */
-#define OCI_ATTR_DURATION         132         /* duration of temporary table */
-#define OCI_ATTR_IS_INVOKER_RIGHTS 133                  /* is invoker rights */
-#define OCI_ATTR_OBJ_NAME         134           /* top level schema obj name */
-#define OCI_ATTR_OBJ_SCHEMA       135                         /* schema name */
-#define OCI_ATTR_OBJ_ID           136          /* top level schema object id */
-
-#define OCI_ATTR_DIRPATH_SORTED_INDEX    137 /* index that data is sorted on */
-
-            /* direct path index maint method (see oci8dp.h) */
-#define OCI_ATTR_DIRPATH_INDEX_MAINT_METHOD 138
-
-    /* parallel load: db file, initial and next extent sizes */
-
-#define OCI_ATTR_DIRPATH_FILE               139      /* DB file to load into */
-#define OCI_ATTR_DIRPATH_STORAGE_INITIAL    140       /* initial extent size */
-#define OCI_ATTR_DIRPATH_STORAGE_NEXT       141          /* next extent size */
-
-
-#define OCI_ATTR_TRANS_TIMEOUT              142       /* transaction timeout */
-#define OCI_ATTR_SERVER_STATUS              143/* state of the server handle */
-#define OCI_ATTR_STATEMENT                  144 /* statement txt in stmt hdl */
-
-            /* direct path index maint method (see oci8dp.h) */
-#define OCI_ATTR_DIRPATH_SKIPINDEX_METHOD   145
-
-#define OCI_ATTR_DEQCOND                    146         /* dequeue condition */
-#define OCI_ATTR_RESERVED_2                 147                  /* reserved */
-
-  
-#define OCI_ATTR_SUBSCR_RECPT               148 /* recepient of subscription */
-#define OCI_ATTR_SUBSCR_RECPTPROTO          149    /* protocol for recepient */
-
-    /* 8.2 dpapi support of ADTs */
-#define OCI_ATTR_DIRPATH_EXPR_TYPE  150        /* expr type of OCI_ATTR_NAME */
-
-#define OCI_ATTR_DIRPATH_INPUT      151    /* input in text or stream format */
-#define OCI_DIRPATH_INPUT_TEXT     0x01
-#define OCI_DIRPATH_INPUT_STREAM   0x02
-#define OCI_DIRPATH_INPUT_UNKNOWN  0x04
-
-#define OCI_ATTR_LDAP_HOST       153              /* LDAP host to connect to */
-#define OCI_ATTR_LDAP_PORT       154              /* LDAP port to connect to */
-#define OCI_ATTR_BIND_DN         155                              /* bind DN */
-#define OCI_ATTR_LDAP_CRED       156       /* credentials to connect to LDAP */
-#define OCI_ATTR_WALL_LOC        157               /* client wallet location */
-#define OCI_ATTR_LDAP_AUTH       158           /* LDAP authentication method */
-#define OCI_ATTR_LDAP_CTX        159        /* LDAP adminstration context DN */
-#define OCI_ATTR_SERVER_DNS      160      /* list of registration server DNs */
-
-#define OCI_ATTR_DN_COUNT        161             /* the number of server DNs */
-#define OCI_ATTR_SERVER_DN       162                  /* server DN attribute */
-
-#define OCI_ATTR_MAXCHAR_SIZE               163     /* max char size of data */
-
-#define OCI_ATTR_CURRENT_POSITION           164 /* for scrollable result sets*/
-
-/* Added to get attributes for ref cursor to statement handle */
-#define OCI_ATTR_RESERVED_3                 165                  /* reserved */
-#define OCI_ATTR_RESERVED_4                 166                  /* reserved */
-#define OCI_ATTR_DIRPATH_FN_CTX             167  /* fn ctx ADT attrs or args */
-#define OCI_ATTR_DIGEST_ALGO                168          /* digest algorithm */
-#define OCI_ATTR_CERTIFICATE                169               /* certificate */
-#define OCI_ATTR_SIGNATURE_ALGO             170       /* signature algorithm */
-#define OCI_ATTR_CANONICAL_ALGO             171    /* canonicalization algo. */
-#define OCI_ATTR_PRIVATE_KEY                172               /* private key */
-#define OCI_ATTR_DIGEST_VALUE               173              /* digest value */
-#define OCI_ATTR_SIGNATURE_VAL              174           /* signature value */
-#define OCI_ATTR_SIGNATURE                  175                 /* signature */
-
-/* attributes for setting OCI stmt caching specifics in svchp */
-#define OCI_ATTR_STMTCACHESIZE              176     /* size of the stm cache */
-
-/* --------------------------- Connection Pool Attributes ------------------ */
-#define OCI_ATTR_CONN_NOWAIT               178
-#define OCI_ATTR_CONN_BUSY_COUNT            179
-#define OCI_ATTR_CONN_OPEN_COUNT            180
-#define OCI_ATTR_CONN_TIMEOUT               181
-#define OCI_ATTR_STMT_STATE                 182
-#define OCI_ATTR_CONN_MIN                   183
-#define OCI_ATTR_CONN_MAX                   184
-#define OCI_ATTR_CONN_INCR                  185
-
-#define OCI_ATTR_DIRPATH_OID                187   /* loading into an OID col */
-
-#define OCI_ATTR_NUM_OPEN_STMTS             188     /* open stmts in session */
-#define OCI_ATTR_DESCRIBE_NATIVE            189  /* get native info via desc */
-
-#define OCI_ATTR_BIND_COUNT                 190   /* number of bind postions */
-#define OCI_ATTR_HANDLE_POSITION            191 /* pos of bind/define handle */
-#define OCI_ATTR_RESERVED_5                 192                 /* reserverd */
-#define OCI_ATTR_SERVER_BUSY                193 /* call in progress on server*/
-
-#define OCI_ATTR_DIRPATH_SID                194   /* loading into an SID col */
-/* notification presentation for recipient */
-#define OCI_ATTR_SUBSCR_RECPTPRES           195
-#define OCI_ATTR_TRANSFORMATION             196 /* AQ message transformation */
-
-#define OCI_ATTR_ROWS_FETCHED               197 /* rows fetched in last call */
-
-/* --------------------------- Snapshot attributes ------------------------- */
-#define OCI_ATTR_SCN_BASE                   198             /* snapshot base */
-#define OCI_ATTR_SCN_WRAP                   199             /* snapshot wrap */
-
-/* --------------------------- Miscellanous attributes --------------------- */
-#define OCI_ATTR_RESERVED_6                 200                  /* reserved */
-#define OCI_ATTR_READONLY_TXN               201           /* txn is readonly */
-#define OCI_ATTR_RESERVED_7                 202                  /* reserved */
-#define OCI_ATTR_ERRONEOUS_COLUMN           203 /* position of erroneous col */
-#define OCI_ATTR_RESERVED_8                 204                  /* reserved */
-
-/* -------------------- 8.2 dpapi support of ADTs continued ---------------- */
-#define OCI_ATTR_DIRPATH_OBJ_CONSTR         206 /* obj type of subst obj tbl */
-#define OCI_ATTR_INST_TYPE                  207      /* oracle instance type */
-/******USED attribute 208 for  OCI_ATTR_SPOOL_STMTCACHESIZE*******************/
-
-#define OCI_ATTR_ENV_UTF16                  209     /* is env in utf16 mode? */
-#define OCI_ATTR_RESERVED_9                 210          /* reserved for TMZ */
-#define OCI_ATTR_RESERVED_10                211                  /* reserved */
-
-/* Attr to allow setting of the stream version PRIOR to calling Prepare */
-#define OCI_ATTR_DIRPATH_STREAM_VERSION     212      /* version of the stream*/
-
-#define OCIP_ATTR_DIRPATH_VARRAY_INDEX      213       /* varray index column */
-
-#define OCI_ATTR_RESERVED_12                214                  /* reserved */
-#define OCI_ATTR_RESERVED_13                215                  /* reserved */
-#define OCI_ATTR_IS_EXTERNAL                216 /* whether table is external */
-
-
-/* -------------------------- Statement Handle Attributes ------------------ */
-
-#define OCI_ATTR_RESERVED_15                217                  /* reserved */
-#define OCI_ATTR_STMT_IS_RETURNING          218 /* stmt has returning clause */
-#define OCI_ATTR_RESERVED_16                219                  /* reserved */
-#define OCI_ATTR_RESERVED_17                220                  /* reserved */
-#define OCI_ATTR_RESERVED_18                221                  /* reserved */
-
-/* --------------------------- session attributes ---------------------------*/
-#define OCI_ATTR_RESERVED_19                222                  /* reserved */
-
-/*------------- Supported Values for Direct Path Stream Version -------------*/
-#define OCI_DIRPATH_STREAM_VERSION_1        100
-#define OCI_DIRPATH_STREAM_VERSION_2        200
-#define OCI_DIRPATH_STREAM_VERSION_3        300                   /* default */
-
-/* ----------------------- row callback attributes ------------------------- */
-#define OCI_ATTR_BIND_ROWCBK                301         /* bind row callback */
-#define OCI_ATTR_BIND_ROWCTX                302 /* ctx for bind row callback */
-#define OCI_ATTR_SKIP_BUFFER                303  /* skip buffer in array ops */
-
-/* -------- client side character and national character set ids ----------- */
-#define OCI_ATTR_ENV_CHARSET_ID   OCI_ATTR_CHARSET_ID   /* charset id in env */
-#define OCI_ATTR_ENV_NCHARSET_ID  OCI_ATTR_NCHARSET_ID /* ncharset id in env */
-
-
-/*------------- Supported Values for protocol for recepient -----------------*/
-#define OCI_SUBSCR_PROTO_OCI                0                         /* oci */
-#define OCI_SUBSCR_PROTO_MAIL               1                        /* mail */
-#define OCI_SUBSCR_PROTO_SERVER             2                      /* server */
-#define OCI_SUBSCR_PROTO_HTTP               3                        /* http */
-#define OCI_SUBSCR_PROTO_MAX                4       /* max current protocols */
-
-/*------------- Supported Values for presentation for recepient -------------*/
-#define OCI_SUBSCR_PRES_DEFAULT             0                     /* default */
-#define OCI_SUBSCR_PRES_XML                 1                         /* xml */
-#define OCI_SUBSCR_PRES_MAX                 2   /* max current presentations */
-                                                   
-
-/* ----- Temporary attribute value for UCS2/UTF16 character set ID -------- */ 
-#define OCI_UCS2ID            1000                        /* UCS2 charset ID */
-#define OCI_UTF16ID           1000                       /* UTF16 charset ID */
-
-/*============================== End OCI Attribute Types ====================*/
-
-/*---------------- Server Handle Attribute Values ---------------------------*/
-
-/* OCI_ATTR_SERVER_STATUS */
-#define OCI_SERVER_NOT_CONNECTED        0x0 
-#define OCI_SERVER_NORMAL               0x1 
-
-/*---------------------------------------------------------------------------*/
-
-/*------------------------- Supported Namespaces  ---------------------------*/
-#define OCI_SUBSCR_NAMESPACE_ANONYMOUS   0            /* Anonymous Namespace */
-#define OCI_SUBSCR_NAMESPACE_AQ          1                /* Advanced Queues */
-#define OCI_SUBSCR_NAMESPACE_MAX         2          /* Max Name Space Number */
-
-
-/*-------------------------Credential Types----------------------------------*/
-#define OCI_CRED_RDBMS      1                  /* database username/password */
-#define OCI_CRED_EXT        2             /* externally provided credentials */
-#define OCI_CRED_PROXY      3                        /* proxy authentication */
-#define OCI_CRED_RESERVED_1 4                                    /* reserved */
-#define OCI_CRED_RESERVED_2 5                                    /* reserved */
-/*---------------------------------------------------------------------------*/
-
-/*------------------------Error Return Values--------------------------------*/
-#define OCI_SUCCESS 0                      /* maps to SQL_SUCCESS of SAG CLI */
-#define OCI_SUCCESS_WITH_INFO 1             /* maps to SQL_SUCCESS_WITH_INFO */
-#define OCI_RESERVED_FOR_INT_USE 200                            /* reserved */ 
-#define OCI_NO_DATA 100                               /* maps to SQL_NO_DATA */
-#define OCI_ERROR -1                                    /* maps to SQL_ERROR */
-#define OCI_INVALID_HANDLE -2                  /* maps to SQL_INVALID_HANDLE */
-#define OCI_NEED_DATA 99                            /* maps to SQL_NEED_DATA */
-#define OCI_STILL_EXECUTING -3123                   /* OCI would block error */
-/*---------------------------------------------------------------------------*/
-
-/*--------------------- User Callback Return Values -------------------------*/
-#define OCI_CONTINUE -24200    /* Continue with the body of the OCI function */
-#define OCI_ROWCBK_DONE   -24201              /* done with user row callback */
-/*---------------------------------------------------------------------------*/
-
-/*------------------DateTime and Interval check Error codes------------------*/
-
-/* DateTime Error Codes used by OCIDateTimeCheck() */
-#define   OCI_DT_INVALID_DAY         0x1                          /* Bad day */
-#define   OCI_DT_DAY_BELOW_VALID     0x2      /* Bad DAy Low/high bit (1=low)*/
-#define   OCI_DT_INVALID_MONTH       0x4                       /*  Bad MOnth */
-#define   OCI_DT_MONTH_BELOW_VALID   0x8   /* Bad MOnth Low/high bit (1=low) */
-#define   OCI_DT_INVALID_YEAR        0x10                        /* Bad YeaR */
-#define   OCI_DT_YEAR_BELOW_VALID    0x20  /*  Bad YeaR Low/high bit (1=low) */
-#define   OCI_DT_INVALID_HOUR        0x40                       /*  Bad HouR */
-#define   OCI_DT_HOUR_BELOW_VALID    0x80   /* Bad HouR Low/high bit (1=low) */
-#define   OCI_DT_INVALID_MINUTE      0x100                     /* Bad MiNute */
-#define   OCI_DT_MINUTE_BELOW_VALID  0x200 /*Bad MiNute Low/high bit (1=low) */
-#define   OCI_DT_INVALID_SECOND      0x400                    /*  Bad SeCond */
-#define   OCI_DT_SECOND_BELOW_VALID  0x800  /*bad second Low/high bit (1=low)*/
-#define   OCI_DT_DAY_MISSING_FROM_1582 0x1000     
-                                 /*  Day is one of those "missing" from 1582 */
-#define   OCI_DT_YEAR_ZERO           0x2000       /* Year may not equal zero */
-#define   OCI_DT_INVALID_TIMEZONE    0x4000                 /*  Bad Timezone */
-#define   OCI_DT_INVALID_FORMAT      0x8000         /* Bad date format input */
-
-
-/* Interval Error Codes used by OCIInterCheck() */
-#define   OCI_INTER_INVALID_DAY         0x1                       /* Bad day */
-#define   OCI_INTER_DAY_BELOW_VALID     0x2  /* Bad DAy Low/high bit (1=low) */
-#define   OCI_INTER_INVALID_MONTH       0x4                     /* Bad MOnth */
-#define   OCI_INTER_MONTH_BELOW_VALID   0x8 /*Bad MOnth Low/high bit (1=low) */
-#define   OCI_INTER_INVALID_YEAR        0x10                     /* Bad YeaR */
-#define   OCI_INTER_YEAR_BELOW_VALID    0x20 /*Bad YeaR Low/high bit (1=low) */
-#define   OCI_INTER_INVALID_HOUR        0x40                     /* Bad HouR */
-#define   OCI_INTER_HOUR_BELOW_VALID    0x80 /*Bad HouR Low/high bit (1=low) */
-#define   OCI_INTER_INVALID_MINUTE      0x100                  /* Bad MiNute */
-#define   OCI_INTER_MINUTE_BELOW_VALID  0x200 
-                                            /*Bad MiNute Low/high bit(1=low) */
-#define   OCI_INTER_INVALID_SECOND      0x400                  /* Bad SeCond */
-#define   OCI_INTER_SECOND_BELOW_VALID  0x800   
-                                            /*bad second Low/high bit(1=low) */
-#define   OCI_INTER_INVALID_FRACSEC     0x1000      /* Bad Fractional second */
-#define   OCI_INTER_FRACSEC_BELOW_VALID 0x2000  
-                                           /* Bad fractional second Low/High */
-
-
-/*------------------------Parsing Syntax Types-------------------------------*/
-#define OCI_V7_SYNTAX 2       /* V815 language - for backwards compatibility */
-#define OCI_V8_SYNTAX 3       /* V815 language - for backwards compatibility */
-#define OCI_NTV_SYNTAX 1    /* Use what so ever is the native lang of server */
-                     /* these values must match the values defined in kpul.h */
-/*---------------------------------------------------------------------------*/
-
-/*------------------------Scrollable Cursor Fetch Options------------------- 
- * For non-scrollable cursor, the only valid (and default) orientation is 
- * OCI_FETCH_NEXT
- */
-#define OCI_FETCH_CURRENT 0x01               /* refetching current position  */
-#define OCI_FETCH_NEXT 0x02                                      /* next row */
-#define OCI_FETCH_FIRST 0x04                  /* first row of the result set */
-#define OCI_FETCH_LAST 0x08                /* the last row of the result set */
-#define OCI_FETCH_PRIOR 0x10         /* the previous row relative to current */
-#define OCI_FETCH_ABSOLUTE 0x20                /* absolute offset from first */
-#define OCI_FETCH_RELATIVE 0x40                /* offset relative to current */
-#define OCI_FETCH_RESERVED_1 0x80                                /* reserved */
-
-/*---------------------------------------------------------------------------*/
-
-/*------------------------Bind and Define Options----------------------------*/
-#define OCI_SB2_IND_PTR       0x00000001                           /* unused */
-#define OCI_DATA_AT_EXEC      0x00000002             /* data at execute time */
-#define OCI_DYNAMIC_FETCH     0x00000002                /* fetch dynamically */
-#define OCI_PIECEWISE         0x00000004          /* piecewise DMLs or fetch */
-#define OCI_DEFINE_RESERVED_1 0x00000008                         /* reserved */
-#define OCI_BIND_RESERVED_2   0x00000010                         /* reserved */
-#define OCI_DEFINE_RESERVED_2 0x00000020                         /* reserved */
-#define OCI_BIND_SOFT         0x00000040              /* soft bind or define */
-#define OCI_DEFINE_SOFT       0x00000080              /* soft bind or define */
-/*---------------------------------------------------------------------------*/
-
-/*-----------------------------  Various Modes ------------------------------*/
-#define OCI_DEFAULT         0x00000000 
-                          /* the default value for parameters and attributes */
-/*-------------OCIInitialize Modes / OCICreateEnvironment Modes -------------*/
-#define OCI_THREADED        0x00000001      /* appl. in threaded environment */
-#define OCI_OBJECT          0x00000002  /* application in object environment */
-#define OCI_EVENTS          0x00000004  /* application is enabled for events */
-#define OCI_RESERVED1       0x00000008                           /* reserved */
-#define OCI_SHARED          0x00000010  /* the application is in shared mode */
-#define OCI_RESERVED2       0x00000020                           /* reserved */
-/* The following *TWO* are only valid for OCICreateEnvironment call */
-#define OCI_NO_UCB          0x00000040 /* No user callback called during ini */
-#define OCI_NO_MUTEX        0x00000080 /* the environment handle will not be */
-                                         /*  protected by a mutex internally */
-#define OCI_SHARED_EXT      0x00000100              /* Used for shared forms */
-/************************** 0x00000200 free **********************************/
-#define OCI_ALWAYS_BLOCKING 0x00000400    /* all connections always blocking */
-/************************** 0x00000800 free **********************************/
-#define OCI_USE_LDAP        0x00001000            /* allow  LDAP connections */
-#define OCI_REG_LDAPONLY    0x00002000              /* only register to LDAP */
-#define OCI_UTF16           0x00004000        /* mode for all UTF16 metadata */
-#define OCI_AFC_PAD_ON      0x00008000 
-                             /* turn on AFC blank padding when rlenp present */
-#define OCI_ENVCR_RESERVED3 0x00010000                           /* reserved */
-#define OCI_NEW_LENGTH_SEMANTICS  0x00020000   /* adopt new length semantics */
-       /* the new length semantics, always bytes, is used by OCIEnvNlsCreate */
-#define OCI_NO_MUTEX_STMT   0x00040000           /* Do not mutex stmt handle */
-#define OCI_MUTEX_ENV_ONLY  0x00080000  /* Mutex only the environment handle */
-#define OCI_STM_RESERVED4   0x00100000                           /* reserved */
-
-/*---------------------------------------------------------------------------*/
-/*------------------------OCIConnectionpoolCreate Modes----------------------*/
-
-#define OCI_CPOOL_REINITIALIZE 0x111
-
-/*---------------------------------------------------------------------------*/
-/*--------------------------------- OCILogon2 Modes -------------------------*/
-
-#define OCI_LOGON2_SPOOL       0x0001     /* Use session pool */
-#define OCI_LOGON2_CPOOL       OCI_CPOOL  /* Use connection pool */
-#define OCI_LOGON2_STMTCACHE   0x0004     /* Use Stmt Caching */
-#define OCI_LOGON2_PROXY       0x0008     /* Proxy authentiaction */
-
-/*---------------------------------------------------------------------------*/
-/*------------------------- OCISessionPoolCreate Modes ----------------------*/
-
-#define OCI_SPC_REINITIALIZE 0x0001   /* Reinitialize the session pool */
-#define OCI_SPC_HOMOGENEOUS  0x0002   /* Session pool is homogeneneous */
-#define OCI_SPC_STMTCACHE    0x0004   /* Session pool has stmt cache */
-
-/*---------------------------------------------------------------------------*/
-/*--------------------------- OCISessionGet Modes ---------------------------*/
-
-#define OCI_SESSGET_SPOOL      0x0001     /* SessionGet called in SPOOL mode */
-#define OCI_SESSGET_CPOOL      OCI_CPOOL  /* SessionGet called in CPOOL mode */
-#define OCI_SESSGET_STMTCACHE  0x0004                 /* Use statement cache */
-#define OCI_SESSGET_CREDPROXY  0x0008     /* SessionGet called in proxy mode */
-#define OCI_SESSGET_CREDEXT    0x0010     
-#define OCI_SESSGET_SPOOL_MATCHANY 0x0020
-/*---------------------------------------------------------------------------*/
-/*------------------------ATTR Values for Session Pool-----------------------*/
-/* Attribute values for OCI_ATTR_SPOOL_GETMODE */
-#define OCI_SPOOL_ATTRVAL_WAIT     0         /* block till you get a session */
-#define OCI_SPOOL_ATTRVAL_NOWAIT   1    /* error out if no session avaliable */
-#define OCI_SPOOL_ATTRVAL_FORCEGET 2  /* get session even if max is exceeded */
-
-/*---------------------------------------------------------------------------*/
-/*--------------------------- OCISessionRelease Modes -----------------------*/
-
-#define OCI_SESSRLS_DROPSESS 0x0001                    /* Drop the Session */
-#define OCI_SESSRLS_RETAG    0x0002                   /* Retag the session */
-
-/*---------------------------------------------------------------------------*/
-/*----------------------- OCISessionPoolDestroy Modes -----------------------*/
-
-#define OCI_SPD_FORCE        0x0001       /* Force the sessions to terminate. 
-                                             Even if there are some busy 
-                                             sessions close them */
- 
-/*---------------------------------------------------------------------------*/
-/*----------------------------- Statement States ----------------------------*/
-
-#define OCI_STMT_STATE_INITIALIZED  0x0001
-#define OCI_STMT_STATE_EXECUTED     0x0002
-#define OCI_STMT_STATE_END_OF_FETCH 0x0003
-
-/*---------------------------------------------------------------------------*/
-
-/*----------------------------- OCIMemStats Modes ---------------------------*/
-#define OCI_MEM_INIT        0x01 
-#define OCI_MEM_CLN         0x02 
-#define OCI_MEM_FLUSH       0x04 
-#define OCI_DUMP_HEAP       0x80
-
-#define OCI_CLIENT_STATS    0x10 
-#define OCI_SERVER_STATS    0x20 
-
-/*----------------------------- OCIEnvInit Modes ----------------------------*/
-/* NOTE: NO NEW MODES SHOULD BE ADDED HERE BECAUSE THE RECOMMENDED METHOD 
- * IS TO USE THE NEW OCICreateEnvironment MODES.
- */
-#define OCI_ENV_NO_UCB 0x01         /* A user callback will not be called in
-                                       OCIEnvInit() */
-#define OCI_ENV_NO_MUTEX 0x08 /* the environment handle will not be protected
-                                 by a mutex internally */
-
-/*---------------------------------------------------------------------------*/
-
-/*------------------------ Prepare Modes ------------------------------------*/
-#define OCI_NO_SHARING        0x01      /* turn off statement handle sharing */
-#define OCI_PREP_RESERVED_1   0x02                               /* reserved */
-#define OCI_PREP_AFC_PAD_ON   0x04          /* turn on blank padding for AFC */
-#define OCI_PREP_AFC_PAD_OFF  0x08         /* turn off blank padding for AFC */
-/*---------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------*/
-
-/*----------------------- Execution Modes -----------------------------------*/
-#define OCI_BATCH_MODE        0x01  /* batch the oci statement for execution */
-#define OCI_EXACT_FETCH       0x02         /* fetch the exact rows specified */
-#define OCI_KEEP_FETCH_STATE  0x04                                 /* unused */
-#define OCI_STMT_SCROLLABLE_READONLY 0x08     /* if result set is scrollable */
-#define OCI_DESCRIBE_ONLY     0x10            /* only describe the statement */
-#define OCI_COMMIT_ON_SUCCESS 0x20        /* commit, if successful execution */
-#define OCI_NON_BLOCKING      0x40                           /* non-blocking */
-#define OCI_BATCH_ERRORS      0x80             /* batch errors in array dmls */
-#define OCI_PARSE_ONLY        0x100              /* only parse the statement */
-#define OCI_EXACT_FETCH_RESERVED_1 0x200                         /* reserved */
-#define OCI_SHOW_DML_WARNINGS 0x400   
-         /* return OCI_SUCCESS_WITH_INFO for delete/update w/no where clause */
-#define OCI_EXEC_RESERVED_2   0x800                              /* reserved */
-#define OCI_DESC_RESERVED_1   0x1000                             /* reserved */
-#define OCI_EXEC_RESERVED_3   0x2000                             /* reserved */
-#define OCI_EXEC_RESERVED_4   0x4000                             /* reserved */  
-
-/*---------------------------------------------------------------------------*/
-
-/*------------------------Authentication Modes-------------------------------*/
-#define OCI_MIGRATE         0x0001                /* migratable auth context */
-#define OCI_SYSDBA          0x0002               /* for SYSDBA authorization */
-#define OCI_SYSOPER         0x0004              /* for SYSOPER authorization */
-#define OCI_PRELIM_AUTH     0x0008          /* for preliminary authorization */
-#define OCIP_ICACHE         0x0010 /* Private OCI cache mode to notify cache */
-#define OCI_AUTH_RESERVED_1 0x0020                               /* reserved */
-#define OCI_STMT_CACHE      0x0040                /* enable OCI Stmt Caching */
-
-/*---------------------------------------------------------------------------*/
-
-/*------------------------Session End Modes----------------------------------*/
-#define OCI_SESSEND_RESERVED_1 0x0001                            /* reserved */
-/*---------------------------------------------------------------------------*/
-
-/*------------------------Attach Modes---------------------------------------*/
-
-/* The following attach modes are the same as the UPI modes defined in 
- * UPIDEF.H.  Do not use these values externally.
- */
-
-#define OCI_FASTPATH         0x0010              /* Attach in fast path mode */
-#define OCI_ATCH_RESERVED_1  0x0020                              /* reserved */
-#define OCI_ATCH_RESERVED_2  0x0080                              /* reserved */
-#define OCI_ATCH_RESERVED_3  0x0100                              /* reserved */
-#define OCI_CPOOL            0x0200  /* Attach using server handle from pool */
-#define OCI_ATCH_RESERVED_4  0x0400                              /* reserved */
-
-/*---------------------OCIStmtPrepare2 Modes---------------------------------*/
-#define OCI_PREP2_CACHE_SEARCHONLY    0x0010                  /* ONly Search */
-#define OCI_PREP2_GET_PLSQL_WARNINGS  0x0020         /* Get PL/SQL warnings  */
-
-/*---------------------OCIStmtRelease Modes----------------------------------*/
-#define OCI_STRLS_CACHE_DELETE      0x0010              /* Delete from Cache */
-
-/*-----------------------------End Various Modes ----------------------------*/
-
-/*------------------------Piece Information----------------------------------*/
-#define OCI_PARAM_IN 0x01                                    /* in parameter */
-#define OCI_PARAM_OUT 0x02                                  /* out parameter */
-/*---------------------------------------------------------------------------*/
-
-/*------------------------ Transaction Start Flags --------------------------*/
-/* NOTE: OCI_TRANS_JOIN and OCI_TRANS_NOMIGRATE not supported in 8.0.X       */
-#define OCI_TRANS_NEW          0x00000001 /* starts a new transaction branch */
-#define OCI_TRANS_JOIN         0x00000002    /* join an existing transaction */
-#define OCI_TRANS_RESUME       0x00000004         /* resume this transaction */
-#define OCI_TRANS_STARTMASK    0x000000ff
-
-#define OCI_TRANS_READONLY     0x00000100   /* starts a readonly transaction */
-#define OCI_TRANS_READWRITE    0x00000200 /* starts a read-write transaction */
-#define OCI_TRANS_SERIALIZABLE 0x00000400
-                                        /* starts a serializable transaction */
-#define OCI_TRANS_ISOLMASK     0x0000ff00
-
-#define OCI_TRANS_LOOSE        0x00010000        /* a loosely coupled branch */
-#define OCI_TRANS_TIGHT        0x00020000        /* a tightly coupled branch */
-#define OCI_TRANS_TYPEMASK     0x000f0000
-
-#define OCI_TRANS_NOMIGRATE    0x00100000      /* non migratable transaction */
-#define OCI_TRANS_SEPARABLE    0x00200000  /* separable transaction (8.1.6+) */
-
-
-/*---------------------------------------------------------------------------*/
-
-/*------------------------ Transaction End Flags ----------------------------*/
-#define OCI_TRANS_TWOPHASE      0x01000000           /* use two phase commit */
-/*---------------------------------------------------------------------------*/
-
-/*------------------------- AQ Constants ------------------------------------
- * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
- * The following constants must match the PL/SQL dbms_aq constants
- * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
- */
-/* ------------------------- Visibility flags -------------------------------*/
-#define OCI_ENQ_IMMEDIATE       1   /* enqueue is an independent transaction */
-#define OCI_ENQ_ON_COMMIT       2  /* enqueue is part of current transaction */
-
-/* ----------------------- Dequeue mode flags -------------------------------*/
-#define OCI_DEQ_BROWSE          1   /* read message without acquiring a lock */
-#define OCI_DEQ_LOCKED          2   /* read and obtain write lock on message */
-#define OCI_DEQ_REMOVE          3          /* read the message and delete it */
-#define OCI_DEQ_REMOVE_NODATA   4    /* delete message w'o returning payload */
-#define OCI_DEQ_GETSIG          5                      /* get signature only */
-
-/* ----------------- Dequeue navigation flags -------------------------------*/
-#define OCI_DEQ_FIRST_MSG        1     /* get first message at head of queue */
-#define OCI_DEQ_NEXT_MSG         3         /* next message that is available */
-#define OCI_DEQ_NEXT_TRANSACTION 2    /* get first message of next txn group */
-#define OCI_DEQ_MULT_TRANSACTION 5        /* array dequeue across txn groups */
-
-/* ----------------- Dequeue Option Reserved flags ------------------------- */
-#define OCI_DEQ_RESERVED_1      0x000001
-
-/* --------------------- Message states -------------------------------------*/
-#define OCI_MSG_WAITING         1 /* the message delay has not yet completed */
-#define OCI_MSG_READY           0    /* the message is ready to be processed */
-#define OCI_MSG_PROCESSED       2          /* the message has been processed */
-#define OCI_MSG_EXPIRED         3    /* message has moved to exception queue */
-
-/* --------------------- Sequence deviation ---------------------------------*/
-#define OCI_ENQ_BEFORE          2  /* enqueue message before another message */
-#define OCI_ENQ_TOP             3     /* enqueue message before all messages */
-
-/* ------------------------- Visibility flags -------------------------------*/
-#define OCI_DEQ_IMMEDIATE       1   /* dequeue is an independent transaction */
-#define OCI_DEQ_ON_COMMIT       2  /* dequeue is part of current transaction */
-
-/* ------------------------ Wait --------------------------------------------*/
-#define OCI_DEQ_WAIT_FOREVER    -1   /* wait forever if no message available */
-#define OCI_DEQ_NO_WAIT         0  /* do not wait if no message is available */
-
-/* ------------------------ Delay -------------------------------------------*/
-#define OCI_MSG_NO_DELAY        0        /* message is available immediately */
-
-/* ------------------------- Expiration -------------------------------------*/
-#define OCI_MSG_NO_EXPIRATION -1                /* message will never expire */
-
-/* ------------------------- Reserved ---------------------------------------*/
-#define OCI_AQ_RESERVED_1      0x0002
-#define OCI_AQ_RESERVED_2      0x0004
-#define OCI_AQ_RESERVED_3      0x0008
-
-/* -------------------------- END AQ Constants ----------------------------- */
-
-/* --------------------END DateTime and Interval Constants ------------------*/
-
-/*-----------------------Object Types----------------------------------------*/
-/*-----------Object Types **** Not to be Used **** --------------------------*/
-/* Deprecated */
-#define OCI_OTYPE_UNK           0
-#define OCI_OTYPE_TABLE         1
-#define OCI_OTYPE_VIEW          2
-#define OCI_OTYPE_SYN           3
-#define OCI_OTYPE_PROC          4
-#define OCI_OTYPE_FUNC          5
-#define OCI_OTYPE_PKG           6
-#define OCI_OTYPE_STMT          7
-/*---------------------------------------------------------------------------*/
-
-/*=======================Describe Handle Parameter Attributes ===============*/
-/* 
-   These attributes are orthogonal to the other set of attributes defined 
-   above.  These attrubutes are tobe used only for the desscribe handle 
-*/
-/*===========================================================================*/
-/* Attributes common to Columns and Stored Procs */
-#define OCI_ATTR_DATA_SIZE      1                /* maximum size of the data */
-#define OCI_ATTR_DATA_TYPE      2     /* the SQL type of the column/argument */
-#define OCI_ATTR_DISP_SIZE      3                        /* the display size */
-#define OCI_ATTR_NAME           4         /* the name of the column/argument */
-#define OCI_ATTR_PRECISION      5                /* precision if number type */
-#define OCI_ATTR_SCALE          6                    /* scale if number type */
-#define OCI_ATTR_IS_NULL        7                            /* is it null ? */
-#define OCI_ATTR_TYPE_NAME      8
-  /* name of the named data type or a package name for package private types */
-#define OCI_ATTR_SCHEMA_NAME    9             /* the schema name */
-#define OCI_ATTR_SUB_NAME       10      /* type name if package private type */
-#define OCI_ATTR_POSITION       11
-                    /* relative position of col/arg in the list of cols/args */
-/* complex object retrieval parameter attributes */
-#define OCI_ATTR_COMPLEXOBJECTCOMP_TYPE         50 
-#define OCI_ATTR_COMPLEXOBJECTCOMP_TYPE_LEVEL   51
-#define OCI_ATTR_COMPLEXOBJECT_LEVEL            52
-#define OCI_ATTR_COMPLEXOBJECT_COLL_OUTOFLINE   53
-
-/* Only Columns */
-#define OCI_ATTR_DISP_NAME      100                      /* the display name */
-
-/*Only Stored Procs */
-#define OCI_ATTR_OVERLOAD       210           /* is this position overloaded */
-#define OCI_ATTR_LEVEL          211            /* level for structured types */
-#define OCI_ATTR_HAS_DEFAULT    212                   /* has a default value */
-#define OCI_ATTR_IOMODE         213                         /* in, out inout */
-#define OCI_ATTR_RADIX          214                       /* returns a radix */
-#define OCI_ATTR_NUM_ARGS       215             /* total number of arguments */
-
-/* only named type attributes */
-#define OCI_ATTR_TYPECODE                  216       /* object or collection */
-#define OCI_ATTR_COLLECTION_TYPECODE       217     /* varray or nested table */
-#define OCI_ATTR_VERSION                   218      /* user assigned version */
-#define OCI_ATTR_IS_INCOMPLETE_TYPE        219 /* is this an incomplete type */
-#define OCI_ATTR_IS_SYSTEM_TYPE            220              /* a system type */
-#define OCI_ATTR_IS_PREDEFINED_TYPE        221          /* a predefined type */
-#define OCI_ATTR_IS_TRANSIENT_TYPE         222           /* a transient type */
-#define OCI_ATTR_IS_SYSTEM_GENERATED_TYPE  223      /* system generated type */
-#define OCI_ATTR_HAS_NESTED_TABLE          224 /* contains nested table attr */
-#define OCI_ATTR_HAS_LOB                   225        /* has a lob attribute */
-#define OCI_ATTR_HAS_FILE                  226       /* has a file attribute */
-#define OCI_ATTR_COLLECTION_ELEMENT        227 /* has a collection attribute */
-#define OCI_ATTR_NUM_TYPE_ATTRS            228  /* number of attribute types */
-#define OCI_ATTR_LIST_TYPE_ATTRS           229    /* list of type attributes */
-#define OCI_ATTR_NUM_TYPE_METHODS          230     /* number of type methods */
-#define OCI_ATTR_LIST_TYPE_METHODS         231       /* list of type methods */
-#define OCI_ATTR_MAP_METHOD                232         /* map method of type */
-#define OCI_ATTR_ORDER_METHOD              233       /* order method of type */
-
-/* only collection element */
-#define OCI_ATTR_NUM_ELEMS                 234         /* number of elements */
-
-/* only type methods */
-#define OCI_ATTR_ENCAPSULATION             235        /* encapsulation level */
-#define OCI_ATTR_IS_SELFISH                236             /* method selfish */
-#define OCI_ATTR_IS_VIRTUAL                237                    /* virtual */
-#define OCI_ATTR_IS_INLINE                 238                     /* inline */
-#define OCI_ATTR_IS_CONSTANT               239                   /* constant */
-#define OCI_ATTR_HAS_RESULT                240                 /* has result */
-#define OCI_ATTR_IS_CONSTRUCTOR            241                /* constructor */
-#define OCI_ATTR_IS_DESTRUCTOR             242                 /* destructor */
-#define OCI_ATTR_IS_OPERATOR               243                   /* operator */
-#define OCI_ATTR_IS_MAP                    244               /* a map method */
-#define OCI_ATTR_IS_ORDER                  245               /* order method */
-#define OCI_ATTR_IS_RNDS                   246  /* read no data state method */
-#define OCI_ATTR_IS_RNPS                   247      /* read no process state */
-#define OCI_ATTR_IS_WNDS                   248 /* write no data state method */
-#define OCI_ATTR_IS_WNPS                   249     /* write no process state */
-
-#define OCI_ATTR_DESC_PUBLIC               250              /* public object */
-
-/* Object Cache Enhancements : attributes for User Constructed Instances     */
-#define OCI_ATTR_CACHE_CLIENT_CONTEXT      251
-#define OCI_ATTR_UCI_CONSTRUCT             252
-#define OCI_ATTR_UCI_DESTRUCT              253
-#define OCI_ATTR_UCI_COPY                  254
-#define OCI_ATTR_UCI_PICKLE                255
-#define OCI_ATTR_UCI_UNPICKLE              256
-#define OCI_ATTR_UCI_REFRESH               257
-
-/* for type inheritance */
-#define OCI_ATTR_IS_SUBTYPE                258
-#define OCI_ATTR_SUPERTYPE_SCHEMA_NAME     259
-#define OCI_ATTR_SUPERTYPE_NAME            260
-
-/* for schemas */
-#define OCI_ATTR_LIST_OBJECTS              261  /* list of objects in schema */
-
-/* for database */
-#define OCI_ATTR_NCHARSET_ID               262                /* char set id */
-#define OCI_ATTR_LIST_SCHEMAS              263            /* list of schemas */
-#define OCI_ATTR_MAX_PROC_LEN              264       /* max procedure length */
-#define OCI_ATTR_MAX_COLUMN_LEN            265     /* max column name length */
-#define OCI_ATTR_CURSOR_COMMIT_BEHAVIOR    266     /* cursor commit behavior */
-#define OCI_ATTR_MAX_CATALOG_NAMELEN       267         /* catalog namelength */
-#define OCI_ATTR_CATALOG_LOCATION          268           /* catalog location */
-#define OCI_ATTR_SAVEPOINT_SUPPORT         269          /* savepoint support */
-#define OCI_ATTR_NOWAIT_SUPPORT            270             /* nowait support */
-#define OCI_ATTR_AUTOCOMMIT_DDL            271             /* autocommit DDL */
-#define OCI_ATTR_LOCKING_MODE              272               /* locking mode */
-
-/* for externally initialized context */
-#define OCI_ATTR_APPCTX_SIZE               273 /* count of context to be init*/
-#define OCI_ATTR_APPCTX_LIST               274 /* count of context to be init*/
-#define OCI_ATTR_APPCTX_NAME               275 /* name  of context to be init*/
-#define OCI_ATTR_APPCTX_ATTR               276 /* attr  of context to be init*/
-#define OCI_ATTR_APPCTX_VALUE              277 /* value of context to be init*/
-
-/* for client id propagation */
-#define OCI_ATTR_CLIENT_IDENTIFIER         278   /* value of client id to set*/
-
-/* for inheritance - part 2 */
-#define OCI_ATTR_IS_FINAL_TYPE             279            /* is final type ? */
-#define OCI_ATTR_IS_INSTANTIABLE_TYPE      280     /* is instantiable type ? */
-#define OCI_ATTR_IS_FINAL_METHOD           281          /* is final method ? */
-#define OCI_ATTR_IS_INSTANTIABLE_METHOD    282   /* is instantiable method ? */
-#define OCI_ATTR_IS_OVERRIDING_METHOD      283     /* is overriding method ? */
-
-/* slot 284 available */
-
-#define OCI_ATTR_CHAR_USED                 285      /* char length semantics */
-#define OCI_ATTR_CHAR_SIZE                 286                /* char length */
-
-/* SQLJ support */
-#define OCI_ATTR_IS_JAVA_TYPE              287 /* is java implemented type ? */
-
-/* N-Tier support */
-#define OCI_ATTR_DISTINGUISHED_NAME        300        /* use DN as user name */
-#define OCI_ATTR_KERBEROS_TICKET           301   /* Kerberos ticket as cred. */
- 
-/* for multilanguage debugging */
-#define OCI_ATTR_ORA_DEBUG_JDWP            302   /* ORA_DEBUG_JDWP attribute */
-
-#define OCI_ATTR_RESERVED_14               303                   /* reserved */
-
-
-/*---------------------------End Describe Handle Attributes -----------------*/
-
-/*------------- Supported Values for Direct Path Date cache -----------------*/
-#define OCI_ATTR_DIRPATH_DCACHE_NUM        303         /* date cache entries */
-#define OCI_ATTR_DIRPATH_DCACHE_SIZE       304           /* date cache limit */
-#define OCI_ATTR_DIRPATH_DCACHE_MISSES     305          /* date cache misses */
-#define OCI_ATTR_DIRPATH_DCACHE_HITS       306            /* date cache hits */
-#define OCI_ATTR_DIRPATH_DCACHE_DISABLE    307 /* on set: disable datecache 
-                                                * on overflow.
-                                                * on get: datecache disabled? 
-                                                * could be due to overflow
-                                                * or others                  */
-
-/* ----------------------- Session Pool Attributes ------------------------- */
-#define OCI_ATTR_SPOOL_TIMEOUT              308           /* session timeout */
-#define OCI_ATTR_SPOOL_GETMODE              309          /* session get mode */
-#define OCI_ATTR_SPOOL_BUSY_COUNT           310        /* busy session count */
-#define OCI_ATTR_SPOOL_OPEN_COUNT           311        /* open session count */
-#define OCI_ATTR_SPOOL_MIN                  312         /* min session count */
-#define OCI_ATTR_SPOOL_MAX                  313         /* max session count */
-#define OCI_ATTR_SPOOL_INCR                 314   /* session increment count */
-#define OCI_ATTR_SPOOL_STMTCACHESIZE        208   /*Stmt cache size of pool  */
-/*------------------------------End Session Pool Attributes -----------------*/
-/*---------------------------- For XML Types ------------------------------- */
-/* For table, view and column */
-#define OCI_ATTR_IS_XMLTYPE          315         /* Is the type an XML type? */
-#define OCI_ATTR_XMLSCHEMA_NAME      316               /* Name of XML Schema */
-#define OCI_ATTR_XMLELEMENT_NAME     317              /* Name of XML Element */
-#define OCI_ATTR_XMLSQLTYPSCH_NAME   318    /* SQL type's schema for XML Ele */
-#define OCI_ATTR_XMLSQLTYPE_NAME     319     /* Name of SQL type for XML Ele */
-#define OCI_ATTR_XMLTYPE_STORED_OBJ  320       /* XML type stored as object? */
-
-/*---------------------------- For Subtypes ------------------------------- */
-/* For type */
-#define OCI_ATTR_HAS_SUBTYPES        321                    /* Has subtypes? */
-#define OCI_ATTR_NUM_SUBTYPES        322               /* Number of subtypes */
-#define OCI_ATTR_LIST_SUBTYPES       323                 /* List of subtypes */
-
-/* XML flag */
-#define OCI_ATTR_XML_HRCHY_ENABLED   324               /* hierarchy enabled? */
-
-/* Method flag */
-#define OCI_ATTR_IS_OVERRIDDEN_METHOD 325           /* Method is overridden? */
-
-/*------------- Attributes for 10i Updates to the DirPath API ---------------*/
-#define OCI_ATTR_DIRPATH_RESERVED_7         326                 /* reserved */
-#define OCI_ATTR_DIRPATH_RESERVED_8         327                 /* reserved */
-#define OCI_ATTR_DIRPATH_CONVERT            328 /* stream conversion needed? */
-#define OCI_ATTR_DIRPATH_BADROW             329        /* info about bad row */
-#define OCI_ATTR_DIRPATH_BADROW_LENGTH      330    /* length of bad row info */
-#define OCI_ATTR_DIRPATH_WRITE_ORDER        331         /* column fill order */
-#define OCI_ATTR_DIRPATH_GRANULE_SIZE       332   /* granule size for unload */
-#define OCI_ATTR_DIRPATH_GRANULE_OFFSET     333    /* offset to last granule */
-#define OCI_ATTR_DIRPATH_RESERVED_1         334                  /* reserved */
-#define OCI_ATTR_DIRPATH_RESERVED_2         335                  /* reserved */
-
-/*------------- Attributes for 10i Distributed Objects ----------------------*/
-#define OCI_ATTR_OBJ_SUBS                   336 /* obj col/tab substitutable */
-
-/*------ Attributes for 10i DirPathAPI conversion (NLS lang, terr, cs) ------*/
-#define OCI_ATTR_DIRPATH_RESERVED_3         337                  /* reserved */
-#define OCI_ATTR_DIRPATH_RESERVED_4         338                  /* reserved */
-
-
-/*---------- Attributes for 10i XADFIELD (NLS language, territory -----------*/
-#define OCI_ATTR_XADFIELD_RESERVED_1        339                  /* reserved */
-#define OCI_ATTR_XADFIELD_RESERVED_2        340                  /* reserved */
-/*------------- Kerberos Secure Client Identifier ---------------------------*/
-#define OCI_ATTR_KERBEROS_CID               341 /* Kerberos db service ticket*/
-
-
-/*------------------------ Attributes for Rules objects ---------------------*/
-#define OCI_ATTR_CONDITION                  342            /* rule condition */
-#define OCI_ATTR_COMMENT                    343                   /* comment */
-#define OCI_ATTR_VALUE                      344             /* Anydata value */
-#define OCI_ATTR_EVAL_CONTEXT_OWNER         345        /* eval context owner */
-#define OCI_ATTR_EVAL_CONTEXT_NAME          346         /* eval context name */
-#define OCI_ATTR_EVALUATION_FUNCTION        347        /* eval function name */
-#define OCI_ATTR_VAR_TYPE                   348             /* variable type */
-#define OCI_ATTR_VAR_VALUE_FUNCTION         349   /* variable value function */
-#define OCI_ATTR_VAR_METHOD_FUNCTION        350  /* variable method function */
-#define OCI_ATTR_ACTION_CONTEXT             351            /* action context */
-#define OCI_ATTR_LIST_TABLE_ALIASES         352     /* list of table aliases */
-#define OCI_ATTR_LIST_VARIABLE_TYPES        353    /* list of variable types */
-#define OCI_ATTR_TABLE_NAME                 356                /* table name */
-
-#define OCI_ATTR_DIRPATH_RESERVED_5         357                  /* reserved */
-#define OCI_ATTR_DIRPATH_RESERVED_6         358                  /* reserved */
-
-#define OCI_ATTR_DIRPATH_LOCK_WAIT          359    /* wait for lock in dpapi */
-
-#define OCI_ATTR_MESSAGE_CSCN               360              /* message cscn */
-#define OCI_ATTR_MESSAGE_DSCN               361              /* message dscn */
-
-/*--------------------- Audit Session ID ------------------------------------*/
-#define OCI_ATTR_AUDIT_SESSION_ID           362          /* Audit session ID */
-
-/*--------------------- Kerberos TGT Keys -----------------------------------*/
-#define OCI_ATTR_KERBEROS_KEY               363  /* n-tier Kerberos cred key */
-#define OCI_ATTR_KERBEROS_CID_KEY           364    /* SCID Kerberos cred key */
-
-
-#define OCI_ATTR_TRANSACTION_NO             365         /* AQ enq txn number */
-
-/*----------------------- Attributes for End To End Tracing -----------------*/
-#define OCI_ATTR_MODULE                     366        /* module for tracing */
-#define OCI_ATTR_ACTION                     367        /* action for tracing */
-#define OCI_ATTR_CLIENT_INFO                368               /* client info */
-#define OCI_ATTR_COLLECT_CALL_TIME          369         /* collect call time */
-#define OCI_ATTR_CALL_TIME                  370         /* extract call time */
-#define OCI_ATTR_ECONTEXT_ID                371      /* execution-id context */
-#define OCI_ATTR_ECONTEXT_SEQ               372  /*execution-id sequence num */
-
-
-/*---------------- Describe Handle Parameter Attribute Values ---------------*/
-
-/* OCI_ATTR_CURSOR_COMMIT_BEHAVIOR */
-#define OCI_CURSOR_OPEN   0 
-#define OCI_CURSOR_CLOSED 1
-
-/* OCI_ATTR_CATALOG_LOCATION */
-#define OCI_CL_START 0
-#define OCI_CL_END   1
-
-/* OCI_ATTR_SAVEPOINT_SUPPORT */
-#define OCI_SP_SUPPORTED   0
-#define OCI_SP_UNSUPPORTED 1
-
-/* OCI_ATTR_NOWAIT_SUPPORT */
-#define OCI_NW_SUPPORTED   0
-#define OCI_NW_UNSUPPORTED 1
-
-/* OCI_ATTR_AUTOCOMMIT_DDL */
-#define OCI_AC_DDL    0
-#define OCI_NO_AC_DDL 1
-
-/* OCI_ATTR_LOCKING_MODE */
-#define OCI_LOCK_IMMEDIATE 0
-#define OCI_LOCK_DELAYED   1
-
-/* ------------------- Instance type attribute values -----------------------*/
-#define OCI_INSTANCE_TYPE_UNKNOWN  0
-#define OCI_INSTANCE_TYPE_RDBMS    1
-#define OCI_INSTANCE_TYPE_OSM      2
-
-/*---------------------------------------------------------------------------*/
-
-/*---------------------------OCIPasswordChange-------------------------------*/
-#define OCI_AUTH         0x08        /* Change the password but do not login */
-
-
-/*------------------------Other Constants------------------------------------*/
-#define OCI_MAX_FNS   100                     /* max number of OCI Functions */
-#define OCI_SQLSTATE_SIZE 5  
-#define OCI_ERROR_MAXMSG_SIZE   1024         /* max size of an error message */
-#define OCI_LOBMAXSIZE MINUB4MAXVAL                 /* maximum lob data size */
-#define OCI_ROWID_LEN             23 
-/*---------------------------------------------------------------------------*/
-
-/*------------------------ Fail Over Events ---------------------------------*/
-#define OCI_FO_END          0x00000001
-#define OCI_FO_ABORT        0x00000002   
-#define OCI_FO_REAUTH       0x00000004
-#define OCI_FO_BEGIN        0x00000008 
-#define OCI_FO_ERROR        0x00000010
-/*---------------------------------------------------------------------------*/
-
-/*------------------------ Fail Over Callback Return Codes ------------------*/
-#define OCI_FO_RETRY        25410
-/*---------------------------------------------------------------------------*/
-
-/*------------------------- Fail Over Types ---------------------------------*/
-#define OCI_FO_NONE           0x00000001
-#define OCI_FO_SESSION        0x00000002
-#define OCI_FO_SELECT         0x00000004
-#define OCI_FO_TXNAL          0x00000008
-/*---------------------------------------------------------------------------*/
-
-/*-----------------------Function Codes--------------------------------------*/
-#define OCI_FNCODE_INITIALIZE     1                         /* OCIInitialize */
-#define OCI_FNCODE_HANDLEALLOC  2                          /* OCIHandleAlloc */
-#define OCI_FNCODE_HANDLEFREE  3                            /* OCIHandleFree */
-#define OCI_FNCODE_DESCRIPTORALLOC  4                  /* OCIDescriptorAlloc */
-#define OCI_FNCODE_DESCRIPTORFREE  5                    /* OCIDescriptorFree */
-#define OCI_FNCODE_ENVINIT   6                                 /* OCIEnvInit */
-#define OCI_FNCODE_SERVERATTACH   7                       /* OCIServerAttach */
-#define OCI_FNCODE_SERVERDETACH   8                       /* OCIServerDetach */
-/* unused         9 */ 
-#define OCI_FNCODE_SESSIONBEGIN  10                       /* OCISessionBegin */
-#define OCI_FNCODE_SESSIONEND   11                          /* OCISessionEnd */
-#define OCI_FNCODE_PASSWORDCHANGE   12                  /* OCIPasswordChange */
-#define OCI_FNCODE_STMTPREPARE   13                        /* OCIStmtPrepare */
-                                                      /* unused       14- 16 */
-#define OCI_FNCODE_BINDDYNAMIC   17                        /* OCIBindDynamic */
-#define OCI_FNCODE_BINDOBJECT  18                           /* OCIBindObject */
-                                                                /* 19 unused */
-#define OCI_FNCODE_BINDARRAYOFSTRUCT   20            /* OCIBindArrayOfStruct */
-#define OCI_FNCODE_STMTEXECUTE  21                         /* OCIStmtExecute */
-                                                             /* unused 22-24 */
-#define OCI_FNCODE_DEFINEOBJECT  25                       /* OCIDefineObject */
-#define OCI_FNCODE_DEFINEDYNAMIC   26                    /* OCIDefineDynamic */
-#define OCI_FNCODE_DEFINEARRAYOFSTRUCT  27         /* OCIDefineArrayOfStruct */
-#define OCI_FNCODE_STMTFETCH   28                            /* OCIStmtFetch */
-#define OCI_FNCODE_STMTGETBIND   29                    /* OCIStmtGetBindInfo */
-                                                            /* 30, 31 unused */
-#define OCI_FNCODE_DESCRIBEANY  32                         /* OCIDescribeAny */
-#define OCI_FNCODE_TRANSSTART  33                           /* OCITransStart */
-#define OCI_FNCODE_TRANSDETACH  34                         /* OCITransDetach */
-#define OCI_FNCODE_TRANSCOMMIT  35                         /* OCITransCommit */
-                                                                /* 36 unused */
-#define OCI_FNCODE_ERRORGET   37                              /* OCIErrorGet */
-#define OCI_FNCODE_LOBOPENFILE  38                         /* OCILobFileOpen */
-#define OCI_FNCODE_LOBCLOSEFILE  39                       /* OCILobFileClose */
-                                             /* 40 was LOBCREATEFILE, unused */
-                                         /* 41 was OCILobFileDelete, unused  */
-#define OCI_FNCODE_LOBCOPY  42                                 /* OCILobCopy */
-#define OCI_FNCODE_LOBAPPEND  43                             /* OCILobAppend */
-#define OCI_FNCODE_LOBERASE  44                               /* OCILobErase */
-#define OCI_FNCODE_LOBLENGTH  45                          /* OCILobGetLength */
-#define OCI_FNCODE_LOBTRIM  46                                 /* OCILobTrim */
-#define OCI_FNCODE_LOBREAD  47                                 /* OCILobRead */
-#define OCI_FNCODE_LOBWRITE  48                               /* OCILobWrite */
-                                                                /* 49 unused */
-#define OCI_FNCODE_SVCCTXBREAK 50                                /* OCIBreak */
-#define OCI_FNCODE_SERVERVERSION  51                     /* OCIServerVersion */
-
-#define OCI_FNCODE_KERBATTRSET 52                          /* OCIKerbAttrSet */
-
-/* unused 53 */
-
-#define OCI_FNCODE_ATTRGET 54                                  /* OCIAttrGet */
-#define OCI_FNCODE_ATTRSET 55                                  /* OCIAttrSet */
-#define OCI_FNCODE_PARAMSET 56                                /* OCIParamSet */
-#define OCI_FNCODE_PARAMGET 57                                /* OCIParamGet */
-#define OCI_FNCODE_STMTGETPIECEINFO   58              /* OCIStmtGetPieceInfo */
-#define OCI_FNCODE_LDATOSVCCTX 59                          /* OCILdaToSvcCtx */
-                                                                /* 60 unused */
-#define OCI_FNCODE_STMTSETPIECEINFO   61              /* OCIStmtSetPieceInfo */
-#define OCI_FNCODE_TRANSFORGET 62                          /* OCITransForget */
-#define OCI_FNCODE_TRANSPREPARE 63                        /* OCITransPrepare */
-#define OCI_FNCODE_TRANSROLLBACK  64                     /* OCITransRollback */
-#define OCI_FNCODE_DEFINEBYPOS 65                          /* OCIDefineByPos */
-#define OCI_FNCODE_BINDBYPOS 66                              /* OCIBindByPos */
-#define OCI_FNCODE_BINDBYNAME 67                            /* OCIBindByName */
-#define OCI_FNCODE_LOBASSIGN  68                             /* OCILobAssign */
-#define OCI_FNCODE_LOBISEQUAL  69                           /* OCILobIsEqual */
-#define OCI_FNCODE_LOBISINIT  70                      /* OCILobLocatorIsInit */
-
-#define OCI_FNCODE_LOBENABLEBUFFERING  71           /* OCILobEnableBuffering */
-#define OCI_FNCODE_LOBCHARSETID  72                       /* OCILobCharSetID */
-#define OCI_FNCODE_LOBCHARSETFORM  73                   /* OCILobCharSetForm */
-#define OCI_FNCODE_LOBFILESETNAME  74                   /* OCILobFileSetName */
-#define OCI_FNCODE_LOBFILEGETNAME  75                   /* OCILobFileGetName */
-#define OCI_FNCODE_LOGON 76                                      /* OCILogon */
-#define OCI_FNCODE_LOGOFF 77                                    /* OCILogoff */
-#define OCI_FNCODE_LOBDISABLEBUFFERING 78          /* OCILobDisableBuffering */
-#define OCI_FNCODE_LOBFLUSHBUFFER 79                    /* OCILobFlushBuffer */
-#define OCI_FNCODE_LOBLOADFROMFILE 80                  /* OCILobLoadFromFile */
-
-#define OCI_FNCODE_LOBOPEN  81                                 /* OCILobOpen */
-#define OCI_FNCODE_LOBCLOSE  82                               /* OCILobClose */
-#define OCI_FNCODE_LOBISOPEN  83                             /* OCILobIsOpen */
-#define OCI_FNCODE_LOBFILEISOPEN  84                     /* OCILobFileIsOpen */
-#define OCI_FNCODE_LOBFILEEXISTS  85                     /* OCILobFileExists */
-#define OCI_FNCODE_LOBFILECLOSEALL  86                 /* OCILobFileCloseAll */
-#define OCI_FNCODE_LOBCREATETEMP  87                /* OCILobCreateTemporary */
-#define OCI_FNCODE_LOBFREETEMP  88                    /* OCILobFreeTemporary */
-#define OCI_FNCODE_LOBISTEMP  89                        /* OCILobIsTemporary */
-
-#define OCI_FNCODE_AQENQ  90                                     /* OCIAQEnq */
-#define OCI_FNCODE_AQDEQ  91                                     /* OCIAQDeq */
-#define OCI_FNCODE_RESET  92                                     /* OCIReset */
-#define OCI_FNCODE_SVCCTXTOLDA  93                         /* OCISvcCtxToLda */
-#define OCI_FNCODE_LOBLOCATORASSIGN 94                /* OCILobLocatorAssign */
-
-#define OCI_FNCODE_UBINDBYNAME 95
-
-#define OCI_FNCODE_AQLISTEN  96                               /* OCIAQListen */
-
-#define OCI_FNCODE_SVC2HST 97                                    /* reserved */
-#define OCI_FNCODE_SVCRH   98                                    /* reserved */
-                           /* 97 and 98 are reserved for Oracle internal use */
-
-#define OCI_FNCODE_TRANSMULTIPREPARE   99            /* OCITransMultiPrepare */
-
-#define OCI_FNCODE_CPOOLCREATE  100               /* OCIConnectionPoolCreate */
-#define OCI_FNCODE_CPOOLDESTROY 101              /* OCIConnectionPoolDestroy */
-#define OCI_FNCODE_LOGON2 102                                   /* OCILogon2 */
-#define OCI_FNCODE_ROWIDTOCHAR  103                        /* OCIRowidToChar */
-
-#define OCI_FNCODE_SPOOLCREATE  104                  /* OCISessionPoolCreate */
-#define OCI_FNCODE_SPOOLDESTROY 105                 /* OCISessionPoolDestroy */
-#define OCI_FNCODE_SESSIONGET   106                         /* OCISessionGet */
-#define OCI_FNCODE_SESSIONRELEASE 107                   /* OCISessionRelease */
-#define OCI_FNCODE_STMTPREPARE2 108                       /* OCIStmtPrepare2 */
-#define OCI_FNCODE_STMTRELEASE 109                         /* OCIStmtRelease */
-#define OCI_FNCODE_AQENQARRAY  110                          /* OCIAQEnqArray */
-#define OCI_FNCODE_AQDEQARRAY  111                          /* OCIAQDeqArray */
-#define OCI_FNCODE_LOBCOPY2    112                            /* OCILobCopy2 */
-#define OCI_FNCODE_LOBERASE2   113                           /* OCILobErase2 */
-#define OCI_FNCODE_LOBLENGTH2  114                       /* OCILobGetLength2 */
-#define OCI_FNCODE_LOBLOADFROMFILE2  115              /* OCILobLoadFromFile2 */
-#define OCI_FNCODE_LOBREAD2    116                            /* OCILobRead2 */
-#define OCI_FNCODE_LOBTRIM2    117                            /* OCILobTrim2 */
-#define OCI_FNCODE_LOBWRITE2   118                           /* OCILobWrite2 */
-#define OCI_FNCODE_LOBGETSTORAGELIMIT 119           /* OCILobGetStorageLimit */
-
-#define OCI_FNCODE_MAXFCN 119                   /* maximum OCI function code */
-
-
-/*---------------------------------------------------------------------------*/
-
-/*-----------------------Handle Definitions----------------------------------*/
-typedef struct OCIEnv           OCIEnv;            /* OCI environment handle */
-typedef struct OCIError         OCIError;                /* OCI error handle */
-typedef struct OCISvcCtx        OCISvcCtx;             /* OCI service handle */
-typedef struct OCIStmt          OCIStmt;             /* OCI statement handle */
-typedef struct OCIBind          OCIBind;                  /* OCI bind handle */
-typedef struct OCIDefine        OCIDefine;              /* OCI Define handle */
-typedef struct OCIDescribe      OCIDescribe;          /* OCI Describe handle */
-typedef struct OCIServer        OCIServer;              /* OCI Server handle */
-typedef struct OCISession       OCISession;     /* OCI Authentication handle */
-typedef struct OCIComplexObject OCIComplexObject;          /* OCI COR handle */
-typedef struct OCITrans         OCITrans;          /* OCI Transaction handle */
-typedef struct OCISecurity      OCISecurity;          /* OCI Security handle */
-typedef struct OCISubscription  OCISubscription;      /* subscription handle */
-
-typedef struct OCICPool         OCICPool;          /* connection pool handle */
-typedef struct OCISPool         OCISPool;             /* session pool handle */
-typedef struct OCIAuthInfo      OCIAuthInfo;                  /* auth handle */
-
-/*-----------------------Descriptor Definitions------------------------------*/
-typedef struct OCISnapshot      OCISnapshot;      /* OCI snapshot descriptor */
-typedef struct OCIResult        OCIResult;      /* OCI Result Set Descriptor */
-typedef struct OCILobLocator    OCILobLocator; /* OCI Lob Locator descriptor */
-typedef struct OCIParam         OCIParam;        /* OCI PARameter descriptor */
-typedef struct OCIComplexObjectComp OCIComplexObjectComp;
-                                                       /* OCI COR descriptor */
-typedef struct OCIRowid OCIRowid;                    /* OCI ROWID descriptor */
-
-typedef struct OCIDateTime OCIDateTime;           /* OCI DateTime descriptor */
-typedef struct OCIInterval OCIInterval;           /* OCI Interval descriptor */
-
-typedef struct OCIUcb           OCIUcb;      /* OCI User Callback descriptor */
-typedef struct OCIServerDNs     OCIServerDNs;    /* OCI server DN descriptor */
-
-/*-------------------------- AQ Descriptors ---------------------------------*/
-typedef struct OCIAQEnqOptions    OCIAQEnqOptions; /* AQ Enqueue Options hdl */
-typedef struct OCIAQDeqOptions    OCIAQDeqOptions; /* AQ Dequeue Options hdl */
-typedef struct OCIAQMsgProperties OCIAQMsgProperties;  /* AQ Mesg Properties */
-typedef struct OCIAQAgent         OCIAQAgent;         /* AQ Agent descriptor */
-typedef struct OCIAQNfyDescriptor OCIAQNfyDescriptor;   /* AQ Nfy descriptor */
-typedef struct OCIAQSignature     OCIAQSignature;            /* AQ Siganture */
-/*---------------------------------------------------------------------------*/
- 
-/* Lob typedefs for Pro*C */
-typedef struct OCILobLocator OCIClobLocator;    /* OCI Character LOB Locator */
-typedef struct OCILobLocator OCIBlobLocator;       /* OCI Binary LOB Locator */
-typedef struct OCILobLocator OCIBFileLocator; /* OCI Binary LOB File Locator */
-/*---------------------------------------------------------------------------*/
-
-/* Undefined value for tz in interval types*/
-#define OCI_INTHR_UNK 24
-
-  /* These defined adjustment values */
-#define OCI_ADJUST_UNK            10
-#define OCI_ORACLE_DATE           0
-#define OCI_ANSI_DATE             1
-
-/*------------------------ Lob-specific Definitions -------------------------*/
-
-/*
- * ociloff - OCI Lob OFFset
- *
- * The offset in the lob data.  The offset is specified in terms of bytes for
- * BLOBs and BFILes.  Character offsets are used for CLOBs, NCLOBs.
- * The maximum size of internal lob data is 4 gigabytes.  FILE LOB 
- * size is limited by the operating system.
- */
-typedef ub4 OCILobOffset;
-
-/*
- * ocillen - OCI Lob LENgth (of lob data)
- *
- * Specifies the length of lob data in bytes for BLOBs and BFILes and in 
- * characters for CLOBs, NCLOBs.  The maximum length of internal lob
- * data is 4 gigabytes.  The length of FILE LOBs is limited only by the
- * operating system.
- */
-typedef ub4 OCILobLength;
-/*
- * ocilmo - OCI Lob open MOdes
- *
- * The mode specifies the planned operations that will be performed on the
- * FILE lob data.  The FILE lob can be opened in read-only mode only.
- * 
- * In the future, we may include read/write, append and truncate modes.  Append
- * is equivalent to read/write mode except that the FILE is positioned for
- * writing to the end.  Truncate is equivalent to read/write mode except that
- * the FILE LOB data is first truncated to a length of 0 before use.
- */
-enum OCILobMode
-{
-  OCI_LOBMODE_READONLY = 1,                                     /* read-only */
-  OCI_LOBMODE_READWRITE = 2             /* read_write for internal lobs only */
-};
-typedef enum OCILobMode OCILobMode;
-
-/*---------------------------------------------------------------------------*/
-
-
-/*----------------------------Piece Definitions------------------------------*/
-
-/* if ocidef.h is being included in the app, ocidef.h should precede oci.h */
-
-/* 
- * since clients may  use oci.h, ocidef.h and ocidfn.h the following defines
- * need to be guarded, usually internal clients
- */
-
-#ifndef OCI_FLAGS
-#define OCI_FLAGS
-#define OCI_ONE_PIECE 0                                         /* one piece */
-#define OCI_FIRST_PIECE 1                                 /* the first piece */
-#define OCI_NEXT_PIECE 2                          /* the next of many pieces */
-#define OCI_LAST_PIECE 3                                   /* the last piece */
-#endif
-/*---------------------------------------------------------------------------*/
-
-/*--------------------------- FILE open modes -------------------------------*/
-#define OCI_FILE_READONLY 1             /* readonly mode open for FILE types */
-/*---------------------------------------------------------------------------*/
-/*--------------------------- LOB open modes --------------------------------*/
-#define OCI_LOB_READONLY 1              /* readonly mode open for ILOB types */
-#define OCI_LOB_READWRITE 2                /* read write mode open for ILOBs */
-
-/*----------------------- LOB Buffering Flush Flags -------------------------*/
-#define OCI_LOB_BUFFER_FREE   1 
-#define OCI_LOB_BUFFER_NOFREE 2
-/*---------------------------------------------------------------------------*/
-
-/*--------------------------- OCI Statement Types ---------------------------*/
-
-#define  OCI_STMT_SELECT  1                              /* select statement */
-#define  OCI_STMT_UPDATE  2                              /* update statement */
-#define  OCI_STMT_DELETE  3                              /* delete statement */
-#define  OCI_STMT_INSERT  4                              /* Insert Statement */
-#define  OCI_STMT_CREATE  5                              /* create statement */
-#define  OCI_STMT_DROP    6                                /* drop statement */
-#define  OCI_STMT_ALTER   7                               /* alter statement */
-#define  OCI_STMT_BEGIN   8                   /* begin ... (pl/sql statement)*/
-#define  OCI_STMT_DECLARE 9                /* declare .. (pl/sql statement ) */
-/*---------------------------------------------------------------------------*/
-
-/*--------------------------- OCI Parameter Types ---------------------------*/
-#define OCI_PTYPE_UNK                 0                         /* unknown   */
-#define OCI_PTYPE_TABLE               1                         /* table     */
-#define OCI_PTYPE_VIEW                2                         /* view      */
-#define OCI_PTYPE_PROC                3                         /* procedure */
-#define OCI_PTYPE_FUNC                4                         /* function  */
-#define OCI_PTYPE_PKG                 5                         /* package   */
-#define OCI_PTYPE_TYPE                6                 /* user-defined type */
-#define OCI_PTYPE_SYN                 7                         /* synonym   */
-#define OCI_PTYPE_SEQ                 8                         /* sequence  */
-#define OCI_PTYPE_COL                 9                         /* column    */
-#define OCI_PTYPE_ARG                 10                        /* argument  */
-#define OCI_PTYPE_LIST                11                        /* list      */
-#define OCI_PTYPE_TYPE_ATTR           12    /* user-defined type's attribute */
-#define OCI_PTYPE_TYPE_COLL           13        /* collection type's element */
-#define OCI_PTYPE_TYPE_METHOD         14       /* user-defined type's method */
-#define OCI_PTYPE_TYPE_ARG            15   /* user-defined type method's arg */
-#define OCI_PTYPE_TYPE_RESULT         16/* user-defined type method's result */
-#define OCI_PTYPE_SCHEMA              17                           /* schema */
-#define OCI_PTYPE_DATABASE            18                         /* database */
-#define OCI_PTYPE_RULE                19                             /* rule */
-#define OCI_PTYPE_RULE_SET            20                         /* rule set */
-#define OCI_PTYPE_EVALUATION_CONTEXT  21               /* evaluation context */
-#define OCI_PTYPE_TABLE_ALIAS         22                      /* table alias */
-#define OCI_PTYPE_VARIABLE_TYPE       23                    /* variable type */
-#define OCI_PTYPE_NAME_VALUE          24                  /* name value pair */
-
-/*---------------------------------------------------------------------------*/
-
-/*----------------------------- OCI List Types ------------------------------*/
-#define OCI_LTYPE_UNK           0                               /* unknown   */
-#define OCI_LTYPE_COLUMN        1                             /* column list */
-#define OCI_LTYPE_ARG_PROC      2                 /* procedure argument list */
-#define OCI_LTYPE_ARG_FUNC      3                  /* function argument list */
-#define OCI_LTYPE_SUBPRG        4                         /* subprogram list */
-#define OCI_LTYPE_TYPE_ATTR     5                          /* type attribute */
-#define OCI_LTYPE_TYPE_METHOD   6                             /* type method */
-#define OCI_LTYPE_TYPE_ARG_PROC 7    /* type method w/o result argument list */
-#define OCI_LTYPE_TYPE_ARG_FUNC 8      /* type method w/result argument list */
-#define OCI_LTYPE_SCH_OBJ       9                      /* schema object list */
-#define OCI_LTYPE_DB_SCH        10                   /* database schema list */
-#define OCI_LTYPE_TYPE_SUBTYPE  11                           /* subtype list */
-#define OCI_LTYPE_TABLE_ALIAS   12                       /* table alias list */
-#define OCI_LTYPE_VARIABLE_TYPE 13                     /* variable type list */
-#define OCI_LTYPE_NAME_VALUE    14                        /* name value list */
-
-/*---------------------------------------------------------------------------*/
-
-/*-------------------------- Memory Cartridge Services ---------------------*/
-#define OCI_MEMORY_CLEARED  1
-
-/*-------------------------- Pickler Cartridge Services ---------------------*/
-typedef struct OCIPicklerTdsCtx OCIPicklerTdsCtx;
-typedef struct OCIPicklerTds OCIPicklerTds;
-typedef struct OCIPicklerImage OCIPicklerImage;
-typedef struct OCIPicklerFdo OCIPicklerFdo;
-typedef ub4 OCIPicklerTdsElement;
-
-typedef struct OCIAnyData OCIAnyData;
-
-typedef struct OCIAnyDataSet OCIAnyDataSet;
-typedef struct OCIAnyDataCtx OCIAnyDataCtx;
-
-/*---------------------------------------------------------------------------*/
-
-/*--------------------------- User Callback Constants -----------------------*/
-#define OCI_UCBTYPE_ENTRY       1                          /* entry callback */
-#define OCI_UCBTYPE_EXIT        2                           /* exit callback */
-#define OCI_UCBTYPE_REPLACE     3                    /* replacement callback */
-
-/*---------------------------------------------------------------------------*/
-
-/*--------------------- NLS service type and constance ----------------------*/
-#define OCI_NLS_DAYNAME1      1                    /* Native name for Monday */
-#define OCI_NLS_DAYNAME2      2                   /* Native name for Tuesday */
-#define OCI_NLS_DAYNAME3      3                 /* Native name for Wednesday */
-#define OCI_NLS_DAYNAME4      4                  /* Native name for Thursday */
-#define OCI_NLS_DAYNAME5      5                    /* Native name for Friday */
-#define OCI_NLS_DAYNAME6      6              /* Native name for for Saturday */
-#define OCI_NLS_DAYNAME7      7                /* Native name for for Sunday */
-#define OCI_NLS_ABDAYNAME1    8        /* Native abbreviated name for Monday */
-#define OCI_NLS_ABDAYNAME2    9       /* Native abbreviated name for Tuesday */
-#define OCI_NLS_ABDAYNAME3    10    /* Native abbreviated name for Wednesday */
-#define OCI_NLS_ABDAYNAME4    11     /* Native abbreviated name for Thursday */
-#define OCI_NLS_ABDAYNAME5    12       /* Native abbreviated name for Friday */
-#define OCI_NLS_ABDAYNAME6    13 /* Native abbreviated name for for Saturday */
-#define OCI_NLS_ABDAYNAME7    14   /* Native abbreviated name for for Sunday */
-#define OCI_NLS_MONTHNAME1    15                  /* Native name for January */
-#define OCI_NLS_MONTHNAME2    16                 /* Native name for February */
-#define OCI_NLS_MONTHNAME3    17                    /* Native name for March */
-#define OCI_NLS_MONTHNAME4    18                    /* Native name for April */
-#define OCI_NLS_MONTHNAME5    19                      /* Native name for May */
-#define OCI_NLS_MONTHNAME6    20                     /* Native name for June */
-#define OCI_NLS_MONTHNAME7    21                     /* Native name for July */
-#define OCI_NLS_MONTHNAME8    22                   /* Native name for August */
-#define OCI_NLS_MONTHNAME9    23                /* Native name for September */
-#define OCI_NLS_MONTHNAME10   24                  /* Native name for October */
-#define OCI_NLS_MONTHNAME11   25                 /* Native name for November */
-#define OCI_NLS_MONTHNAME12   26                 /* Native name for December */
-#define OCI_NLS_ABMONTHNAME1  27      /* Native abbreviated name for January */
-#define OCI_NLS_ABMONTHNAME2  28     /* Native abbreviated name for February */
-#define OCI_NLS_ABMONTHNAME3  29        /* Native abbreviated name for March */
-#define OCI_NLS_ABMONTHNAME4  30        /* Native abbreviated name for April */
-#define OCI_NLS_ABMONTHNAME5  31          /* Native abbreviated name for May */
-#define OCI_NLS_ABMONTHNAME6  32         /* Native abbreviated name for June */
-#define OCI_NLS_ABMONTHNAME7  33         /* Native abbreviated name for July */
-#define OCI_NLS_ABMONTHNAME8  34       /* Native abbreviated name for August */
-#define OCI_NLS_ABMONTHNAME9  35    /* Native abbreviated name for September */
-#define OCI_NLS_ABMONTHNAME10 36      /* Native abbreviated name for October */
-#define OCI_NLS_ABMONTHNAME11 37     /* Native abbreviated name for November */
-#define OCI_NLS_ABMONTHNAME12 38     /* Native abbreviated name for December */
-#define OCI_NLS_YES           39   /* Native string for affirmative response */
-#define OCI_NLS_NO            40                 /* Native negative response */
-#define OCI_NLS_AM            41           /* Native equivalent string of AM */
-#define OCI_NLS_PM            42           /* Native equivalent string of PM */
-#define OCI_NLS_AD            43           /* Native equivalent string of AD */
-#define OCI_NLS_BC            44           /* Native equivalent string of BC */
-#define OCI_NLS_DECIMAL       45                        /* decimal character */
-#define OCI_NLS_GROUP         46                          /* group separator */
-#define OCI_NLS_DEBIT         47                   /* Native symbol of debit */
-#define OCI_NLS_CREDIT        48                  /* Native sumbol of credit */
-#define OCI_NLS_DATEFORMAT    49                       /* Oracle date format */
-#define OCI_NLS_INT_CURRENCY  50            /* International currency symbol */
-#define OCI_NLS_LOC_CURRENCY  51                   /* Locale currency symbol */
-#define OCI_NLS_LANGUAGE      52                            /* Language name */
-#define OCI_NLS_ABLANGUAGE    53           /* Abbreviation for language name */
-#define OCI_NLS_TERRITORY     54                           /* Territory name */
-#define OCI_NLS_CHARACTER_SET 55                       /* Character set name */
-#define OCI_NLS_LINGUISTIC_NAME    56                     /* Linguistic name */
-#define OCI_NLS_CALENDAR      57                            /* Calendar name */
-#define OCI_NLS_DUAL_CURRENCY 78                     /* Dual currency symbol */
-#define OCI_NLS_WRITINGDIR    79               /* Language writing direction */
-#define OCI_NLS_ABTERRITORY   80                   /* Territory Abbreviation */
-#define OCI_NLS_DDATEFORMAT   81               /* Oracle default date format */
-#define OCI_NLS_DTIMEFORMAT   82               /* Oracle default time format */
-#define OCI_NLS_SFDATEFORMAT  83       /* Local string formatted date format */
-#define OCI_NLS_SFTIMEFORMAT  84       /* Local string formatted time format */
-#define OCI_NLS_NUMGROUPING   85                   /* Number grouping fields */
-#define OCI_NLS_LISTSEP       86                           /* List separator */
-#define OCI_NLS_MONDECIMAL    87               /* Monetary decimal character */
-#define OCI_NLS_MONGROUP      88                 /* Monetary group separator */
-#define OCI_NLS_MONGROUPING   89                 /* Monetary grouping fields */
-#define OCI_NLS_INT_CURRENCYSEP 90       /* International currency separator */
-#define OCI_NLS_CHARSET_MAXBYTESZ 91     /* Maximum character byte size      */
-#define OCI_NLS_CHARSET_FIXEDWIDTH 92    /* Fixed-width charset byte size    */
-#define OCI_NLS_CHARSET_ID    93                         /* Character set id */
-#define OCI_NLS_NCHARSET_ID   94                        /* NCharacter set id */
-
-#define OCI_NLS_MAXBUFSZ   100 /* Max buffer size may need for OCINlsGetInfo */
-
-#define OCI_NLS_BINARY            0x1           /* for the binary comparison */
-#define OCI_NLS_LINGUISTIC        0x2           /* for linguistic comparison */
-#define OCI_NLS_CASE_INSENSITIVE  0x10    /* for case-insensitive comparison */
-
-#define OCI_NLS_UPPERCASE         0x20               /* convert to uppercase */
-#define OCI_NLS_LOWERCASE         0x40               /* convert to lowercase */
-
-#define OCI_NLS_CS_IANA_TO_ORA   0   /* Map charset name from IANA to Oracle */
-#define OCI_NLS_CS_ORA_TO_IANA   1   /* Map charset name from Oracle to IANA */
-#define OCI_NLS_LANG_ISO_TO_ORA  2   /* Map language name from ISO to Oracle */
-#define OCI_NLS_LANG_ORA_TO_ISO  3   /* Map language name from Oracle to ISO */
-#define OCI_NLS_TERR_ISO_TO_ORA  4   /* Map territory name from ISO to Oracle*/
-#define OCI_NLS_TERR_ORA_TO_ISO  5   /* Map territory name from Oracle to ISO*/
-#define OCI_NLS_TERR_ISO3_TO_ORA 6   /* Map territory name from 3-letter ISO */
-                                     /* abbreviation to Oracle               */
-#define OCI_NLS_TERR_ORA_TO_ISO3 7   /* Map territory name from Oracle to    */
-                                     /* 3-letter ISO abbreviation            */
-
-typedef struct OCIMsg  OCIMsg;
-typedef ub4            OCIWchar;
-
-#define OCI_XMLTYPE_CREATE_OCISTRING 1
-#define OCI_XMLTYPE_CREATE_CLOB      2
-#define OCI_XMLTYPE_CREATE_BLOB      3
-
-/*------------------------- Kerber Authentication Modes ---------------------*/
-#define OCI_KERBCRED_PROXY               1 /* Apply Kerberos Creds for Proxy */
-#define OCI_KERBCRED_CLIENT_IDENTIFIER   2/*Apply Creds for Secure Client ID */
-
-/*--------------------------------------------------------------------------- 
-                     PRIVATE TYPES AND CONSTANTS 
-  ---------------------------------------------------------------------------*/
- 
-/* None */
-
-/*--------------------------------------------------------------------------- 
-                           PUBLIC FUNCTIONS 
-  ---------------------------------------------------------------------------*/
-
-/* see ociap.h or ocikp.h */
- 
-/*--------------------------------------------------------------------------- 
-                          PRIVATE FUNCTIONS 
-  ---------------------------------------------------------------------------*/
-
-/* None */
-
- 
-#endif                                              /* OCI_ORACLE */
-
-
-/* more includes */
-
-#ifndef OCI1_ORACLE
-#include <oci1.h>
-#endif
-
-#ifndef ORO_ORACLE
-#include <oro.h>
-#endif
-
-#ifndef ORI_ORACLE
-#include <ori.h>
-#endif
-
-#ifndef ORL_ORACLE
-#include <orl.h>
-#endif
-
-#ifndef ORT_ORACLE
-#include <ort.h>
-#endif
-
-#ifndef OCIEXTP_ORACLE
-#include <ociextp.h>
-#endif
-
-#include <ociapr.h>
-#include <ociap.h>
-
-#ifndef OCIXMLDB_ORACLE
-#include <ocixmldb.h>
-#endif
-
-#ifndef OCI8DP_ORACLE
-#include <oci8dp.h>         /* interface definitions for the direct path api */
-#endif
-
-#ifndef OCIEXTP_ORACLE
-#include <ociextp.h>
-#endif
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
diff --git a/src/terralib/drivers/Oracle/OCI/include/oci1.h b/src/terralib/drivers/Oracle/OCI/include/oci1.h
deleted file mode 100644
index 7341caf..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/oci1.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * $Header$
- */
-
-/* Copyright (c) Oracle Corporation 1997, 1998. All Rights Reserved. */ 
- 
-/* NOTE:  See 'header_template.doc' in the 'doc' dve under the 'forms' 
-      directory for the header file template that includes instructions. 
-*/
- 
-/* 
-   NAME 
-     oci1.h - Cartridge Service definitions
-
-   DESCRIPTION 
-     <short description of component this file declares/defines> 
-
-   RELATED DOCUMENTS 
- 
-   INSPECTION STATUS 
-     Inspection date: 
-     Inspection status: 
-     Estimated increasing cost defects per page: 
-     Rule sets: 
- 
-   ACCEPTANCE REVIEW STATUS 
-     Review date: 
-     Review status: 
-     Reviewers: 
- 
-   PUBLIC FUNCTION(S) 
-     <list of external functions declared/defined - with one-line descriptions>
-
-   PRIVATE FUNCTION(S)
-     <list of static functions defined in .c file - with one-line descriptions>
-
-   EXAMPLES
-
-   NOTES
-     <other useful comments, qualifications, etc.>
-
-   MODIFIED   (MM/DD/YY)
-   nramakri    01/16/98 - remove #ifdef NEVER clause
-   ewaugh      12/18/97 - Turn type wrappers into functions.
-   skabraha    12/02/97 - Adding data structures & constants for OCIFile
-   rhwu        12/02/97 - OCI Thread
-   nramakri    12/15/97 - move to core4
-   ewaugh      12/11/97 - add OCIFormat package constants
-   ssamu       12/10/97 - do not include s.h
-   nramakri    11/19/97 - add OCIExtract definitions
-   ssamu       11/14/97 - creation
-
-*/
-
-
-#ifndef OCI1_ORACLE
-# define OCI1_ORACLE
-
-# ifndef ORATYPES
-#  include <oratypes.h>
-# endif
-
-
-/*---------------------------------------------------------------------------
-                     PUBLIC TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-/* Constants required by the OCIFormat package. */
-
-#define OCIFormatUb1(variable)      OCIFormatTUb1(),      &(variable)
-#define OCIFormatUb2(variable)      OCIFormatTUb2(),      &(variable)
-#define OCIFormatUb4(variable)      OCIFormatTUb4(),      &(variable)
-#define OCIFormatUword(variable)    OCIFormatTUword(),    &(variable)
-#define OCIFormatUbig_ora(variable) OCIFormatTUbig_ora(), &(variable)
-#define OCIFormatSb1(variable)      OCIFormatTSb1(),      &(variable)
-#define OCIFormatSb2(variable)      OCIFormatTSb2(),      &(variable)
-#define OCIFormatSb4(variable)      OCIFormatTSb4(),      &(variable)
-#define OCIFormatSword(variable)    OCIFormatTSword(),    &(variable)
-#define OCIFormatSbig_ora(variable) OCIFormatTSbig_ora(), &(variable)
-#define OCIFormatEb1(variable)      OCIFormatTEb1(),      &(variable)
-#define OCIFormatEb2(variable)      OCIFormatTEb2(),      &(variable)
-#define OCIFormatEb4(variable)      OCIFormatTEb4(),      &(variable)
-#define OCIFormatEword(variable)    OCIFormatTEword(),    &(variable)
-#define OCIFormatChar(variable)     OCIFormatTChar(),     &(variable)
-#define OCIFormatText(variable)     OCIFormatTText(),      (variable)
-#define OCIFormatDouble(variable)   OCIFormatTDouble(),   &(variable)
-#define OCIFormatDvoid(variable)    OCIFormatTDvoid(),     (variable)
-#define OCIFormatEnd                OCIFormatTEnd()
-
-#define OCIFormatDP 6
-
-
-/*----------------- Public Constants for OCIFile -------------------------*/
-
-/* flags for open.*/
-/* flags for mode */
-#define OCI_FILE_READ_ONLY         1   /* open for read only */
-#define OCI_FILE_WRITE_ONLY        2   /* open for write only */
-#define OCI_FILE_READ_WRITE        3   /* open for read & write */
-/* flags for create */
-#define OCI_FILE_EXIST             0   /* the file should exist */
-#define OCI_FILE_CREATE            1   /* create if the file doesn't exist */
-#define OCI_FILE_EXCL              2   /* the file should not exist */
-#define OCI_FILE_TRUNCATE          4   /* create if the file doesn't exist, 
-                                          else truncate file the file to 0 */
-#define OCI_FILE_APPEND            8   /* open the file in append mode */
-
-/* flags for seek */
-#define OCI_FILE_SEEK_BEGINNING    1  /* seek from the beginning of the file */
-#define OCI_FILE_SEEK_CURRENT      2  /* seek from the current position */
-#define OCI_FILE_SEEK_END          3  /* seek from the end of the file */
-
-#define OCI_FILE_FORWARD     1     /* seek forward		*/
-#define OCI_FILE_BACKWARD    2     /* seek backward		*/
-
-/* file type */
-#define   OCI_FILE_BIN      0    /* binary file */
-#define   OCI_FILE_TEXT     1    /* text file */
-#define   OCI_FILE_STDIN    2    /* standard i/p */
-#define   OCI_FILE_STDOUT   3    /* standard o/p */
-#define   OCI_FILE_STDERR   4    /* standard error */
-
-/* Represents an open file */
-typedef struct OCIFileObject OCIFileObject;
-
-
-/*--------------------- OCI Thread Object Definitions------------------------*/
-
-/* OCIThread Context */
-typedef struct OCIThreadContext OCIThreadContext;
-
-/* OCIThread Mutual Exclusion Lock */
-typedef struct OCIThreadMutex   OCIThreadMutex; 
-
-/* OCIThread Key for Thread-Specific Data */
-typedef struct OCIThreadKey     OCIThreadKey;  
-
-/* OCIThread Thread ID */
-typedef struct OCIThreadId      OCIThreadId;  
-
-/* OCIThread Thread Handle */
-typedef struct OCIThreadHandle  OCIThreadHandle;  
-
-
-/*-------------------- OCI Thread Callback Function Pointers ----------------*/
-
-/* OCIThread Key Destructor Function Type */
-typedef void (*OCIThreadKeyDestFunc)(/*_ dvoid * _*/);
-
-
-/* Flags passed into OCIExtractFromXXX routines to direct processing         */
-#define OCI_EXTRACT_CASE_SENSITIVE     0x1 /* matching is case sensitive     */
-#define OCI_EXTRACT_UNIQUE_ABBREVS     0x2 /* unique abbreviations for keys
-                                              are allowed                    */
-#define OCI_EXTRACT_APPEND_VALUES      0x4 /* if multiple values for a key
-                                              exist, this determines if the 
-                                              new value should be appended 
-                                              to (or replace) the current 
-                                              list of values                 */
-
-/* Constants passed into OCIExtractSetKey routine */
-#define OCI_EXTRACT_MULTIPLE           0x8 /* key can accept multiple values */
-#define OCI_EXTRACT_TYPE_BOOLEAN         1 /* key type is boolean            */
-#define OCI_EXTRACT_TYPE_STRING          2 /* key type is string             */
-#define OCI_EXTRACT_TYPE_INTEGER         3 /* key type is integer            */
-#define OCI_EXTRACT_TYPE_OCINUM          4 /* key type is ocinum             */
-
-/*---------------------------------------------------------------------------
-                     PRIVATE TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                           PUBLIC FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                          PRIVATE FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-#endif                                              /* OCI1_ORACLE */
diff --git a/src/terralib/drivers/Oracle/OCI/include/oci8dp.h b/src/terralib/drivers/Oracle/OCI/include/oci8dp.h
deleted file mode 100644
index c698a56..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/oci8dp.h
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
- * $Header$
- */
-
-/* Copyright (c) 1998, 2003, Oracle Corporation.  All rights reserved.  */
- 
-/* 
-   NAME 
-     oci8dp.h - OCI: Direct Path API interface prototypes.
-
-   DESCRIPTION 
-     Public types, constants, and interfaces to the direct path API.
-
-   RELATED DOCUMENTS 
- 
-   NOTES
-     This file is not directly included by the application, this file
-     is included by "oci.h", which the application should include.
-
-   MODIFIED   (MM/DD/YY)
-   srseshad    03/12/03 - convert oci public api to ansi
-   msakayed    10/28/02 - Bug #2643907: add OCI_ATTR_DIRPATH_SKIPINDEX_METHOD
-   cmlim       04/13/01 - remove OCIDirPathStreamToStream - not used by dpapi
-   cmlim       04/02/01 - OCI_DIRPATH_EXPR_OPQ_SQL_FN to OCI_DIRPATH_EXPR_SQL
-   ebatbout    01/22/01 - PARTIAL value for OCIDirPathDataSave action parameter
-   cmlim       07/20/00 - support opaques/sql strings in 8.2 dpapi
-   cmlim       08/14/00 - support refs in 8.2 dpapi
-   cmlim       04/17/00 - add defines for OCIDirPathFuncCtx handle & OCI_ATTR_D
-   whe         09/01/99 - 976457:check __cplusplus for C++ code
-   abrumm      04/16/99 - dpapi: more attributes
-   abrumm      02/26/99 - add defines for DataSave action
-   abrumm      10/04/98 - clen must be a ub4
-   abrumm      05/27/98 - add column array flag values
-   abrumm      05/12/98 - direct path api support
-   abrumm      03/31/98 - OCI direct path interface support
-   abrumm      03/18/98 - Creation
-
-*/
-
-#ifndef OCI8DP_ORACLE
-# define OCI8DP_ORACLE
-
-#ifndef ORATYPES
-#include <oratypes.h>
-#endif
-
-#ifndef OCIDFN
-#include <ocidfn.h>
-#endif
-
-#ifndef OCI_ORACLE
-#include <oci.h>
-#endif
-
-
-/*---------------------------------------------------------------------------
-                     PUBLIC TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-/*----- Handles and descriptors for direct path operations (OCIDirPath*) ----*/
-
-typedef struct OCIDirPathCtx      OCIDirPathCtx;                  /* context */
-typedef struct OCIDirPathFuncCtx  OCIDirPathFuncCtx;     /* function context */
-typedef struct OCIDirPathColArray OCIDirPathColArray;        /* column array */
-typedef struct OCIDirPathStream   OCIDirPathStream;                /* stream */
-typedef struct OCIDirPathDesc     OCIDirPathDesc;  /* direct path descriptor */
-
-                 /*----- Defines for Direct Path Options -----*/
-
-                 /* values for OCI_ATTR_DIRPATH_MODE attribute */
-#define OCI_DIRPATH_LOAD         1             /* direct path load operation */
-#define OCI_DIRPATH_UNLOAD       2           /* direct path unload operation */
-#define OCI_DIRPATH_CONVERT      3     /* direct path convert only operation */
-
-    /*----- values for OCI_ATTR_DIRPATH_INDEX_MAINT_METHOD attribute -----*/
-#define OCI_DIRPATH_INDEX_MAINT_SINGLE_ROW     1
-
-/* Note that there are two attributes dealing with index maintenance -
- * OCI_ATTR_DIRPATH_INDEX_MAINT_METHOD and OCI_ATTR_DIRPATH_SKIPINDEX_METHOD.
- * OCI_ATTR_DIRPATH_SKIPINDEX_METHOD exists to isolate the behavior for
- * skipping index maintenance since maintenance of unusable indexes is 
- * orthogonal to that of single row insertion.
- * For backwards compatibility we still allow users to specify skip
- * methods in OCI_ATTR_DIRPATH_INDEX_MAINT_METHOD so make sure the
- * enumerations for the two attributes are distinct.
- */
-    /*----- values for OCI_ATTR_DIRPATH_SKIPINDEX_METHOD attribute -----*/
-#define OCI_DIRPATH_INDEX_MAINT_SKIP_UNUSABLE       2
-#define OCI_DIRPATH_INDEX_MAINT_DONT_SKIP_UNUSABLE  3
-#define OCI_DIRPATH_INDEX_MAINT_SKIP_ALL            4
-
-           /* values for OCI_ATTR_STATE attribute of OCIDirPathCtx */
-#define OCI_DIRPATH_NORMAL       1     /* can accept rows, last row complete */
-#define OCI_DIRPATH_PARTIAL      2                   /* last row was partial */
-#define OCI_DIRPATH_NOT_PREPARED 3    /* direct path context is not prepared */
-
-     /*----- values for cflg argument to OCIDirpathColArrayEntrySet -----*/
-#define OCI_DIRPATH_COL_COMPLETE 0                /* column data is complete */
-#define OCI_DIRPATH_COL_NULL     1                         /* column is null */
-#define OCI_DIRPATH_COL_PARTIAL  2                 /* column data is partial */
-
-          /*----- values for action parameter to OCIDirPathDataSave -----*/
-#define OCI_DIRPATH_DATASAVE_SAVEONLY 0              /* data save point only */
-#define OCI_DIRPATH_DATASAVE_FINISH   1           /* execute finishing logic */
-/* save portion of input data (before space error occurred) and finish */
-#define OCI_DIRPATH_DATASAVE_PARTIAL  2       
-
-  /*- OCI_ATTR_DIRPATH_EXPR_TYPE values (describes OCI_ATTR_NAME expr type) -*/
-#define OCI_DIRPATH_EXPR_OBJ_CONSTR  1      /* NAME is an object constructor */
-#define OCI_DIRPATH_EXPR_SQL         2  /* NAME is an opaque or sql function */
-#define OCI_DIRPATH_EXPR_REF_TBLNAME 3 /* NAME is table name if ref is scoped*/
-
-
-/*---------------------------------------------------------------------------
-                           PUBLIC FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-/*------------------------ OCIDirPathCtx Operations -------------------------*/
-
-/*
-  NAME
-    OCIDirPathAbort - OCI: Abort a direct path operation.
-
-  DESCRIPTION
-    Aborts a direct path operation.  Upon successful completion
-    the direct path context is no longer valid.
-
-  RETURNS
-    An OCI error code, Oracle errors are returned via the error handle.
-  NOTES
- */
-sword
-OCIDirPathAbort( OCIDirPathCtx *dpctx, OCIError *errhp );
-
-/*
-  NAME
-    OCIDirPathDataSave - OCI: Execute a data save point.
-
-  DESCRIPTION
-    Successful return of this function indicates that a data save
-    point has been executed.
-
-  RETURNS
-    An OCI error code, Oracle errors are returned via the error handle.
-  NOTES
- */
-sword
-OCIDirPathDataSave( OCIDirPathCtx *dpctx, OCIError *errhp, ub4 action );
-
-/*
-  NAME
-    OCIDirPathFinish - OCI: Finish a direct path operation.
-
-  DESCRIPTION
-    Finishes a direct path operation.
-
-  RETURNS
-    An OCI error code, Oracle errors are returned via the error handle.
-  NOTES
- */
-sword
-OCIDirPathFinish( OCIDirPathCtx *dpctx, OCIError  *errhp );
-
-/*
-  NAME
-    OCIDirPathFlushRow - OCI: Flush a partial row from the server.
-
-  DESCRIPTION
-    Flushes a partially loaded row from the server.
-
-  RETURNS
-    An OCI error code, Oracle errors are returned via the error handle.
-  NOTES
- */
-sword
-OCIDirPathFlushRow( OCIDirPathCtx *dpctx, OCIError  *errhp );
-
-/*
-  NAME
-    OCIDirPathPrepare - OCI: Prepare a direct path operation.
-
-  DESCRIPTION
-    Prepares a table/partition for a direct path operation.
-
-  RETURNS
-    An OCI error code, Oracle errors are returned via the error handle.
-  NOTES
- */
-sword
-OCIDirPathPrepare( OCIDirPathCtx *dpctx, OCISvcCtx *svchp,
-                      OCIError  *errhp );
-
-/*
-  NAME
-    OCIDirPathLoadStream - OCI: Load a direct path stream.
-
-  DESCRIPTION
-    Load a direct path stream to the object associated with
-    the direct path context.
-
-  RETURNS
-    An OCI error code, Oracle errors are returned via the error handle.
-  NOTES
- */
-sword
-OCIDirPathLoadStream( OCIDirPathCtx *dpctx, OCIDirPathStream *dpstr,
-                         OCIError      *errhp );
-
-
-/*---------------------- OCIDirPathColArray Operations ----------------------*/
-
-/*
-  NAME
-    OCIDirPathColArrayEntryGet - OCI:  Get column array entry.
-
-  DESCRIPTION
-    Column array function which is used to get a specified entry in
-    a column array.
-
-  RETURNS
-    An OCI error code, Oracle errors are returned via the error handle.
-  NOTES
- */
-sword
-OCIDirPathColArrayEntryGet( OCIDirPathColArray *dpca, OCIError *errhp,
-                              ub4 rownum, ub2 colIdx, ub1 **cvalpp, ub4 *clenp,
-                              ub1 *cflgp );
-
-/*
-  NAME
-    OCIDirPathColArrayEntrySet - OCI:  Set column array entry.
-
-  DESCRIPTION
-    Column array function which is used to set a specified entry in
-    a column array.
-
-  RETURNS
-    An OCI error code, Oracle errors are returned via the error handle.
-  NOTES
- */
-sword
-OCIDirPathColArrayEntrySet( OCIDirPathColArray *dpca, OCIError *errhp,
-                               ub4 rownum, ub2 colIdx, ub1 *cvalp, ub4 clen,
-                               ub1 cflg );
-
-/*
-  NAME
-    OCIDirPathColArrayRowGet - OCI:  Get column array row pointers.
-
-  DESCRIPTION
-    Column array function which is used to get the base row pointers
-    for a specified row in a column array.
-    To be used in lieu of OCIDirPathColArrayEntryGet() and
-    OCIDirPathColArrayEntrySet().
-
-  RETURNS
-    An OCI error code, Oracle errors are returned via the error handle.
-  NOTES
- */
-sword
-OCIDirPathColArrayRowGet( OCIDirPathColArray *dpca, OCIError *errhp,
-                         ub4 rownum, ub1 ***cvalppp, ub4 **clenpp,
-                         ub1 **cflgpp );
-
-/*
-  NAME
-    OCIDirPathColArrayReset - OCI: Reset Column Array State
-
-  DESCRIPTION
-    Function which resets the column array state.
-
-  RETURNS
-    An OCI error code, Oracle errors are returned via the error handle.
-  NOTES
-    Resetting the column array state is necessary when piecing in a large
-    column and an error occurs in the middle of loading the column.
- */
-sword
-OCIDirPathColArrayReset( OCIDirPathColArray *dpca, OCIError *errhp );
-
-/*
-  NAME
-    OCIDirPathColArrayToStream - OCI: Convert Column Array to Stream Format.
-
-  DESCRIPTION
-    Convert from column array format to stream format which is suitable
-    for loading via OCIDirPathLoadStream().
-
-  RETURNS
-    An OCI error code, Oracle errors are returned via the error handle.
-  NOTES
- */
-sword
-OCIDirPathColArrayToStream( OCIDirPathColArray *dpca,  OCIDirPathCtx *dpctx,
-                               OCIDirPathStream   *dpstr, OCIError      *errhp,
-                               ub4 rowcnt, ub4 rowoff );
-
-
-
-/*----------------------- OCIDirPathStream Operations -----------------------*/
-
-/*
-  NAME
-    OCIDirPathStreamReset - OCI:
-
-  DESCRIPTION
-
-  RETURNS
-    An OCI error code, Oracle errors are returned via the error handle.
-  NOTES
- */
-sword
-OCIDirPathStreamReset( OCIDirPathStream *dpstr, OCIError *errhp );
-
-#endif                                              /* OCI8DP_ORACLE */
diff --git a/src/terralib/drivers/Oracle/OCI/include/ociap.h b/src/terralib/drivers/Oracle/OCI/include/ociap.h
deleted file mode 100644
index 226a68e..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/ociap.h
+++ /dev/null
@@ -1,10240 +0,0 @@
-/*
- * $Header$
- */
-
-/* Copyright (c) 1996, 2003, Oracle Corporation.  All rights reserved.  */
- 
-/* NOTE:  See 'header_template.doc' in the 'doc' dve under the 'forms' 
-      directory for the header file template that includes instructions. 
-*/
- 
-/* 
-   NAME 
-     ociap.h - Oracle Call Interface - Ansi Prototypes
-
-   DESCRIPTION 
-     <short description of component this file declares/defines> 
-
-   RELATED DOCUMENTS 
- 
-   INSPECTION STATUS 
-     Inspection date: 
-     Inspection status: 
-     Estimated increasing cost defects per page: 
-     Rule sets: 
- 
-   ACCEPTANCE REVIEW STATUS 
-     Review date: 
-     Review status: 
-     Reviewers: 
- 
-   PUBLIC FUNCTION(S) 
-     <list of external functions declared/defined - with one-line descriptions>
-
-   PRIVATE FUNCTION(S)
-     <list of static functions defined in .c file - with one-line descriptions>
-
-   EXAMPLES
-
-   NOTES
-     <other useful comments, qualifications, etc.>
-
-   MODIFIED   (MM/DD/YY)
-   debanerj    08/26/03 - 6003: Lob interface changes
-   sgollapu    06/23/03 - Add OCIPing
-   debanerj    01/16/03 - Bug 2753018: Lob Locator parameter for 
-                          OCILobGetStorageLimit
-   tkeefe      02/17/03 - bug-2773794: Add new interface for setting Kerb attrs
-   ataracha    01/03/03 - Move OCIXMLType functions to ocixml.h
-   akatti      11/28/02 - [2521361]:add OCIRowidToChar prototype
-   chliang     10/23/02 - add OCIFetchRowCallback
-   cparampa    10/13/02 - Fix the prototype of OCIAQListen(ansi prototype)
-   chliang     10/12/02 - add OCIBindRowCallback
-   debanerj    09/30/02 - Unlimited size LOB 6003
-   thoang      09/25/02 - Add csid to XMLType create functions
-   thoang      04/19/02 - Add OCIXMLTypeGetNS
-   aahluwal    08/09/02 - adding OCIAQDeqArray
-   aahluwal    06/03/02 - bug 2360115
-   skabraha    04/16/02 - fix compiler warnings
-   sichandr    02/12/02 - fix OCIXMLTypeExists
-   gayyappa    02/01/02 - fix 2210776 : change Dom to DOM 
-   sichandr    10/24/01 - OCISvcCtx for XMLType create routines
-   schandir    09/14/01 - Add prototypes for Stmt Caching
-   abande      09/04/01 - Add Prototypes for Session Pooling Methods
-   stakeda     09/12/01 - add OCINlsCharSetConvert
-   whe         08/28/01 - add OCIEnvNlsCreate
-   wzhang      08/22/01 - Add OCINlsCharSetNameToId.
-   whe         10/05/01 - add prototype for OCIXMLType functions
-   mdmehta     04/06/01 - Bug 1683763, OCIDateTimeToText: buf_size to ub4*
-   schandir    12/12/00 - modify the ociconnectionpoolcreate() interface.
-   porangas    12/04/00 - Forward merge bug#974710 to 9i
-   rpingte     11/29/00 - Fix bug# 1485795.
-   gtarora     11/30/00 - fix comment for OCILobIsTemporary
-   akatti      11/07/00 - [1198379]:add OCIRowidToChar
-   bpalaval    10/15/00 - Forward merge 892654.
-   kmohan      09/18/00 - add OCILogon2
-   etucker     07/28/00 - add OCIIntervalFromTZ
-   vjayaram    07/18/00 - add connection pooling changes
-   etucker     07/13/00 - add dls apis for oci
-   hmasaki     07/05/00 - fix 1230846: forward merge into 8.2
-   mbastawa    06/05/00 - add OCIStmtFetch2
-   rxgovind    06/07/00 - update OCIAnyData interfaces
-   rxgovind    05/04/00 - add OCIAnyDataSet interfaces
-   rkasamse    05/01/00 - remove attrno from OCIAnyDataAttrGet
-   rkasamse    03/13/00 - add prototype s for OCCIAnyData
-   slari       09/01/99 - remove OCIEnvCallback
-   slari       08/23/99 - add OCIUcb in user callback functions
-   dsaha       07/07/99 - Add OCIFEnvCreate for forms
-   vyanaman    06/21/99 - Change OCI DateTime/Interval APIs.
-   esoyleme    07/01/99 - expose MTS performance enhancements                  
-   whe         06/14/99 - bug727872:add CONST to match definitions
-   kkarun      02/23/99 - Fix OCIDateTime APIs
-   jiyang      12/07/98 - Add comments for OCI_NLS_DUAL_CURRENCY
-   aroy        12/01/98 - add OCIEnvCreate
-   slari       11/23/98 - use ORASTDARG
-   slari       11/21/98 - replace ellipsis by arglist in OCIUserCallback
-   thchang     10/20/98 - correct comment on OCILobCreateTemporary
-   slari       09/08/98 - allow envh to receive error info also in CallbackReg/
-   kkarun      09/02/98 - Change const to CONST
-   aroy        08/04/98 - add OCITerminate calls                               
-   nramakri    06/25/98 - remove CONST from some OCIPickler APIs
-   jiyang      06/22/98 - Fix a lint error
-   nmallava    06/08/98 - ociistemporary -> envhp
-   jhasenbe    05/27/98 - Remove definitions for U-Calls (Unicode)
-   nmallava    05/18/98 - add comments
-   sgollapu    05/19/98 - Change text to OraText
-   aroy        04/20/98 - merge forward 8.0.5 -> 8.1.3
-   nbhatt      05/14/98 -  aq listen call
-   lchidamb    03/02/98 - Client Notification prototypes
-   vyanaman    04/19/98 - System Timestamp
-   kkarun      04/17/98 - Add more Interval functions
-   vyanaman    04/17/98 - Fix min (proc error)
-   vyanaman    04/16/98 - Add get/set TZ
-   kkarun      04/13/98 - Add Datetime prototypes
-   rkasamse    04/13/98 - change OCIEnv* to dvoid* for context/memory cart serv
-   rkasamse    04/15/98 - chage pickler cart interface
-   slari       03/20/98 - change proto of OCIUserCallback
-   slari       02/17/98 - add OCIUserCallback
-   jiyang      04/02/98 - Accept both env and user handles for NLS
-   rkasamse    03/20/98 - remove prototypes for OCIMemoryDuration* functions.
-   tsaulys     03/20/98 - use environment or session handle
-   nmallava    04/09/98 - OCILobLocatorAssign
-   nmallava    04/07/98 - lobgetchunksize and writeappend apis
-   jhasenbe    04/06/98 - Add new interfaces for Unicode support
-   nmallava    03/17/98 - add interfaces
-   nmallava    03/16/98 - add open/close apis
-   nmallava    03/10/98 - add temporary lobs apis
-   sgollapu    07/10/97 - Add OCIReset
-   sgollapu    02/09/98 - OCI non-blocking
-   nramakri    01/16/98 - remove #ifdef NEVER clause for OCIExtract
-   rmurthy     01/08/98 - OCIContextGenerateKey: change ub1 to ub4
-   ewaugh      12/18/97 - Turn type wrappers into functions.
-   skabraha    12/02/97 - adding OCIFile functions
-   rhwu        12/02/97 - add OCI Thread
-   nramakri    12/15/97 - move to core4
-   nramakri    12/11/97 - modify OCIExtract prototype
-   ewaugh      12/10/97 - add OCIFormat prototypes
-   nmallava    12/17/97 - Add ilob open and close apis
-   rkasamse    12/03/97 - Change some of the function names for pickler cartrid
-   nramakri    11/12/97 - add OCIExtract prototypes
-   rkasamse    11/21/97 - add prototypes for memory cartridge services and cont
-   rkasamse    11/03/97 - Add pickler cartridge interfaces.
-   jiyang      11/11/97 - Add NLS service for cartridge
-   tanguyen    08/19/97 -
-   cxcheng     07/30/97 - replace OCISvcCtx with OCISvcCtx
-   schandra    06/25/97 - AQ OCI interface
-   bnainani    07/21/97 - add prototypes for Oracle XA extensions
-   esoyleme    05/13/97 - move failover callback prototype
-   skmishra    05/06/97 - stdc compiler fixes
-   skmishra    04/24/97 - C++ Compatibility changes
-   skotsovo    04/21/97 - make lob parameter names consistent
-   rwhitman    04/16/97 - Fix LOB prototypes - Olint OCI 8.0.3
-   ramkrish    04/15/97 - Add free flag to OCILobFlushBuffer
-   dchatter    04/10/97 - add nzt.h inclusion
-   cxcheng     04/09/97 - change objnamp from CONST text* to dvoid*
-   cxcheng     04/08/97 - fix prototype of OCIDescribeAny()
-   skotsovo    03/31/97 - remove OCILobLocatorSize
-   skotsovo    03/27/97 - add OCILobLoadFromFile
-   bcchang     02/18/97 - Fix syntax error
-   dchatter    01/13/97 - fix comments on LOB calls
-   aroy        01/10/97 - remove ocilobfilecreate delete
-   sgollapu    12/27/96 - Correct OCILogon prototype
-   dchatter    01/04/97 - comments to describe the functions
-   sgollapu    11/25/96 - Change OCILobFileIsExistent
-   schandra    11/18/96 - Remove xa.h include
-   sgollapu    11/09/96 - Change prototype of OCIDescribeAny
-   dchatter    10/31/96 - delete CONST from lob write cb fn
-   dchatter    10/30/96 - more changes
-   dchatter    10/26/96 - lob/file long name corrections
-   slari       10/16/96 - delete unused calls
-   rwessman    10/29/96 - Fixed OCISecurityGetIdentity prototype
-   bcchang     10/25/96 - Fix syntax error
-   sgollapu    10/22/96 - Add OCILogon and OCILogoff
-   rwessman    10/16/96 - Added cryptographic and digital signature functions
-   sgollapu    10/10/96 - Add ocibdp and ocibdn
-   rxgovind    10/07/96 - add oci file calls
-   skotsovo    10/01/96 - move orl lob fnts to oci
-   skotsovo    09/20/96 - in OCILobGetLength(), remove the 'isnull' parameter.
-   aroy        08/29/96 - change prototype for Nchar Lob support
-   dchatter    08/21/96 - OCIResultSetToStmt prototype change
-   sthakur     08/14/96 - add OCIParamSet
-   schandra    07/26/96 - TX OCI return values - sb4->sword
-   aroy        07/17/96 - terminology change: OCILobLocator => OCILobLocator
-   dchatter    07/01/96 - create ANSI prototypes
-   dchatter    07/01/96 - Creation
-
-*/
-
- 
-#ifndef OCIAP_ORACLE
-# define OCIAP_ORACLE
-
-# ifndef ORATYPES 
-#  include <oratypes.h> 
-# endif 
- 
-#ifndef ORASTDARG
-#include <stdarg.h>
-#define ORASTDARG
-#endif
-
-#ifndef OCIDFN
-#include <ocidfn.h>
-#endif
-
-#ifndef NZT_ORACLE
-#include <nzt.h>
-#endif /* NZT_ORACLE */
- 
-#ifndef OCI_ORACLE
-#include <oci.h>
-#endif
-
-#ifndef ORT_ORACLE
-#include <ort.h>
-#endif
-
-
-
-/*---------------------------------------------------------------------------
-                     PUBLIC TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                     PRIVATE TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                           PUBLIC FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-/*****************************************************************************
-                              DESCRIPTION
-******************************************************************************
-Note: the descriptions of the functions are alphabetically arranged. Please 
-maintain the arrangement when adding a new function description. The actual 
-prototypes are below this comment section and donot follow any alphabetical 
-ordering. 
-
-
---------------------------------OCIAttrGet------------------------------------
-
-OCIAttrGet()
-Name
-OCI Attribute Get
-Purpose
-This call is used to get a particular attribute of a handle. 
-Syntax
-sword OCIAttrGet ( CONST dvoid    *trgthndlp,
-                 ub4            trghndltyp,
-                 dvoid          *attributep,
-                 ub4            *sizep,
-                 ub4            attrtype,
-                 OCIError       *errhp );
-Comments
-This call is used to get a particular attribute of a handle.
-See Appendix B,  "Handle Attributes",  for a list of handle types and their 
-readable attributes.
-Parameters
-trgthndlp (IN) - is the pointer to a handle type. 
-trghndltyp (IN) - is the handle type. 
-attributep (OUT) - is a pointer to the storage for an attribute value. The 
-attribute value is filled in. 
-sizep (OUT) - is the size of the attribute value. 
-This can be passed in as NULL for most parameters as the size is well known. 
-For text* parameters, a pointer to a ub4 must be passed in to get the length 
-of the string. 
-attrtype (IN) - is the type of attribute.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-Related Functions
-OCIAttrSet()
-
---------------------------------OCIAttrSet------------------------------------
-
-
-OCIAttrSet()
-Name
-OCI Attribute Set
-Purpose
-This call is used to set a particular attribute of a handle or a descriptor. 
-Syntax
-sword OCIAttrSet ( dvoid       *trgthndlp,
-                 ub4         trghndltyp,
-                 dvoid       *attributep,
-                 ub4         size,
-                 ub4         attrtype,
-                 OCIError    *errhp );
-Comments
-This call is used to set a particular attribute of a handle or a descriptor. 
-See Appendix B for a list of handle types and their writeable attributes.
-Parameters
-trghndlp (IN/OUT) - the pointer to a handle type whose attribute gets 
-modified. 
-trghndltyp (IN/OUT) - is the handle type. 
-attributep (IN) - a pointer to an attribute value. 
-The attribute value is copied into the target handle. If the attribute value 
-is a pointer, then only the pointer is copied, not the contents of the pointer.
-size (IN) - is the size of an attribute value. This can be passed in as 0 for 
-most attributes as the size is already known by the OCI library. For text*
-attributes, a ub4 must be passed in set to the length of the string. 
-attrtype (IN) - the type of attribute being set.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-Related Functions
-OCIAttrGet()
-
-
-
---------------------------------OCIBindArrayOfStruct--------------------------
-
-
-
-OCIBindArrayOfStruct()
-Name
-OCI Bind for Array of Structures
-Purpose
-This call sets up the skip parameters for a static array bind.
-Syntax
-sword OCIBindArrayOfStruct ( OCIBind     *bindp,
-                           OCIError    *errhp,
-                           ub4         pvskip, 
-                           ub4         indskip, 
-                           ub4         alskip, 
-                           ub4         rcskip );
-Comments
-This call sets up the skip parameters necessary for a static array bind.
-This call follows a call to OCIBindByName() or OCIBindByPos(). The bind 
-handle returned by that initial bind call is used as a parameter for the 
-OCIBindArrayOfStruct() call.
-For information about skip parameters, see the section "Arrays of Structures" 
-on page 4-16.
-Parameters
-bindp (IN) - the handle to a bind structure. 
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-pvskip (IN) - skip parameter for the next data value. 
-indskip (IN) - skip parameter for the next indicator value or structure. 
-alskip (IN) - skip parameter for the next actual length value. 
-rcskip (IN) - skip parameter for the next column-level return code value. 
-Related Functions
-OCIAttrGet()
-
-
---------------------------------OCIBindByName---------------------------------
-
-OCIBindByName()
-Name
-OCI Bind by Name
-Purpose
-Creates an association between a program variable and a placeholder in a SQL 
-statement or PL/SQL block.
-Syntax
-sword OCIBindByName (
-              OCIStmt       *stmtp, 
-              OCIBind       **bindp,
-              OCIError      *errhp,
-              CONST OraText    *placeholder,
-              sb4           placeh_len,
-              dvoid         *valuep,
-              sb4           value_sz,
-              ub2           dty,
-              dvoid         *indp,
-              ub2           *alenp,
-              ub2           *rcodep,
-              ub4           maxarr_len,
-              ub4           *curelep, 
-              ub4           mode ); 
-Description
-This call is used to perform a basic bind operation. The bind creates an 
-association between the address of a program variable and a placeholder in a 
-SQL statement or PL/SQL block. The bind call also specifies the type of data 
-which is being bound, and may also indicate the method by which data will be 
-provided at runtime.
-This function also implicitly allocates the bind handle indicated by the bindp 
-parameter.
-Data in an OCI application can be bound to placeholders statically or 
-dynamically. Binding is static when all the IN bind data and the OUT bind 
-buffers are well-defined just before the execute. Binding is dynamic when the 
-IN bind data and the OUT bind buffers are provided by the application on 
-demand at execute time to the client library. Dynamic binding is indicated by 
-setting the mode parameter of this call to OCI_DATA_AT_EXEC.
-Related Functions: For more information about dynamic binding, see 
-the section "Runtime Data Allocation and Piecewise Operations" on 
-page 5-16.
-Both OCIBindByName() and OCIBindByPos() take as a parameter a bind handle, 
-which is implicitly allocated by the bind call A separate bind handle is 
-allocated for each placeholder the application is binding.
-Additional bind calls may be required to specify particular attributes 
-necessary when binding certain data types or handling input data in certain 
-ways:
-If arrays of structures are being utilized, OCIBindArrayOfStruct() must 
-be called to set up the necessary skip parameters.
-If data is being provided dynamically at runtime, and the application 
-will be using user-defined callback functions, OCIBindDynamic() must 
-be called to register the callbacks.
-If a named data type is being bound, OCIBindObject() must be called to 
-specify additional necessary information.
-Parameters
-stmth (IN/OUT) - the statement handle to the SQL or PL/SQL statement 
-being processed.
-bindp (IN/OUT) - a pointer to a pointer to a bind handle which is implicitly 
-allocated by this call.  The bind handle  maintains all the bind information 
-for this particular input value. The handle is feed implicitly when the 
-statement handle is deallocated.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-placeholder (IN) - the placeholder attributes are specified by name if 
-ocibindn() is being called.
-placeh_len (IN) - the length of the placeholder name specified in placeholder.
-valuep (IN/OUT) - a pointer to a data value or an array of data values of the 
-type specified in the dty parameter. An array of data values can be specified 
-for mapping into a PL/SQL table or for providing data for SQL multiple-row 
-operations. When an array of bind values is provided, this is called an array 
-bind in OCI terms. Additional attributes of the array bind (not bind to a 
-column of ARRAY type) are set up in OCIBindArrayOfStruct() call. 
-For a REF, named data type  bind, the valuep parameter is used only for IN 
-bind data. The pointers to OUT buffers are set in the pgvpp parameter 
-initialized by OCIBindObject(). For named data type and REF binds, the bind 
-values are unpickled into the Object Cache. The OCI object navigational calls 
-can then be used to navigate the objects and the refs in the Object Cache.
-If the OCI_DATA_AT_EXEC mode is specified in the mode parameter, valuep 
-is ignored for all data types. OCIBindArrayOfStruct() cannot be used and 
-OCIBindDynamic() must be invoked to provide callback functions if desired. 
-value_sz (IN) - the size of a data value. In the case of an array bind, this is
-the maximum size of any element possible with the actual sizes being specified 
-in the alenp parameter. 
-If the OCI_DATA_AT_EXEC mode is specified, valuesz defines the maximum 
-size of the data that can be ever provided at runtime for data types other than
-named data types or REFs. 
-dty (IN) - the data type of the value(s) being bound. Named data types 
-(SQLT_NTY) and REFs (SQLT_REF) are valid only if the application has been 
-initialized in object mode. For named data types, or REFs, additional calls 
-must be made with the bind handle to set up the datatype-specific attributes.
-indp (IN/OUT) - pointer to an indicator variable or array. For scalar data 
-types, this is a pointer to sb2 or an array of sb2s. For named data types, 
-this pointer is ignored and the actual pointer to the indicator structure or 
-an array of indicator structures is initialized by OCIBindObject(). 
-Ignored for dynamic binds.
-See the section "Indicator Variables" on page 2-43 for more information about 
-indicator variables.
-alenp (IN/OUT) - pointer to array of actual lengths of array elements. Each 
-element in alenp is the length of the data in the corresponding element in the 
-bind value array before and after the execute. This parameter is ignored for 
-dynamic binds.
-rcodep (OUT) - pointer to array of column level return codes. This parameter 
-is ignored for dynamic binds.
-maxarr_len (IN) - the maximum possible number of elements of type dty in a 
-PL/SQL binds. This parameter is not required for non-PL/SQL binds. If 
-maxarr_len is non-zero, then either OCIBindDynamic() or 
-OCIBindArrayOfStruct() can be invoked to set up additional bind attributes. 
-curelep(IN/OUT) - a pointer to the actual number of elements. This parameter 
-is only required for PL/SQL binds.
-mode (IN) - the valid modes for this parameter are:
-OCI_DEFAULT. This is default mode.
-OCI_DATA_AT_EXEC. When this mode is selected, the value_sz 
-parameter defines the maximum size of the data that can be ever 
-provided at runtime. The application must be ready to provide the OCI 
-library runtime IN data buffers at any time and any number of times. 
-Runtime data is provided in one of the two ways:
-callbacks using a user-defined function which must be registered 
-with a subsequent call to OCIBindDynamic(). 
-a polling mechanism using calls supplied by the OCI. This mode 
-is assumed if no callbacks are defined.
-For more information about using the OCI_DATA_AT_EXEC mode, see 
-the section "Runtime Data Allocation and Piecewise Operations" on 
-page 5-16.
-When the allocated buffers are not required any more, they should be 
-freed by the client. 
-Related Functions
-OCIBindDynamic(), OCIBindObject(), OCIBindArrayOfStruct(), OCIAttrGet()
-
-
-
--------------------------------OCIBindByPos-----------------------------------
-
-
-OCIBindByPos()
-Name
-OCI Bind by Position
-Purpose
-Creates an association between a program variable and a placeholder in a SQL 
-statement or PL/SQL block.
-Syntax
-sword OCIBindByPos ( 
-              OCIStmt      *stmtp, 
-              OCIBind      **bindp,
-              OCIError     *errhp,
-              ub4          position,
-              dvoid        *valuep,
-              sb4          value_sz,
-              ub2          dty,
-              dvoid        *indp,
-              ub2          *alenp,
-              ub2          *rcodep,
-              ub4          maxarr_len,
-              ub4          *curelep, 
-              ub4          mode);
-
-Description
-This call is used to perform a basic bind operation. The bind creates an 
-association between the address of a program variable and a placeholder in a 
-SQL statement or PL/SQL block. The bind call also specifies the type of data 
-which is being bound, and may also indicate the method by which data will be 
-provided at runtime.
-This function also implicitly allocates the bind handle indicated by the bindp 
-parameter.
-Data in an OCI application can be bound to placeholders statically or 
-dynamically. Binding is static when all the IN bind data and the OUT bind 
-buffers are well-defined just before the execute. Binding is dynamic when the 
-IN bind data and the OUT bind buffers are provided by the application on 
-demand at execute time to the client library. Dynamic binding is indicated by 
-setting the mode parameter of this call to OCI_DATA_AT_EXEC.
-Related Functions: For more information about dynamic binding, see 
-the section "Runtime Data Allocation and Piecewise Operations" on 
-page 5-16
-Both OCIBindByName() and OCIBindByPos() take as a parameter a bind handle, 
-which is implicitly allocated by the bind call A separate bind handle is 
-allocated for each placeholder the application is binding.
-Additional bind calls may be required to specify particular attributes 
-necessary when binding certain data types or handling input data in certain 
-ways:
-If arrays of structures are being utilized, OCIBindArrayOfStruct() must 
-be called to set up the necessary skip parameters.
-If data is being provided dynamically at runtime, and the application 
-will be using user-defined callback functions, OCIBindDynamic() must 
-be called to register the callbacks.
-If a named data type is being bound, OCIBindObject() must be called to 
-specify additional necessary information.
-Parameters
-stmth (IN/OUT) - the statement handle to the SQL or PL/SQL statement 
-being processed.
-bindp (IN/OUT) - a pointer to a pointer to a bind handle which is implicitly 
-allocated by this call.  The bind handle  maintains all the bind information 
-for this particular input value. The handle is feed implicitly when the 
-statement handle is deallocated.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-position (IN) - the placeholder attributes are specified by position if 
-ocibindp() is being called.
-valuep (IN/OUT) - a pointer to a data value or an array of data values of the 
-type specified in the dty parameter. An array of data values can be specified 
-for mapping into a PL/SQL table or for providing data for SQL multiple-row 
-operations. When an array of bind values is provided, this is called an array 
-bind in OCI terms. Additional attributes of the array bind (not bind to a 
-column of ARRAY type) are set up in OCIBindArrayOfStruct() call. 
-For a REF, named data type  bind, the valuep parameter is used only for IN 
-bind data. The pointers to OUT buffers are set in the pgvpp parameter 
-initialized by OCIBindObject(). For named data type and REF binds, the bind 
-values are unpickled into the Object Cache. The OCI object navigational calls 
-can then be used to navigate the objects and the refs in the Object Cache.
-If the OCI_DATA_AT_EXEC mode is specified in the mode parameter, valuep 
-is ignored for all data types. OCIBindArrayOfStruct() cannot be used and 
-OCIBindDynamic() must be invoked to provide callback functions if desired. 
-value_sz (IN) - the size of a data value. In the case of an array bind, this is
-the maximum size of any element possible with the actual sizes being specified
-in the alenp parameter. 
-If the OCI_DATA_AT_EXEC mode is specified, valuesz defines the maximum 
-size of the data that can be ever provided at runtime for data types other than
-named data types or REFs. 
-dty (IN) - the data type of the value(s) being bound. Named data types 
-(SQLT_NTY) and REFs (SQLT_REF) are valid only if the application has been 
-initialized in object mode. For named data types, or REFs, additional calls 
-must be made with the bind handle to set up the datatype-specific attributes.
-indp (IN/OUT) - pointer to an indicator variable or array. For scalar data 
-types, this is a pointer to sb2 or an array of sb2s. For named data types, 
-this pointer is ignored and the actual pointer to the indicator structure or 
-an array of indicator structures is initialized by OCIBindObject(). Ignored 
-for dynamic binds.
-See the section "Indicator Variables" on page 2-43 for more information about 
-indicator variables.
-alenp (IN/OUT) - pointer to array of actual lengths of array elements. Each 
-element in alenp is the length of the data in the corresponding element in the 
-bind value array before and after the execute. This parameter is ignored for 
-dynamic binds.
-rcodep (OUT) - pointer to array of column level return codes. This parameter 
-is ignored for dynamic binds.
-maxarr_len (IN) - the maximum possible number of elements of type dty in a 
-PL/SQL binds. This parameter is not required for non-PL/SQL binds. If 
-maxarr_len is non-zero, then either OCIBindDynamic() or 
-OCIBindArrayOfStruct() can be invoked to set up additional bind attributes. 
-curelep(IN/OUT) - a pointer to the actual number of elements. This parameter 
-is only required for PL/SQL binds.
-mode (IN) - the valid modes for this parameter are:
-OCI_DEFAULT. This is default mode.
-OCI_DATA_AT_EXEC. When this mode is selected, the value_sz 
-parameter defines the maximum size of the data that can be ever 
-provided at runtime. The application must be ready to provide the OCI 
-library runtime IN data buffers at any time and any number of times. 
-Runtime data is provided in one of the two ways:
-callbacks using a user-defined function which must be registered 
-with a subsequent call to OCIBindDynamic() . 
-a polling mechanism using calls supplied by the OCI. This mode 
-is assumed if no callbacks are defined.
-For more information about using the OCI_DATA_AT_EXEC mode, see 
-the section "Runtime Data Allocation and Piecewise Operations" on 
-page 5-16.
-When the allocated buffers are not required any more, they should be 
-freed by the client. 
-Related Functions
-OCIBindDynamic(), OCIBindObject(), OCIBindArrayOfStruct(), OCIAttrGet()
-
-
-
--------------------------------OCIBindDynamic---------------------------------
-
-OCIBindDynamic()
-Name
-OCI Bind Dynamic Attributes
-Purpose
-This call is used to register user callbacks for dynamic data allocation. 
-Syntax
-sword OCIBindDynamic( OCIBind     *bindp,
-                    OCIError    *errhp,
-                    dvoid       *ictxp, 
-                    OCICallbackInBind         (icbfp)(
-                                dvoid            *ictxp,
-                                OCIBind          *bindp,
-                                ub4              iter, 
-                                ub4              index, 
-                                dvoid            **bufpp,
-                                ub4              *alenp,
-                                ub1              *piecep, 
-                                dvoid            **indp ),
-                    dvoid       *octxp,
-                    OCICallbackOutBind         (ocbfp)(
-                                dvoid            *octxp,
-                                OCIBind          *bindp,
-                                ub4              iter, 
-                                ub4              index, 
-                                dvoid            **bufp, 
-                                ub4              **alenpp,
-                                ub1              *piecep,
-                                dvoid            **indpp, 
-                                ub2              **rcodepp)   );
-Comments
-This call is used to register user-defined callback functions for providing 
-data for an UPDATE or INSERT if OCI_DATA_AT_EXEC mode was specified in a 
-previous call to OCIBindByName() or OCIBindByPos(). 
-The callback function pointers must return OCI_CONTINUE if it the call is 
-successful. Any return code other than OCI_CONTINUE signals that the client 
-wishes to abort processing immediately.
-For more information about the OCI_DATA_AT_EXEC mode, see the section 
-"Runtime Data Allocation and Piecewise Operations" on page 5-16.
-Parameters
-bindp (IN/OUT) - a bind handle returned by a call to OCIBindByName() or 
-OCIBindByPos(). 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-ictxp (IN) - the context pointer required by the call back function icbfp. 
-icbfp (IN) - the callback function which returns a pointer to the IN bind 
-value or piece at run time. The callback takes in the following parameters. 
-ictxp (IN/OUT) - the context pointer for this callback function. 
-bindp (IN) - the bind handle passed in to uniquely identify this bind 
-variable. 
-iter (IN) - 1-based execute iteration value. 
-index (IN) - index of the current array, for an array bind. 1 based not 
-greater than curele parameter of the bind call. 
-index (IN) - index of the current array, for an array bind. This parameter 
-is 1-based, and may not be greater than curele parameter of the bind call. 
-bufpp (OUT) - the pointer to the buffer. 
-piecep (OUT) - which piece of the bind value. This can be one of the 
-following values - OCI_ONE_PIECE, OCI_FIRST_PIECE, 
-OCI_NEXT_PIECE and OCI_LAST_PIECE.
-indp (OUT) - contains the indicator value. This is apointer to either an 
-sb2 value or a pointer to an indicator structure for binding named data 
-types. 
-indszp (OUT) - contains the indicator value size. A pointer containing 
-the size of either an sb2 or an indicator structure pointer. 
-octxp (IN) - the context pointer required by the callback function ocbfp. 
-ocbfp (IN) - the callback function which returns a pointer to the OUT bind 
-value or piece at run time. The callback takes in the following parameters. 
-octxp (IN/OUT) - the context pointer for this call back function. 
-bindp (IN) - the bind handle passed in to uniquely identify this bind 
-variable. 
-iter (IN) - 1-based execute iteration value. 
-index (IN) - index of the current array, for an array bind. This parameter 
-is 1-based, and must not be greater than curele parameter of the bind call. 
-bufpp (OUT) - a pointer to a buffer to write the bind value/piece. 
-buflp (OUT) - returns the buffer size. 
-alenpp (OUT) - a pointer to a storage for OCI to fill in the size of the bind 
-value/piece after it has been read. 
-piecep (IN/OUT) - which piece of the bind value. It will be set by the 
-library to be one of the following values - OCI_ONE_PIECE or 
-OCI_NEXT_PIECE. The callback function can leave it unchanged or set 
-it to OCI_FIRST_PIECE or OCI_LAST_PIECE. By default - 
-OCI_ONE_PIECE. 
-indpp (OUT) - returns a pointer to contain the indicator value which 
-either an sb2 value or a pointer to an indicator structure for named data 
-types. 
-indszpp (OUT) - returns a pointer to return the size of the indicator 
-value which is either size of an sb2 or size of an indicator structure. 
-rcodepp (OUT) - returns a pointer to contains the return code. 
-Related Functions
-OCIAttrGet()
-
-
----------------------------------OCIBindObject--------------------------------
-
-
-OCIBindObject()
-Name
-OCI Bind Object
-Purpose
-This function sets up additional attributes which are required for a named 
-data type (object)  bind.
-Syntax
-sword OCIBindObject ( OCIBind          *bindp,
-                    OCIError         *errhp, 
-                    CONST OCIType    *type,
-                    dvoid            **pgvpp, 
-                    ub4              *pvszsp, 
-                    dvoid            **indpp, 
-                    ub4              *indszp, );
-Comments
-This function sets up additional attributes which binding a named data type 
-or a REF. An error will be returned if this function is called when the OCI 
-environment has been initialized in non-object mode. 
-This call takes as a paramter a type descriptor object (TDO) of datatype 
-OCIType for the named data type being defined.  The TDO can be retrieved 
-with a call to OCITypeByName().
-If the OCI_DATA_AT_EXEC mode was specified in ocibindn() or ocibindp(), the 
-pointers to the IN buffers are obtained either using the callback icbfp 
-registered in the OCIBindDynamic() call or by the OCIStmtSetPieceInfo() call. 
-The buffers are dynamically allocated for the OUT data and the pointers to 
-these buffers are returned either by calling ocbfp() registered by the 
-OCIBindDynamic() or by setting the pointer to the buffer in the buffer passed 
-in by OCIStmtSetPieceInfo() called when OCIStmtExecute() returned 
-OCI_NEED_DATA. The memory of these client library- allocated buffers must be 
-freed when not in use anymore by using the OCIObjectFreee() call.
-Parameters
-bindp ( IN/OUT) - the bind handle returned by the call to OCIBindByName() 
-or OCIBindByPos(). 
-errhp ( IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-type ( IN) - points to the TDO which describes the type of the program 
-variable being bound. Retrieved by calling OCITypeByName().
-pgvpp ( IN/OUT) - points to a pointer to the program variable buffer. For an 
-array, pgvpp points to an array of pointers. When the bind variable is also an 
-OUT variable, the OUT Named Data Type value or REF is allocated 
-(unpickled) in the Object Cache, and a pointer to the value or REF is returned,
-At the end of execute, when all OUT values have been received, pgvpp points 
-to an array of pointer(s) to these newly allocated named data types in the 
-object cache. 
-pgvpp is ignored if the OCI_DATA_AT_EXEC mode is set. Then the Named 
-Data Type buffers are requested at runtime. For static array binds, skip 
-factors may be specified using the OCIBindArrayOfStruct() call. The skip 
-factors are used to compute the address of the next pointer to the value, the 
-indicator structure and their sizes.
-pvszsp ( IN/OUT) - points to the size of the program variable. The size of the 
-named data type is not required on input. For an array, pvszsp is an array of 
-ub4s. On return, for OUT bind variables, this points to size(s) of the Named 
-Data Types and REFs received. pvszsp is ignored if the OCI_DATA_AT_EXEC 
-mode is set. Then the size of the buffer is taken at runtime.
-indpp ( IN/OUT) - points to a pointer to the program variable buffer 
-containing the parallel indicator structure. For an array, points to an array 
-of pointers. When the bind variable is also an OUT bind variable, memory is 
-allocated in the object cache, to store the unpickled OUT indicator values. At 
-the end of the execute when all OUT values have been received, indpp points 
-to the pointer(s) to these newly allocated indicator structure(s). 
-indpp is ignored if the OCI_DATA_AT_EXEC mode is set. Then the indicator 
-is requested at runtime.
-indszp ( IN/OUT) - points to the size of the IN indicator structure program 
-variable. For an array, it is an array of sb2s. On return for OUT bind 
-variables, this points to size(s) of the received OUT indicator structures.
-indszp is ignored if the OCI_DATA_AT_EXEC mode is set. Then the indicator 
-size is requested at runtime.
-Related Functions
-OCIAttrGet()
-
-
-
-----------------------------------OCIBreak------------------------------------
-
-
-OCIBreak()
-Name
-OCI Break
-Purpose
-This call performs an immediate (asynchronous) abort of any currently 
-executing OCI function that is associated with a server .
-Syntax
-sword OCIBreak ( dvoid      *hndlp,
-                 OCIError   *errhp);
-Comments
-This call performs an immediate (asynchronous) abort of any currently 
-executing OCI function that is associated with a server. It is normally used 
-to stop a long-running OCI call being processed on the server.
-This call can take either the service context handle or the server context 
-handle as a parameter to identify the function to be aborted.
-Parameters
-hndlp (IN) - the service context handle or the server context handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-Related Functions
-
------------------------------OCIConnectionPoolCreate --------------------------
-Name:
-OCIConnectionPoolCreate
-
-Purpose:
-Creates the connections in the pool
-
-Syntax:
-OCIConnectionPoolCreate (OCIEnv *envhp, OCIError *errhp, OCICPool *poolhp,
-                         OraText **poolName, sb4 *poolNameLen, 
-                         CONST Oratext *dblink, sb4 dblinkLen,
-                         ub4 connMin, ub4 connMax, ub4 connIncr,
-                         CONST OraText *poolUsername, sb4 poolUserLen,
-                         CONST OraText *poolPassword, sb4 poolPassLen, 
-                         ub4 mode)
-Comments:
-This call is used to create a connection pool. conn_min connections
-to the database are started on calling OCIConnectionPoolCreate.
-
-Parameters:
-envhp (IN/OUT)  - A pointer to the environment where the Conencton Pool
-                  is to be created
-errhp (IN/OUT)  - An error handle which can be passed to OCIErrorGet().
-poolhp (IN/OUT) - An uninitialiazed pool handle.
-poolName (OUT) - The connection pool name. 
-poolNameLen (OUT) - The length of the connection pool name 
-dblink (IN/OUT) - Specifies the database(server) to connect. This will also
-                  be used as the default pool name.
-dblinkLen (IN)  - The length of the string pointed to by dblink.
-connMin (IN)    - Specifies the minimum number of connections in the
-                  Connection Pool at any instant.
-                  connMin number of connections are started when
-                  OCIConnectionPoolCreate() is called.
-connMax (IN)    - Specifies the maximum number of connections that can be
-                  opened to the database. Once this value is reached, no
-                  more connections are opened.
-connIncr (IN)   - Allows application to set the next increment for
-                  connections to be opened to the database if the current
-                  number of connections are less than conn_max.
-poolUsername (IN/OUT) - Connection pooling requires an implicit proxy
-                         session and this attribute provides a username
-                         for that session.
-poolUserLen (IN) - This represents the length of pool_username.
-poolPassword (IN/OUT) - The password for the parameter pool_username passed
-                        above.
-poolPassLen (IN) - This represents the length of pool_password.
-
-mode (IN) - The modes supported are OCI_DEFAULT and 
-OCI_CPOOL_REINITIALIZE 
-
-Related Functions
-OCIConnectionPoolDestroy()
-
----------------------------------------------------------------------------
-
-----------------------------OCIConnectionPoolDestroy-------------------------
-Name:
-OCIConnectionPoolDestroy
-
-Purpose:
-Terminates the connections in the pool
-
-Syntax:
-OCIConnectionPoolDestroy (OCICPool *poolhp, OCIError *errhp, ub4 mode)
-
-Comments:
-On calling OCIConnectionPoolDestroy, all the open connections in the pool
-are closed and the pool is destroyed.
-
-Parameters:
-poolhp (IN/OUT) - An initialiazed pool handle.
-errhp (IN/OUT)  - An error handle which can be passed to OCIErrorGet().
-mode (IN)       - Currently, OCIConnectionPoolDestroy() will support only
-                  the OCI_DEFAULT mode.
-
-Related Functions:
-OCIConnectionPoolCreate()
-
------------------------------------------------------------------------------
-----------------------------OCISessionPoolCreate-----------------------------
-Name: 
-OCISessionPoolCreate
-
-Purpose:
-Creates the sessions in the session pool.
-
-Syntax:
-sword OCISessionPoolCreate (OCIEnv *envhp, OCIError *errhp, OCISpool *spoolhp, 
-                      OraText **poolName, ub4 *poolNameLen, 
-                      CONST OraText *connStr, ub4 connStrLen,
-                      ub4 sessMin, ub4 sessMax, ub4 sessIncr,
-                      OraText *userid,  ub4 useridLen,
-                      OraText *password, ub4 passwordLen,
-                      ub4 mode)
-
-Comments:
-When OCISessionPoolCreate is called, a session pool is initialized for
-the associated environment and the database specified by the
-connStr parameter. This pool is named uniquely and the name
-is returned to the user in the poolname parameter.
-
-Parameters:
-envhp (IN/OUT) - A pointer to the environment handle in which the session
-                 pool needs to be created.
-errhp (IN/OUT) - An error handle which can be passed to OCIErrorGet().
-spoolhp (IN/OUT) - A pointer to the session pool handle that is created.
-poolName (OUT) - Session pool name returned to the user.
-poolNameLen (OUT) - Length of the PoolName
-connStr (IN) - The TNS alias of the database to connect to.
-connStrLen (IN) - Length of the connStr.
-sessMin (IN) - Specifies the minimum number of sessions in the Session Pool.
-               These are the number of sessions opened in the beginning, if
-               in Homogeneous mode. Else, the parameter is ignored.
-sessMax (IN) - Specifies the maximum number of sessions in the Session Pool.
-               Once this value is reached, no more sessions are opened,
-               unless the OCI_ATTR_SPOOL_FORCEGET is set.
-userid (IN) - Specifies the userid with which to start up the sessions.
-useridLen (IN) - Length of userid.
-password (IN) - Specifies the password for the corresponding userid.
-passwordLen (IN) - Specifies the length of the password
-mode(IN) - May be OCI_DEFAULT, OCI_SPC_SPOOL_REINITIALIZE, or
-           OCI_SPC_SPOOL_HOMOGENEOUS.
-
-Returns:
-SUCCESS - If pool could be allocated and created successfully.
-ERROR - If above conditions could not be met.
-
-Related Functions:
-OCISessionPoolDestroy()
------------------------------------------------------------------------------
------------------------------OCISessionPoolDestroy---------------------------
-Name:
-OCISessionPoolDestroy
-
-Purpose:
-Terminates all the sessions in the session pool.
-
-Syntax:
-sword OCISessionPoolDestroy (OCISPool *spoolhp, OCIError *errhp, ub4 mode)
-
-Comments:
-spoolhp (IN/OUT) - The pool handle of the session pool to be destroyed.
-errhp (IN/OUT) - An error handle which can be passed to OCIErrorGet().
-mode (IN) - Currently only OCI_DEFAULT mode is supported.
-
-Returns:
-SUCCESS - All the sessions could be closed.
-ERROR - If the above condition is not met.
-
-Related Functions:
-OCISessionPoolCreate()
------------------------------------------------------------------------------
--------------------------------OCISessionGet---------------------------------
-Name:
-OCISessionGet
-
-Purpose:
-Get a session. This could be from a session pool, connection pool or
-a new standalone session.
-
-Syntax:
-sword OCISessionGet(OCIenv *envhp, OCIError *errhp, OCISvcCtx **svchp,
-                    OCIAuthInfo *authhp,
-                    OraText *poolName, ub4 poolName_len,
-                    CONST OraText *tagInfo, ub4 tagInfo_len,
-                    OraText **retTagInfo, ub4 *retTagInfo_len,
-                    boolean *found,
-                    ub4 mode)
-
-Comments:
-envhp (IN/OUT) - OCI environment handle.
-errhp (IN/OUT) - OCI error handle to be passed to OCIErrorGet().
-svchp (IN/OUT) - Address of an OCI service context pointer. This will be
-                 filled with a server and session handle, attached to the
-                 pool.
-authhp (IN/OUT) - OCI Authentication Information handle.
-poolName (IN) - This indicates the session/connection pool to get the
-                session/connection from in the OCI_SPOOL/OCI_CPOOL mode.
-                In the OCI_DEFAULT mode it refers to the connect string.
-poolName_len (IN) - length of poolName.
-tagInfo (IN) - indicates the tag of the session that the user wants. If the
-                   user wants a default session, he must specify a NULL here.
-                   Only used for Session Pooling.
-tagInfo_len (IN) - the length of tagInfo.
-retTagInfo (OUT) - This indicates the type of session that is returned to
-                   the user. Only used for Session Pooling.
-retTagInfo_len (OUT) - the length of retTagInfo.
-found (OUT) - set to true if the user gets a session he had requested, else
-              set to false. Only used for Session Pooling.
-mode (IN) - The supported modes are OCI_DEFAULT, OCI_CRED_PROXY and
-            OCI_GET_SPOOL_MATCHANY, OCI_SPOOL and OCI_CPOOL. OCI_SPOOL and
-            OCI_CPOOL are mutually exclusive.
-
-Returns:
-SUCCESS -  if a session was successfully returned into svchp.
-SUCCESS_WITH_INFO - if a session was successfully returned into svchp and the
-                    total number of sessions > maxsessions. Only valid for
-                    Session Pooling.
-ERROR - If a session could not be retrieved.
-
-Related Functions:
-OCISessionRelease()
------------------------------------------------------------------------------
----------------------------OCISessionRelease---------------------------------
-Name:
-OCISessionRelease
-
-Purpose:
-Release the session.
-
-Syntax:
-sword OCISessionRelease ( OCISvcCtx *svchp, OCIError *errhp,
-                          OraText *tag, ub4 tag_len,
-                          ub4 mode);
-
-Comments:
-svchp (IN/OUT) - The service context associated with the session/connection.
-errhp (IN/OUT) - OCI error handle to be passed to OCIErrorGet().
-tag (IN) - Only used for Session Pooling.
-           This parameter will be ignored unless mode OCI_RLS_SPOOL_RETAG is
-           specified. In this case, the session is labelled with this tag and
-           returned to the pool. If this is NULL, then the session is untagged.
-tag_len (IN) - Length of the tag. This is ignored unless mode 
-               OCI_RLS_SPOOL_RETAG is set.
-mode (IN) - The supported modes are OCI_DEFAULT, OCI_RLS_SPOOL_DROPSESS,
-            OCI_RLS_SPOOL_RETAG. The last 2 are only valid for Session Pooling.
-            When OCI_RLS_SPOOL_DROPSESS is specified, the session
-            will be removed from the session pool. If OCI_RLS_SPOOL_RETAG 
-            is set, the tag on the session will be altered. If this mode is 
-            not set, the tag and tag_len parameters will be ignored.
-
-Returns:
-ERROR - If the session could not be released successfully.
-SUCCESS - In all other cases.
-
-Related Functions:
-OCISessionGet().
------------------------------------------------------------------------------
-------------------------------OCIDateTimeAssign --------------------------
-sword OCIDateTimeAssign(dvoid *hndl, OCIError *err, CONST OCIDateTime *from, 
-                        OCIDateTime *to);
-NAME: OCIDateTimeAssign - OCIDateTime Assignment
-PARAMETERS:
-hndl (IN) - Session/Env handle.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-from (IN) - datetime to be assigned
-to (OUT) - lhs of assignment
-DESCRIPTION:
-        Performs date assignment. The type of the output will be same as that
-        of input
-
-------------------------------OCIDateTimeCheck----------------------------
-sword OCIDateTimeCheck(dvoid *hndl, OCIError *err, CONST OCIDateTime *date, 
-                 ub4 *valid );
-NAME: OCIDateTimeCheck - OCIDateTime CHecK if the given date is valid
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-date (IN) - date to be checked
-valid (OUT) -  returns zero for a valid date, otherwise 
-                the ORed combination of all error bits specified below:
-   Macro name                   Bit number      Error
-   ----------                   ----------      -----
-   OCI_DATE_INVALID_DAY         0x1             Bad day
-   OCI_DATE_DAY_BELOW_VALID     0x2             Bad DAy Low/high bit (1=low)
-   OCI_DATE_INVALID_MONTH       0x4             Bad MOnth
-   OCI_DATE_MONTH_BELOW_VALID   0x8             Bad MOnth Low/high bit (1=low)
-   OCI_DATE_INVALID_YEAR        0x10            Bad YeaR
-   OCI_DATE_YEAR_BELOW_VALID    0x20            Bad YeaR Low/high bit (1=low)
-   OCI_DATE_INVALID_HOUR        0x40            Bad HouR
-   OCI_DATE_HOUR_BELOW_VALID    0x80            Bad HouR Low/high bit (1=low)
-   OCI_DATE_INVALID_MINUTE      0x100           Bad MiNute
-   OCI_DATE_MINUTE_BELOW_VALID  0x200           Bad MiNute Low/high bit (1=low)
-   OCI_DATE_INVALID_SECOND      0x400           Bad SeCond
-   OCI_DATE_SECOND_BELOW_VALID  0x800           bad second Low/high bit (1=low)
-   OCI_DATE_DAY_MISSING_FROM_1582 0x1000        Day is one of those "missing"
-                                                from 1582
-   OCI_DATE_YEAR_ZERO           0x2000          Year may not equal zero
-   OCI_DATE_INVALID_TIMEZONE    0x4000          Bad Timezone
-   OCI_DATE_INVALID_FORMAT      0x8000          Bad date format input
-
-   So, for example, if the date passed in was 2/0/1990 25:61:10 in
-   (month/day/year hours:minutes:seconds format), the error returned
-   would be OCI_DATE_INVALID_DAY | OCI_DATE_DAY_BELOW_VALID |
-   OCI_DATE_INVALID_HOUR | OCI_DATE_INVALID_MINUTE
-
-DESCRIPTION:
-        Check if the given date is valid.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          'date' and 'valid' pointers are NULL pointers
-
-------------------------------- OCIDateTimeCompare----------------------------
-sword OCIDateTimeCompare(dvoid *hndl, OCIError *err, CONST OCIDateTime *date1, 
-                     CONST OCIDateTime *date2,  sword *result );
-NAME: OCIDateTimeCompare - OCIDateTime CoMPare dates
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-date1, date2 (IN) - dates to be compared
-result (OUT) - comparison result, 0 if equal, -1 if date1 < date2, 
-                1 if date1 > date2
-DESCRIPTION:
-The function OCIDateCompare compares two dates. It returns -1 if 
-date1 is smaller than date2, 0 if they are equal, and 1 if date1 is 
-greater than date2.
-RETURNS:
-       OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          invalid date
-          input dates are not mutually comparable
-
-------------------------------OCIDateTimeConvert----------------------
-sword OCIDateTimeConvert(dvoid *hndl, OCIError *err, OCIDateTime *indate, 
-                                OCIDateTime *outdate);
-NAME: OCIDateTimeConvert - Conversion between different DATETIME types
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-indate (IN) - pointer to input date
-outdate (OUT) - pointer to output datetime 
-DESCRIPTION: Converts one datetime type to another. The result type is
-       the type of the 'outdate' descriptor.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-            conversion not possible.
-   
----------------------------- OCIDateTimeFromText-----------------------
-sword OCIDateTimeFromText(dvoid *hndl, OCIError *err, CONST OraText *date_str, 
-             size_t d_str_length, CONST OraText *fmt, ub1 fmt_length,
-             CONST OraText *lang_name, size_t lang_length, OCIDateTime *date );
-NAME: OCIDateTimeFromText - OCIDateTime convert String FROM Date
-PARAMETERS:
-hndl (IN) - Session/Env handle. If Session Handle is passed, the 
-                    conversion takes place in session NLS_LANGUAGE and
-                    session NLS_CALENDAR, otherwise the default is used.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-date_str (IN) - input string to be converted to Oracle date
-d_str_length (IN) - size of the input string, if the length is -1
-                then 'date_str' is treated as a null terminated  string
-fmt (IN) - conversion format; if 'fmt' is a null pointer, then
-                the string is expected to be in the default format for
-                the datetime type.
-fmt_length (IN) - length of the 'fmt' parameter
-lang_name (IN) - language in which the names and abbreviations of
-                days and months are specified, if null i.e. (OraText *)0,
-                the default language of session is used, 
-lang_length (IN) - length of the 'lang_name' parameter
-date (OUT) - given string converted to date
-DESCRIPTION:
-        Converts the given string to Oracle datetime type set in the 
-        OCIDateTime descriptor according to the specified format. Refer to 
-        "TO_DATE" conversion function described in "Oracle SQL Language 
-        Reference Manual" for a description of format.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          invalid format
-          unknown language
-          invalid input string
-
---------------------------- OCIDateTimeGetDate-------------------------
-sword OCIDateTimeGetDate(dvoid *hndl, OCIError *err,  CONST OCIDateTime *date, 
-                           sb2 *year, ub1 *month, ub1 *day );
-NAME: OCIDateTimeGetDate - OCIDateTime Get Date (year, month, day)  
-                                portion of DATETIME. 
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - Pointer to OCIDateTime 
-year      (OUT) - year value
-month     (OUT) - month value
-day       (OUT) - day value
-
---------------------------- OCIDateTimeGetTime ------------------------
-sword OCIDateTimeGetTime(dvoid *hndl, OCIError *err, OCIDateTime *datetime,
-                 ub1 *hour, ub1 *minute, ub1 *sec, ub4 *fsec);
-NAME: OCIDateTimeGetTime - OCIDateTime Get Time (hour, min, second, 
-                        fractional second)  of DATETIME. 
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - Pointer to OCIDateTime 
-hour      (OUT) - hour value
-minute       (OUT) - minute value
-sec       (OUT) - second value
-fsec      (OUT) - Fractional Second value
-
---------------------------- OCIDateTimeGetTimeZoneOffset ----------------------
-sword OCIDateTimeGetTimeZoneOffset(dvoid *hndl,OCIError *err,CONST 
-              OCIDateTime *datetime,sb1 *hour,sb1  *minute);
-
-NAME: OCIDateTimeGetTimeZoneOffset - OCIDateTime Get TimeZone (hour, minute)  
-                         portion of DATETIME. 
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - Pointer to OCIDateTime 
-hour      (OUT) - TimeZone Hour value
-minute     (OUT) - TimeZone Minute value
-
---------------------------- OCIDateTimeSysTimeStamp---------------------
-sword OCIDateTimeSysTimeStamp(dvoid *hndl, OCIError *err, 
-              OCIDateTime *sys_date );
- 
-NAME: OCIDateTimeSysTimeStamp - Returns system date/time as a TimeStamp with 
-                      timezone
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-sys_date (OUT) - Pointer to output timestamp
- 
-DESCRIPTION: 
-        Gets the system current date and time as a timestamp with timezone
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-
-
-------------------------------OCIDateTimeIntervalAdd----------------------
-sword OCIDateTimeIntervalAdd(dvoid *hndl, OCIError *err, OCIDateTime *datetime,
-         OCIInterval *inter, OCIDateTime *outdatetime);
-NAME: OCIDateTimeIntervalAdd - Adds an interval to datetime
-PARAMETERS:
-hndl (IN) - Session/Env handle.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - pointer to input datetime
-inter    (IN) - pointer to interval 
-outdatetime (IN) - pointer to output datetime. The output datetime 
-                                will be of same type as input datetime
-DESCRIPTION: 
-        Adds an interval to a datetime to produce a resulting datetime
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if:
-                resulting date is before Jan 1, -4713
-                resulting date is after Dec 31, 9999
-
-------------------------------OCIDateTimeIntervalSub----------------------
-sword OCIDateTimeIntervalSub(dvoid *hndl, OCIError *err, OCIDateTime *datetime,
-              OCIInterval *inter, OCIDateTime *outdatetime);
-NAME: OCIDateTimeIntervalSub - Subtracts an interval from a datetime
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - pointer to input datetime
-inter    (IN) - pointer to interval 
-outdatetime (IN) - pointer to output datetime. The output datetime 
-                                will be of same type as input datetime
-DESCRIPTION: 
-        Subtracts an interval from a datetime and stores the result in a
-        datetime
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if:
-                resulting date is before Jan 1, -4713
-                resulting date is after Dec 31, 9999
-
---------------------------- OCIDateTimeConstruct-------------------------
-sword OCIDateTimeConstruct(dvoid  *hndl,OCIError *err,OCIDateTime *datetime,
-               sb2 year,ub1 month,ub1 day,ub1 hour,ub1 min,ub1 sec,ub4 fsec,
-               OraText  *timezone,size_t timezone_length);
-
-NAME: OCIDateTimeConstruct - Construct an OCIDateTime. Only the relevant
-       fields for the OCIDateTime descriptor types are used.
-PARAMETERS:
-        hndl (IN) - Session/Env handle. 
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        datetime (IN) - Pointer to OCIDateTime 
-        year      (IN) - year value
-        month     (IN) - month value
-        day       (IN) - day value        
-        hour      (IN) - hour value
-        min       (IN) - minute value
-        sec       (IN) - second value
-        fsec      (IN) - Fractional Second value
-        timezone  (IN) - Timezone string
-        timezone_length(IN) - Length of timezone string
-
-DESCRIPTION:
-       Constructs a DateTime descriptor. The type of the datetime is the
-       type of the OCIDateTime descriptor. Only the relevant fields based
-       on the type are used. For Types with timezone, the date and time
-       fields are assumed to be in the local time of the specified timezone.
-       If timezone is not specified, then session default timezone is
-       assumed.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_ERROR if datetime is not valid.
-
-------------------------------OCIDateTimeSubtract-----------------------
-sword OCIDateTimeSubtract(dvoid *hndl, OCIError *err, OCIDateTime *indate1, 
-                OCIDateTime *indate2, OCIInterval *inter);
-NAME: OCIDateTimeSubtract - subtracts two datetimes to return an interval
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-indate1(IN) - pointer to subtrahend
-indate2(IN) - pointer to minuend
-inter  (OUT) - pointer to output interval
-DESCRIPTION: 
-        Takes two datetimes as input and stores their difference in an 
-        interval. The type of the interval is the type of the 'inter'
-        descriptor.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-           datetimes are not comparable.
-
---------------------------- OCIDateTimeToText--------------------------
-sword OCIDateTimeToText(dvoid *hndl, OCIError *err, CONST OCIDateTime *date, 
-                        CONST OraText *fmt, ub1 fmt_length, ub1 fsprec, 
-                        CONST OraText *lang_name, size_t lang_length, 
-                        ub4 *buf_size, OraText *buf );
-NAME: OCIDateTimeToText - OCIDateTime convert date TO String 
-PARAMETERS:
-hndl (IN) - Session/Env handle. If Session Handle is passed, the 
-                    conversion takes place in session NLS_LANGUAGE and
-                    session NLS_CALENDAR, otherwise the default is used.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-date (IN) - Oracle datetime to be converted
-fmt (IN) - conversion format, if null string pointer (OraText*)0, then
-                the date is converted to a character string in the
-                default format for that type.
-fmt_length (IN) - length of the 'fmt' parameter
-fsprec (IN) - specifies the fractional second precision in which the
-               fractional seconds is returned.
-lang_name (IN) - specifies the language in which the names and 
-                abbreviations of months and days are returned;
-                default language of session is used if 'lang_name' 
-                is null i.e. (OraText *)0
-lang_length (IN) - length of the 'nls_params' parameter
-buf_size (IN/OUT) - size of the buffer; size of the resulting string
-                is returned via this parameter
-buf (OUT) - buffer into which the converted string is placed
-DESCRIPTION:
-        Converts the given date to a string according to the specified format.
-        Refer to "TO_DATE" conversion function described in
-        "Oracle SQL Language Reference Manual" for a description of format
-        and NLS arguments. The converted null-terminated date string is
-        stored in the buffer 'buf'.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          buffer too small
-          invalid format
-          unknown language
-          overflow error
-
-----------------------------OCIDateTimeGetTimeZoneName------------------------
-sword OCIDateTimeGetTimeZoneName(dvoid *hndl, 
-                                 OCIError *err,
-                                 CONST OCIDateTime *datetime,
-                                 ub1 *buf,
-                                 ub4 *buflen);
-NAME OCIDateTimeGetTimeZoneName - OCI DateTime Get the Time Zone Name
-PARAMETERS:
-hndl (IN)      - Session/Env handle.
-err (IN/OUT)   - error handle. If there is an error, it is
-                 recorded in 'err' and this function returns OCI_ERROR.
-                 The error recorded in 'err' can be retrieved by calling
-                 OCIErrorGet().
-datetime (IN)   - Pointer to an OCIDateTime.
-buf (OUT)       - User allocated storage for name string.
-buflen (IN/OUT) - length of buf on input, length of name on out
-DESCRIPTION:
-        Returns either the timezone region name or the absolute hour and minute
-        offset. If the DateTime was created with a region id then the region 
-        name will be returned in the buf.  If the region id is zero, then the 
-        hour and minute offset is returned as "[-]HH:MM".
-RETURNS:
-       OCI_SUCCESS if the function completes successfully.
-       OCI_INVALID_HANDLE if 'err' is NULL.
-       OCI_ERROR if
-         buffer too small
-         error retrieving timezone data
-         invalid region 
-         invalid LdiDateTime type
-
----------------------------------OCIDateTimeToArray----------------------------
-sword OCIDateTimeToArray(dvoid *hndl, 
-                         OCIError *err,
-                         CONST OCIDateTime *datetime,
-                         CONST OCIInterval *reftz,
-                         ub1 *outarray,
-                         ub4 *len
-                         ub1 *fsprec);
-NAME OCIDateTimeToArray - OCI DateTime convert To Array format
-PARAMETERS:
-hndl (IN)      - Session/Env handle.
-err (IN/OUT)   - error handle. If there is an error, it is
-                 recorded in 'err' and this function returns OCI_ERROR.
-                 The error recorded in 'err' can be retrieved by calling
-                 OCIErrorGet().
-datetime (IN)   - Pointer to OCIDateTime to be converted.
-outarray (OUT)  - Result array storage
-len (OUT)        - pointer to  length of outarray.
-fsprec (IN)     - Number of fractional seconds digits.
-DESCRIPTION:
-        Returns an array representing the input DateTime descriptor.
-RETURNS:
-       OCI_SUCCESS if the function completes successfully.
-       OCI_INVALID_HANDLE if 'err' is NULL.
-       OCI_ERROR if
-         buffer too small
-         error retrieving timezone data
-         invalid region 
-         invalid LdiDateTime type
-
---------------------------------OCIDateTimeFromArray---------------------------
-sword OCIDateTimeFromArray(dvoid *hndl, 
-                         OCIError *err,
-                         ub1 *inarray,
-                         ub4 len
-                         ub1 type
-                         OCIDateTime *datetime,
-                         OCIInterval *reftz,
-                         ub1 fsprec);
-NAME OCIDateTimeFromArray - OCI DateTime convert From Array format
-PARAMETERS:
-hndl (IN)      - Session/Env handle.
-err (IN/OUT)   - error handle. If there is an error, it is
-                 recorded in 'err' and this function returns OCI_ERROR.
-                 The error recorded in 'err' can be retrieved by calling
-                 OCIErrorGet().
-inarray (IN)   - Pointer to input array representtion of DateTime
-len (IN)       - len of inarray.
-type (IN)      - One of SQLT_DATE, SQLT_TIME, SQLT_TIME_TZ, SQLT_TIMESTAMP,
-                 SQLT_TIMESTAMP_TZ, or SQLT_TIMESTAMP_LTZ.
-datetime (OUT) - Pointer to the result OCIDateTime.
-reftz (IN)     - timezone interval used with SQLT_TIMESTAMP_LTZ.
-fsprec (IN)    - fractionl seconds digits of precision (0-9).
-DESCRIPTION:
-        Returns a pointer to an OCIDateTime of type type converted from 
-        the inarray.
-RETURNS:
-       OCI_SUCCESS if the function completes successfully.
-       OCI_INVALID_HANDLE if 'err' is NULL.
-       OCI_ERROR if
-         buffer too small
-         error retrieving timezone data
-         invalid region 
-         invalid LdiDateTime type
-
-----------------------------------OCIRowidToChar-----------------------------
-Name
-OCIRowidToChar
-
-Purpose
-Converts physical/logical (universal) ROWID to chracter extended (Base 64) 
-representation into user provided buffer outbfp of length outbflp. After 
-execution outbflp contains amount of bytes converted.In case of truncation 
-error, outbflp contains required size to make this conversion successful
-and returns ORA-1405.
-
-Syntax
-sword OCIRowidToChar( OCIRowid *rowidDesc, 
-                      OraText *outbfp, 
-                      ub2 *outbflp, 
-                      OCIError *errhp)
-
-Comments
-After this conversion, ROWID in character format can be bound using
-OCIBindByPos or OCIBindByName call and used to query a row at a
-desired ROWID. 
-
-Parameters
-rowidDesc (IN)   - rowid DESCriptor which is allocated from OCIDescritorAlloc
-                   and populated by a prior SQL statement execution
-outbfp (OUT)     - pointer to the buffer where converted rowid in character 
-                   representation is stored after successful execution.
-outbflp (IN/OUT) - pointer to output buffer length variable.
-                   Before execution (IN mode) *outbflp contains the size of
-                   outbfp, after execution (OUT mode) *outbflp contains amount
-                   of bytes converted. In an event of truncation during 
-                   conversion *outbflp contains the required length to make
-                   conversion successful.
-errhp (IN/OUT)   - an error handle which can be passed to OCIErrorGet() for
-                   diagnostic information in the event of an error.
-
-------------------------------OCIDefineArrayOfStruct--------------------------
-
-
-OCIDefineArrayOfStruct()
-Name
-OCI Define for Array of Structures
-Purpose
-This call specifies additional attributes necessary for a static array define.
-Syntax
-sword OCIDefineArrayOfStruct ( OCIDefine   *defnp,
-                             OCIError    *errhp,
-                             ub4         pvskip, 
-                             ub4         indskip, 
-                             ub4         rlskip,
-                             ub4         rcskip );
-Comments
-This call specifies additional attributes necessary for an array define, 
-used in an array of structures (multi-row, multi-column) fetch.
-For more information about skip parameters, see the section "Skip Parameters" 
-on page 4-17.
-Parameters
-defnp (IN) - the handle to the define structure which was returned by a call 
-to OCIDefineByPos().
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-pvskip (IN) - skip parameter for the next data value.
-indskip (IN) - skip parameter for the next indicator location. 
-rlskip (IN) - skip parameter for the next return length value.
-rcskip (IN) - skip parameter for the next return code.
-Related Functions
-OCIAttrGet()
-
-
-
-
-
-OCIDefineByPos()
-Name
-OCI Define By Position
-Purpose
-Associates an item in a select-list with the type and output data buffer. 
-Syntax
-sb4 OCIDefineByPos ( 
-              OCIStmt     *stmtp, 
-              OCIDefine   **defnp,
-              OCIError    *errhp,
-              ub4         position,
-              dvoid       *valuep,
-              sb4         value_sz,
-              ub2         dty,
-              dvoid       *indp,
-              ub2         *rlenp,
-              ub2         *rcodep,
-              ub4         mode );
-Comments
-This call defines an output buffer which will receive data retreived from 
-Oracle. The define is a local step which is necessary when a SELECT statement 
-returns data to your OCI application.
-This call also implicitly allocates the define handle for the select-list item.
-Defining attributes of a column for a fetch is done in one or more calls. The 
-first call is to OCIDefineByPos(), which defines the minimal attributes 
-required to specify the fetch. 
-This call takes as a parameter a define handle, which must have been 
-previously allocated with a call to OCIHandleAlloc().
-Following the call to OCIDefineByPos() additional define calls may be 
-necessary for certain data types or fetch modes:
-A call to OCIDefineArrayOfStruct() is necessary to set up skip parameters 
-for an array fetch of multiple columns.
-A call to OCIDefineObject() is necessary to set up the appropriate 
-attributes of a named data type fetch. In this case the data buffer pointer 
-in ocidefn() is ignored.
-Both OCIDefineArrayOfStruct() and OCIDefineObject() must be called 
-after ocidefn() in order to fetch multiple rows with a column of named 
-data types.
-For a LOB define, the buffer pointer must be a lob locator of type 
-OCILobLocator , allocated by the OCIDescAlloc() call. LOB locators, and not 
-LOB values, are always returned for a LOB column. LOB values can then be 
-fetched using OCI LOB calls on the fetched locator.
-For NCHAR (fixed and varying length), the buffer pointer must point to an 
-array of bytes sufficient for holding the required NCHAR characters. 
-Nested table columns are defined and fetched like any other named data type. 
-If the mode parameter is this call is set to OCI_DYNAMIC_FETCH, the client 
-application can fetch data dynamically at runtime.
-Runtime data can be provided in one of two ways:
-callbacks using a user-defined function which must be registered with a 
-subsequent call to OCIDefineDynamic(). When the client library needs a 
-buffer to return the fetched data, the callback will be invoked and the 
-runtime buffers provided will return a piece or the whole data. 
-a polling mechanism using calls supplied by the OCI. This mode is 
-assumed if no callbacks are defined. In this case, the fetch call returns the 
-OCI_NEED_DATA error code, and a piecewise polling method is used 
-to provide the data.
-Related Functions: For more information about using the 
-OCI_DYNAMIC_FETCH mode, see the section "Runtime Data 
-Allocation and Piecewise Operations" on page 5-16 of Volume 1..
-For more information about the define step, see the section "Defining" 
-on page 2-30.
-Parameters
-stmtp (IN) - a handle to the requested SQL query operation.
-defnp (IN/OUT) - a pointer to a pointer to a define handle which is implicitly 
-allocated by this call.  This handle is used to  store the define information 
-for this column.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-position (IN) - the position of this value in the select list. Positions are 
-1-based and are numbered from left to right. For example, in the SELECT 
-statement
-SELECT empno, ssn, mgrno FROM employees;
-empno is at position 1, ssn is at position 2, and mgrno is at position 3.
-valuep (IN/OUT) - a pointer to a buffer or an array of buffers of the type 
-specified in the dty parameter. A number of buffers can be specified when 
-results for more than one row are desired in a single fetch call.
-value_sz (IN) - the size of each valuep buffer in bytes. If the data is stored 
-internally in VARCHAR2 format, the number of characters desired, if different 
-from the buffer size in bytes, may be additionally specified by the using 
-OCIAttrSet(). 
-In an NLS conversion environment, a truncation error will be generated if the 
-number of bytes specified is insufficient to handle the number of characters 
-desired.
-dty (IN) - the data type. Named data type (SQLT_NTY) and REF (SQLT_REF) 
-are valid only if the environment has been intialized with in object mode. 
-indp - pointer to an indicator variable or array. For scalar data types, 
-pointer to sb2 or an array of sb2s. Ignored for named data types. For named 
-data types, a pointer to a named data type indicator structure or an array of 
-named data type indicator structures is associated by a subsequent 
-OCIDefineObject() call. 
-See the section "Indicator Variables" on page 2-43 for more information about 
-indicator variables.
-rlenp (IN/OUT) - pointer to array of length of data fetched. Each element in 
-rlenp is the length of the data in the corresponding element in the row after 
-the fetch. 
-rcodep (OUT) - pointer to array of column-level return codes
-mode (IN) - the valid modes are:
-OCI_DEFAULT. This is the default mode.
-OCI_DYNAMIC_FETCH. For applications requiring dynamically 
-allocated data at the time of fetch, this mode must be used. The user may 
-additionally call OCIDefineDynamic() to set up a callback function that 
-will be invoked to receive the dynamically allocated buffers and to set 
-up the memory allocate/free callbacks and the context for the callbacks. 
-valuep and value_sz are ignored in this mode. 
-Related Functions
-OCIDefineArrayOfStruct(), OCIDefineDynamic(), OCIDefineObject()
-
-
-
-
-OCIDefineDynamic()
-Name
-OCI Define Dynamic Fetch Attributes
-Purpose
-This call is used to set the additional attributes required if the 
-OCI_DYNAMIC_FETCH mode was selected in OCIDefineByPos(). 
-Syntax
-sword OCIDefineDynamic( OCIDefine   *defnp,
-                      OCIError    *errhp,
-                      dvoid       *octxp, 
-                      OCICallbackDefine (ocbfp)(
-                                  dvoid             *octxp,
-                                  OCIDefine         *defnp,
-                                  ub4               iter, 
-                                  dvoid             **bufpp,
-                                  ub4               **alenpp,
-                                  ub1               *piecep,
-                                  dvoid             **indpp,
-                                  ub2               **rcodep)  );
-Comments
-This call is used to set the additional attributes required if the 
-OCI_DYNAMIC_FETCH mode has been selected in a call to 
-OCIDefineByPos(). 
-When the OCI_DYNAMIC_FETCH mode is selected, buffers will be 
-dynamically allocated for REF, and named data type, values to receive the 
-data. The pointers to these buffers will be returned. 
-If OCI_DYNAMIC_FETCH mode was selected, and the call to 
-OCIDefineDynamic() is skipped, then the application can fetch data piecewise 
-using OCI calls.
-For more information about OCI_DYNAMIC_FETCH mode, see the section 
-"Runtime Data Allocation and Piecewise Operations" on page 5-16.
-Parameters
-defnp (IN/OUT) - the handle to a define structure returned by a call to 
-OCIDefineByPos().
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-octxp (IN) - points to a context for the callback function. 
-ocbfp (IN) - points to a callback function. This is invoked at runtime to get 
-a pointer to the buffer into which the fetched data or a piece of it will be 
-retreived. The callback also specifies the indicator, the return code and the 
-lengths of the data piece and indicator. The callback has the following 
-parameters:
-octxp (IN) - a context pointer passed as an argument to all the callback 
-functions.
-defnp (IN) - the define handle.
-iter (IN) - which row of this current fetch.
-bufpp (OUT) - returns a pointer to a buffer to store the column value, ie. 
-*bufp points to some appropriate storage for the column value.
-alenpp (OUT) - returns a pointer to the length of the buffer. *alenpp 
-contains the size of the buffer after return from callback. Gets set to 
-actual data size after fetch.
-piecep (IN/OUT) - returns a piece value, as follows:
-The IN value can be OCI_ONE_PIECE, OCI_FIRST_PIECE or 
-OCI_NEXT_PIECE.
-The OUT value can be OCI_ONE_PIECE if the IN value was 
-OCI_ONE_PIECE.
-The OUT value can be OCI_ONE_PIECE or OCI_FIRST_PIECE if 
-the IN value was OCI_FIRST_PIECE.
-The OUT value can only be OCI_NEXT_PIECE or 
-OCI_LAST_PIECE if the IN value was OCI_NEXT_PIECE. 
-indpp (IN) - indicator variable pointer
-rcodep (IN) - return code variable pointer
-Related Functions
-OCIAttrGet()
-OCIDefineObject()
-
-
-
-
-OCIDefineObject()
-Name
-OCI Define Named Data Type attributes
-Purpose
-Sets up additional attributes necessary for a Named Data Type define.
-Syntax
-sword OCIDefineObject ( OCIDefine       *defnp,
-                      OCIError        *errhp,
-                      CONST OCIType   *type,
-                      dvoid           **pgvpp, 
-                      ub4             *pvszsp, 
-                      dvoid           **indpp, 
-                      ub4             *indszp );
-Comments
-This call sets up additional attributes necessary for a Named Data Type define.
-An error will be returned if this function is called when the OCI environment 
-has been initialized in non-Object mode.
-This call takes as a paramter a type descriptor object (TDO) of datatype 
-OCIType for the named data type being defined.  The TDO can be retrieved 
-with a call to OCITypeByName().
-See the description of OCIInitialize() on page 13 - 43 for more information 
-about initializing the OCI process environment.
-Parameters
-defnp (IN/OUT) - a define handle previously allocated in a call to 
-OCIDefineByPos(). 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-type (IN, optional) - points to the Type Descriptor Object (TDO) which 
-describes the type of the program variable. Only used for program variables 
-of type SQLT_NTY. This parameter is optional, and may be passed as NULL 
-if it is not being used.
-pgvpp (IN/OUT) - points to a pointer to a program variable buffer. For an 
-array, pgvpp points to an array of pointers. Memory for the fetched named data 
-type instance(s) is dynamically allocated in the object cache. At the end of 
-the fetch when all the values have been received, pgvpp points to the 
-pointer(s) to these newly allocated named data type instance(s). The 
-application must call OCIObjectMarkDel() to deallocate the named data type 
-instance(s) when they are no longer needed. 
-pvszsp (IN/OUT) - points to the size of the program variable. For an array, it 
-is an array of ub4s. On return points to the size(s) of unpickled fetched 
-values.
-indpp (IN/OUT) - points to a pointer to the program variable buffer 
-containing the parallel indicator structure. For an array, points to an array 
-of pointers. Memory is allocated to store the indicator structures in the 
-object cache. At the end of the fetch when all values have been received, 
-indpp points to the pointer(s) to these newly allocated indicator structure(s).
-indszp (IN/OUT) - points to the size(s) of the indicator structure program 
-variable. For an array, it is an array of ub4s. On return points to the size(s)
-of the unpickled fetched indicator values.
-Related Functions
-OCIAttrGet()
-
-
-
-OCIDescAlloc()
-Name
-OCI Get DESCriptor or lob locator
-Purpose
-Allocates storage to hold certain data types. The descriptors can be used as 
-bind or define variables.
-Syntax
-sword OCIDescAlloc ( CONST dvoid   *parenth,
-                   dvoid         **descpp, 
-                   ub4           type,
-                   size_t        xtramem_sz,
-                   dvoid         **usrmempp);
-Comments
-Returns a pointer to an allocated and initialized structure, corresponding to 
-the type specified in type. A non-NULL descriptor or LOB locator is returned 
-on success. No diagnostics are available on error.
-This call returns OCI_SUCCESS if successful, or OCI_INVALID_HANDLE if 
-an out-of-memory error occurs. 
-Parameters
-parenth (IN) - an environment handle. 
-descpp (OUT) - returns a descriptor or LOB locator of desired type. 
-type (IN) - specifies the type of descriptor or LOB locator to be allocated. 
-The specific types are:
-OCI_DTYPE_SNAP - specifies generation of snapshot descriptor of C 
-type - OCISnapshot
-OCI_DTYPE_LOB - specifies generation of a LOB data type locator of C 
-type - OCILobLocator
-OCI_DTYPE_RSET - specifies generation of a descriptor of C type 
-OCIResult that references a result set (a number of rows as a result of a 
-query). This descriptor is bound to a bind variable of data type 
-SQLT_RSET (result set). The descriptor has to be converted into a 
-statement handle using a function - OCIResultSetToStmt() - which can 
-then be passed to OCIDefineByPos() and OCIStmtFetch() to retrieve the 
-rows of the result set.
-OCI_DTYPE_ROWID - specifies generation of a ROWID descriptor of C 
-type OCIRowid.
-OCI_DTYPE_COMPLEXOBJECTCOMP - specifies generation of a 
-complex object retrieval descriptor of C type 
-OCIComplexObjectComp.
-xtramemsz (IN) - specifies an amount of user memory to be allocated for use 
-by the application. 
-usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz 
-allocated by the call for the user. 
-Related Functions
-OCIDescFree()
-
-
-
-
-OCIDescFree()
-Name
-OCI Free DESCriptor
-Purpose
-Deallocates a previously allocated descriptor.
-Syntax
-sword OCIDescFree ( dvoid    *descp,
-                  ub4      type);
-Comments
-This call frees up storage associated with the descriptor, corresponding to the
-type specified in type. Returns OCI_SUCCESS or OCI_INVALID_HANDLE. 
-All descriptors must be explicitly deallocated. OCI will not deallocate a 
-descriptor if the environment handle is deallocated.
-Parameters
-descp (IN) - an allocated descriptor. 
-type (IN) - specifies the type of storage to be freed. The specific types are: 
-OCI_DTYPE_SNAP - snapshot descriptor
-OCI_DTYPE_LOB - a LOB data type descriptor
-OCI_DTYPE_RSET - a descriptor that references a result set (a number 
-of rows as a result of a query).
-OCI_DTYPE_ROWID - a ROWID descriptor
-OCI_DTYPE_COMPLEXOBJECTCOMP - a complex object retrieval 
-descriptor
-Related Functions
-OCIDescAlloc()
-
-
-
-OCIDescribeAny()
-Name
-OCI DeSCribe Any
-Purpose
-Describes existing schema objects.
-Syntax
-sword OCIDescribeAny ( OCISvcCtx     *svchp,
-                     OCIError      *errhp,
-                     dvoid         *objptr,
-                     ub4           objnm_len,
-                     ub1           objptr_typ,
-                     ub1           info_level,
-                     ub1           objtype,
-                     OCIDesc       *dschp );
-Comments
-This is a generic describe call that describes existing schema objects: tables,
-views, synonyms, procedures, functions, packages, sequences, and types. As a 
-result of this call, the describe handle is populated with the object-specific 
-attributes which can be obtained through an OCIAttrGet() call.
-An OCIParamGet() on the describe handle returns a parameter descriptor for a 
-specified position. Parameter positions begin with 1. Calling OCIAttrGet() on 
-the parameter descriptor returns the specific attributes of a stored procedure 
-or function parameter or a table column descriptor as the case may be. 
-These subsequent calls do not need an extra round trip to the server because 
-the entire schema object description cached on the client side by 
-OCIDescribeAny(). Calling OCIAttrGet() on the describe handle can also return 
-the total number of positions.
-See the section "Describing" on page 2-33 for more information about describe 
-operations.
-Parameters
-TO BE UPDATED
-svchp (IN/OUT) - a service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-objptr (IN) - the name of the object (a null-terminated string) to be 
-described. Only procedure or function names are valid when connected to an 
-Oracle7 Server.
-objptr_len (IN) - the length of the string. Must be non-zero.
-objptr_typ (IN) - Must be OCI_OTYPE_NAME, OCI_OTYPE_REF, or OCI_OTYPE_PTR.
-info_level (IN) - reserved for future extensions. Pass OCI_DEFAULT.
-objtype (IN/OUT) - object type.
-dschp (IN/OUT) - a describe handle that is populated with describe 
-information about the object after the call.
-Related Functions
-OCIAttrGet()
-
-
-
-OCIEnvCreate()
-Name
-OCI ENVironment CREATE
-Purpose
-This function creates and initializes an environment for the rest of
-the OCI functions to work under.  This call is a replacement for both
-the OCIInitialize and OCIEnvInit calls.
-Syntax
-sword OCIEnvCreate  ( OCIEnv        **envhpp, 
-                      ub4           mode, 
-                      CONST dvoid   *ctxp, 
-                      CONST dvoid   *(*malocfp) 
-                                    (dvoid *ctxp, 
-                                        size_t size), 
-                      CONST dvoid   *(*ralocfp) 
-                                    (dvoid *ctxp, 
-                                       dvoid *memptr, 
-                                       size_t newsize), 
-                      CONST void    (*mfreefp) 
-                                    ( dvoid *ctxp, 
-                                       dvoid *memptr))
-                      size_t    xtramemsz,
-                      dvoid     **usrmempp );
- 
-Comments
-This call creates an environment for all the OCI calls using the modes
-specified by the user. This call can be used instead of the two calls
-OCIInitialize and OCIEnvInit. This function returns an environment handle
-which is then used by the remaining OCI functions. There can be multiple
-environments in OCI each with its own environment modes.  This function 
-also performs any process level initialization if required by any mode.
-For example if the user wants to initialize an environment as OCI_THREADED,
-then all libraries that are used by OCI are also initialized in the
-threaded mode. 
-
-This call should be invoked before anny other OCI call and should be used
-instead of the OCIInitialize and OCIEnvInit calls. This is the recommended
-call, although OCIInitialize and OCIEnvInit calls will still be supported
-for backward compatibility. 
- 
-envpp (OUT) - a pointer to a handle to the environment. 
-mode (IN) - specifies initialization of the mode. The valid modes are:
-OCI_DEFAULT - default mode.
-OCI_THREADED - threaded environment. In this mode, internal data 
-structures are protected from concurrent accesses by multiple threads. 
-OCI_OBJECT - will use navigational object interface. 
-ctxp (IN) - user defined context for the memory call back routines. 
-malocfp (IN) - user-defined memory allocation function. If mode is 
-OCI_THREADED, this memory allocation routine must be thread safe.
-ctxp - context pointer for the user-defined memory allocation function.
-size - size of memory to be allocated by the user-defined memory 
-allocation function
-ralocfp (IN) - user-defined memory re-allocation function. If mode is 
-OCI_THREADED, this memory allocation routine must be thread safe.
-ctxp - context pointer for the user-defined memory reallocation 
-function.
-memp - pointer to memory block
-newsize - new size of memory to be allocated
-mfreefp (IN) - user-defined memory free function. If mode is 
-OCI_THREADED, this memory free routine must be thread safe.
-ctxp - context pointer for the user-defined memory free function.
-memptr - pointer to memory to be freed
-xtramemsz (IN) - specifies the amount of user memory to be allocated. 
-usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz 
-allocated by the call for the user.
-
-Example
-
-Related Functions
-OCIInitialize, OCIEnvInit
-
-OCIEnvNlsCreate()
-Name
-OCI ENVironment CREATE with NLS info
-Purpose
-This function does almost everything OCIEnvCreate does, plus enabling setting
-of charset and ncharset programmatically, except OCI_UTF16 mode.
-Syntax
-sword OCIEnvNlsCreate(OCIEnv        **envhpp,
-                      ub4           mode,
-                      dvoid         *ctxp,
-                      dvoid         *(*malocfp)
-                                    (dvoid *ctxp,
-                                        size_t size),
-                      dvoid         *(*ralocfp)
-                                    (dvoid *ctxp,
-                                       dvoid *memptr,
-                                       size_t newsize),
-                      void          (*mfreefp)
-                                    (dvoid *ctxp,
-                                       dvoid *memptr),
-                      size_t        xtramemsz,
-                      dvoid         **usrmempp,
-                      ub2           charset,
-                      ub2           ncharset)
-Comments
-The charset and ncharset must be both zero or non-zero.
-The parameters have the same meaning as the ones in OCIEnvCreate().
-When charset or ncharset is non-zero, the corresponding character set will
-be used to replace the ones specified in NLS_LANG or NLS_NCHAR. Moreover,
-OCI_UTF16ID is allowed to be set as charset and ncharset.
-On the other hand, OCI_UTF16 mode is deprecated with this function. 
-Applications can achieve the same effects by setting 
-both charset and ncharset as OCI_UTF16ID.
-
-
-OCIEnvInit()
-Name
-OCI INITialize environment
-Purpose
-This call initializes the OCI environment handle.
-Syntax
-sword OCIEnvInit ( OCIEnv    **envp,
-                 ub4       mode,
-                 size_t    xtramemsz,
-                 dvoid     **usrmempp );
-Comments
-Initializes the OCI environment handle. No changes are done on an initialized 
-handle. If OCI_ERROR or OCI_SUCCESS_WITH_INFO is returned, the 
-environment handle can be used to obtain ORACLE specific errors and 
-diagnostics.
-This call is processed locally, without a server round-trip.
-Parameters
-envpp (OUT) - a pointer to a handle to the environment. 
-mode (IN) - specifies initialization of an environment mode. The only valid 
-mode is OCI_DEFAULT for default mode
-xtramemsz (IN) - specifies the amount of user memory to be allocated. 
-usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz 
-allocated by the call for the user.
-Example
-See the description of OCISessionBegin() on page 13-84 for an example showing 
-the use of OCIEnvInit(). 
-Related Functions
-
-
-
-
-OCIErrorGet()
-Name
-OCI Get Diagnostic Record
-Purpose
-Returns an error message in the buffer provided and an ORACLE error.
-Syntax
-sword OCIErrorGet ( dvoid      *hndlp, 
-                  ub4        recordno,
-                  OraText       *sqlstate,
-                  ub4        *errcodep, 
-                  OraText       *bufp,
-                  ub4        bufsiz,
-                  ub4        type );
-Comments
-Returns an error message in the buffer provided and an ORACLE error. 
-Currently does not support SQL state. This call can be called a multiple 
-number of times if there are more than one diagnostic record for an error.
-The error handle is originally allocated with a call to OCIHandleAlloc().
-Parameters
-hndlp (IN) - the error handle, in most cases, or the environment handle (for 
-errors on OCIEnvInit(), OCIHandleAlloc()).
-recordno (IN) - indicates the status record from which the application seeks 
-info. Starts from 1. 
-sqlstate (OUT) - Not supported in Version 8.0.
-errcodep (OUT) - an ORACLE Error is returned.
-bufp (OUT) - the error message text is returned.
-bufsiz (IN) - the size of the buffer provide to get the error message.
-type (IN) - the type of the handle.
-Related Functions
-OCIHandleAlloc()
-
-OCIExtractInit
-Name
-OCI Extract Initialize 
-Purpose
-This function initializes the parameter manager. 
-Syntax
-sword OCIExtractInit(dvoid *hndl, OCIError *err);
-Comments
-It must be called before calling any other parameter manager routine. The NLS 
-information is stored inside the parameter manager context and used in 
-subsequent calls to OCIExtract routines.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-Related Functions
-OCIExtractTerm()
-
-OCIExtractTerm
-Name
-OCI Extract Terminate
-Purpose
-This function releases all dynamically allocated storage and may perform 
-other internal bookkeeping functions.
-Syntax
-sword OCIExtractTerm(dvoid *hndl, OCIError *err);
-Comments
-It must be called when the parameter manager is no longer being used.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-Related Functions
-OCIExtractInit()
-
-OCIExtractReset
-Name
-OCI Extract Reset
-Purpose
-The memory currently used for parameter storage, key definition storage, and 
-parameter value lists is freed and the structure is reinitialized.
-Syntax
-sword OCIExtractReset(dvoid *hndl, OCIError *err);
-Comments
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-Related Functions
-
-OCIExtractSetNumKeys
-Name
-OCI Extract Set Number of Keys
-Purpose
-Informs the parameter manager of the number of keys that will be registered.
-Syntax
-sword OCIExtractSetNumKeys(dvoid *hndl, OCIError *err, uword numkeys);
-Comments
-This routine must be called prior to the first call of OCIExtractSetKey().  
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-numkeys (IN) - The number of keys that will be registered with 
-               OCIExtractSetKey().
-Related Functions
-OCIExtractSetKey()
-
-OCIExtractSetKey
-Name
-OCI Extract Set Key definition
-Purpose
-Registers information about a key with the parameter manager.
-Syntax
-sword OCIExtractSetKey(dvoid *hndl, OCIError *err, CONST OraText *name, 
-                       ub1 type, ub4 flag, CONST dvoid *defval,
-                       CONST sb4 *intrange, CONST OraText *CONST *strlist);
-Comments
-This routine must be called after calling OCIExtractSetKey() and before 
-calling OCIExtractFromFile() or OCIExtractFromStr().  
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-name (IN) - The name of the key.
-type (IN) - The type of the key (OCI_EXTRACT_TYPE_INTEGER, 
-            OCI_EXTRACT_TYPE_OCINUM, OCI_EXTRACT_TYPE_STRING, or 
-            OCI_EXTRACT_TYPE_BOOLEAN).
-flag (IN) - Set to OCI_EXTRACT_MULTIPLE if the key can take multiple values 
-            or 0 otherwise.
-defval (IN) - Set to the default value for the key.  May be NULL if there is 
-               no default.  A string default must be a (text*) type, an 
-               integer default must be an (sb4*) type, and a boolean default 
-               must be a (ub1*) type.
-intrange (IN) - Starting and ending values for the allowable range of integer 
-                values.  May be NULL if the key is not an integer type or if 
-                all integer values are acceptable.
-strlist (IN) - List of all acceptable text strings for the key.  May be NULL 
-               if the key is not a string type or if all text values are 
-               acceptable.
-Related Functions
-OCIExtractSetNumKeys()
-
-OCIExtractFromFile
-Name
-OCI Extract parameters From File
-Purpose
-The keys and their values in the given file are processed. 
-Syntax
-sword OCIExtractFromFile(dvoid *hndl, OCIError *err, ub4 flag, 
-                         OraText *filename);
-Comments
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-flag (IN) - Zero or has one or more of the following bits set: 
-           OCI_EXTRACT_CASE_SENSITIVE, OCI_EXTRACT_UNIQUE_ABBREVS, or 
-           OCI_EXTRACT_APPEND_VALUES. 
-filename (IN) - Null-terminated filename string.
-Related Functions
-
-OCIExtractFromStr
-Name
-OCI Extract parameters From String
-Purpose
-The keys and their values in the given string are processed. 
-Syntax
-sword OCIExtractFromStr(dvoid *hndl, OCIError *err, ub4 flag, OraText *input);
-Comments
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-flag (IN) - Zero or has one or more of the following bits set: 
-           OCI_EXTRACT_CASE_SENSITIVE, OCI_EXTRACT_UNIQUE_ABBREVS, or 
-           OCI_EXTRACT_APPEND_VALUES. 
-input (IN) - Null-terminated input string.
-Related Functions
-
-OCIExtractToInt
-Name
-OCI Extract To Integer
-Purpose
-Gets the integer value for the specified key.
-Syntax
-sword OCIExtractToInt(dvoid *hndl, OCIError *err, OraText *keyname, 
-                      uword valno, sb4 *retval);
-Comments
-The valno'th value (starting with 0) is returned.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. 
-OCI_NO_DATA means that there is no valno'th value for this key.
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-keyname (IN) - Key name.
-valno (IN) - Which value to get for this key.
-retval (OUT) - The actual integer value.
-Related Functions
-
-OCIExtractToBool
-Name
-OCI Extract To Boolean
-Purpose
-Gets the boolean value for the specified key. 
-Syntax
-sword OCIExtractToBool(dvoid *hndl, OCIError *err, OraText *keyname, 
-                       uword valno, ub1 *retval);
-Comments
-The valno'th value (starting with 0) is returned.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. 
-OCI_NO_DATA means that there is no valno'th value for this key.
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-keyname (IN) - Key name.
-valno (IN) - Which value to get for this key.
-retval (OUT) - The actual boolean value.
-Related Functions
-
-OCIExtractToStr
-Name
-OCI Extract To String
-Purpose
-Gets the string value for the specified key.
-Syntax
-sword OCIExtractToStr(dvoid *hndl, OCIError *err, OraText *keyname, 
-                      uword valno, OraText *retval, uword buflen);
-Comments
-The valno'th value (starting with 0) is returned.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. 
-OCI_NO_DATA means that there is no valno'th value for this key.
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-keyname (IN) - Key name.
-valno (IN) - Which value to get for this key.
-retval (OUT) - The actual null-terminated string value.
-buflen (IN) - The length of the buffer for retval.
-Related Functions
-
-Note: The following OCIExtract functions are unavailable in this release
-
-OCIExtractToOCINum
-Name
-OCI Extract To OCI Number
-Purpose
-Gets the OCINumber value for the specified key.
-Syntax
-sword OCIExtractToOCINum(dvoid *hndl, OCIError *err, OraText *keyname, 
-                         uword valno, OCINumber *retval);
-Comments
-The valno'th value (starting with 0) is returned.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. 
-OCI_NO_DATA means that there is no valno'th value for this key.
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-keyname (IN) - Key name.
-valno (IN) - Which value to get for this key.
-retval (OUT) - The actual OCINumber value.
-Related Functions
-
-OCIExtractToList
-Name
-OCI Extract To parameter List
-Purpose
-Generates a list of parameters from the parameter structures that are stored 
-in memory. 
-Syntax
-sword OCIExtractToList(dvoid *hndl, OCIError *err, uword *numkeys);
-Comments
-Must be called before OCIExtractValues() is called.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-numkeys (OUT) - Number of distinct keys stored in memory.
-Related Functions
-OCIExtractFromList()
-
-OCIExtractFromList
-Name
-OCI Extract From parameter List
-Purpose
-Generates a list of values for the a parameter in the parameter list.
-Syntax
-sword OCIExtractFromList(dvoid *hndl, OCIError *err, uword index, 
-                         OraText *name, ub1 *type, uword *numvals, 
-                         dvoid ***values);
-Comments
-Parameters are specified by an index. OCIExtractToList() must be called prior 
-to calling this routine to generate the parameter list from the parameter 
-structures that are stored in memory. 
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-name (OUT) - Name of the key for the current parameter.
-type (OUT) - Type of the current parameter (OCI_EXTRACT_TYPE_STRING, 
-             OCI_EXTRACT_TYPE_INTEGER, OCI_EXTRACT_TYPE_OCINUM, or 
-             OCI_EXTRACT_TYPE_BOOLEAN)
-numvals (OUT) - Number of values for this parameter.
-values (OUT) - The values for this parameter.
-Related Functions
-OCIExtractToList()
-
-
-************************  OCIFileClose() ***********************************
- 
-Name
- OCIFileClose - Oracle Call Interface FILE i/o CLOSE
-
-Purpose
- Close a previously opened file.
-
-Syntax
- sword OCIFileClose ( dvoid             *hndl, 
-                      OCIError          *err,
-                      OCIFileObject     *filep )
-
-Comments
- This function will close a previously opened file. If the function succeeds
- then OCI_SUCCESS will be returned, else OCI_ERROR. 
- 
-Parameters
- hndl  (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle
- filep (IN) - the OCIFile file object
-
-Related Functions
- OCIFileOpen.  
-
-
-
-********************* OCIFileExists() **************************************
-
-Name
- OCIFileExists - Oracle Call Interface FILE i/o EXIST
-
-Purpose
- Check to see if the file exists.
-
-Syntax
- sword OCIFileExists ( dvoid           *hndl, 
-                      OCIError         *err, 
-                      OraText          *filename,
-                      OraText          *path,
-                      ub1              *flag )
-
-Comments
- This function will set the flag to TRUE if the file exists else it will
- be set to FALSE.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR. 
-
-Parameters
- hndl(IN) - OCI environment or session handle
- err(OUT) - OCI error handle
- filename(IN) - filename
- path(IN) - path of the file
- flag(OUT) - whether the file exists or not
-
-Related Functions.
- None.
-     
-
- **************************** OCIFileFlush() ******************************
-
-
-Name
- OCIFileFlush - Oracle Call Interface File i/o FLUSH
-
-Purpose
- Flush the buffers associated with the file to the disk.
-
-Syntax
- sword OCIFileFlush ( dvoid             *hndl, 
-                      OCIError          *err,
-                      OCIFileObject     *filep )
-
-Comments
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters 
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle
- filep (IN) - the OCIFile file object
-
-Related Functions
- OCIFileOpen, OCIFileWrite
-
-
-
- *************************** OCIFileGetLength() ****************************
-
-Name
- OCIFileGetLength - Oracle Call Interface FILE i/o GET file LENGTH
-
-Purpose
- Get the length of a file.
-
-Syntax
- OCIFileGetLength(dvoid           *hndl, 
-                  OCIError        *err,
-                  OraText         *filename,
-                  OraText         *path,
-                  ubig_ora        *lenp )
-
-Comments
- The length of the file will be returned in lenp.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
- 
-Parameters
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filename (IN) - file name.
- path (IN) - path of the file.
- lenp (OUT) - On output, it is the length of the file in bytes.
- is the number of bytes in the file.
-
-Related Functions
- None.
-
-
-
-******************************** OCIFileInit() *****************************
-   
-Name
- OCIFileInit - Oracle Call Interface FILE i/o INITialize
-
-Purpose
- Initialize the OCI File I/O package and create the OCIFile context.
-
-Syntax
- sword OCIFileInit ( dvoid *hndl, 
-                     OCIError *err)
-
-Comments
- This function should be called before any of the OCIFile functions are
- used.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
- 
-Parameters
- hndl(IN) - OCI environment or session handle.
- err(OUT) - OCI error structure.
-
-Related Functions
- OCIFileTerm
-     
-
-
-********************************* OCIFileOpen() *****************************
-
-Name
- OCIFileOpen - Oracle Call Interface File i/o OPEN
-
-Purpose
-     Open a file.
-
-Syntax
- sword OCIFileOpen ( dvoid               *hndl, 
-                     OCIError            *err,
-                     OCIFileObject      **filep,
-                     OraText             *filename,
-                     OraText             *path,
-                     ub4                  mode,
-                     ub4                  create, 
-                     ub4                  type )
-
-Comments
- OCIFileOpen returns a handle to the open file in filep if the file is
- successfully opened. 
- If one wants to use the standard file objects (stdin, stdout & stderr)
- then OCIFileOpen whould be called with the type filed containing the 
- appropriate type (see the parameter type). If any of the standard files 
- are specified then filename, path, mode and create are ignored.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters
- hndl (OUT) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filep (OUT) - the file object to be returned.
- filename (IN) - file name (NULL terminated string).
- path (IN) - path of the file (NULL terminated string).
- mode - mode in which to open the file (valid modes are OCI_FILE_READONLY,
- OCI_FILE_WRITEONLY, OCI_FILE_READ_WRITE).
- create - should the file be created if it does not exist. Valid values
- are: 
-     OCI_FILE_TRUNCATE - create a file regardless of whether or not it exists. 
-                        If the file already exists overwrite it.
-     OCI_FILE_EXIST - open it if it exists, else fail.
-     OCI_FILE_EXCL - fail if the file exists, else create.
-     OCI_FILE_CREATE - open the file if it exists, and create it if it doesn't.
-     OCI_FILE_APPEND - set the file pointer to the end of the file prior to 
-                      writing(this flag can be OR'ed with OCI_FILE_EXIST or
-                      OCI_FILE_CREATE).
-type - file type. Valid values are OCI_FILE_TEXT, OCI_FILE_BIN, 
-       OCI_FILE_STDIN, OCI_FILE_STDOUT and OCI_FILE_STDERR.
-       If any of the standard files are specified then filename, path, mode
-       and create are ignored.
-
-Related Functions.
- OCIFileClose
-
-
-
-************************** OCIFileRead() ************************************
-   
-Name
- OCIFileRead - Oracle Call Interface FILE i/o READ
-
-Purpose
- Read from a file into a buffer.
-
-Syntax
- sword OCIFileRead ( dvoid            *hndl, 
-                     OCIError         *err,
-                     OCIFileObject    *filep,
-                     dvoid            *bufp,
-                     ub4               bufl,
-                     ub4              *bytesread )
-
-Comments
- Upto bufl bytes from the file will be read into bufp. The user should
- allocate memory for the buffer.
- The number of bytes read would be in bytesread.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filep (IN/OUT) - a File Object that uniquely references the file.
- bufp (IN) - the pointer to a buffer into which the data will be read. The 
- length of the allocated memory is assumed to be bufl. 
- bufl - the length of the buffer in bytes. 
- bytesread (OUT) - the number of bytes read.
-
-Related Functions
- OCIFileOpen, OCIFileSeek, OCIFileWrite
-
-
-
-****************************** OCIFileSeek() ******************************
-
-Name
- OCIFileSeek - Oracle Call Interface FILE i/o SEEK
-
-Purpose
- Perfom a seek to a byte position.
-
-Syntax
- sword OCIFileSeek ( dvoid           *hndl, 
-                     OCIError        *err,  
-                     OCIFileObject   *filep,
-                     uword            origin,
-                     ubig_ora         offset,
-                     sb1              dir)
-
-Comments
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filep (IN/OUT) - a file handle that uniquely references the file.
- origin - The starting point we want to seek from. NOTE: The starting 
- point may be OCI_FILE_SEEK_BEGINNING (beginning), OCI_FILE_SEEK_CURRENT 
- (current position), or OCI_FILE_SEEK_END (end of file). 
- offset - The number of bytes from the origin we want to start reading from. 
- dir - The direction we want to go from the origin. NOTE: The direction 
- can be either OCI_FILE_FORWARD or OCI_FILE_BACKWARD. 
- 
-Related Function
- OCIFileOpen, OCIFileRead, OCIFileWrite
-
-
-
-*************************** OCIFileTerm() **********************************
-
-Name
- OCIFileTerm - Oracle Call Interface FILE i/o TERMinate
-
-Purpose
- Terminate the OCI File I/O package and destroy the OCI File context.
-
-Syntax
- sword OCIFileTerm ( dvoid *hndl, 
-                     OCIError *err )
-
-Comments
- After this function has been called no OCIFile function should be used.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
- 
-Parameters
- hndl(IN) - OCI environment or session handle.
- err(OUT) - OCI error structure. 
-  
-Related Functions 
- OCIFileInit   
- 
-
-********************************* OCIFileWrite() **************************** 
-
-Name 
- OCIFileWrite - Oracle Call Interface FILE i/o WRITE
-
-Purpose
-  Write data from buffer into a file.
-
-Syntax
- sword OCIFileWrite ( dvoid            *hndl, 
-                      OCIError         *err,  
-                      OCIFileObject    *filep,
-                      dvoid            *bufp, 
-                      ub4               buflen
-                      ub4              *byteswritten )
-
-Comments
- The number of bytes written will be in *byteswritten.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filep (IN/OUT) - a file handle that uniquely references the file.
- bufp (IN) - the pointer to a buffer from which the data will be written. 
- The length of the allocated memory is assumed to be the value passed
- in bufl. 
- bufl - the length of the buffer in bytes.
- byteswritten (OUT) - the number of bytes written.
- 
-Related Functions
- OCIFileOpen, OCIFileSeek, OCIFileRead 
-
-
-
-
-
-OCIHandleAlloc() 
-Name
-OCI Get HaNDLe
-Purpose
-This call returns a pointer to an allocated and initialized handle.
-Syntax
-sword OCIHandleAlloc ( CONST dvoid   *parenth,
-                     dvoid         **hndlpp, 
-                     ub4           type, 
-                     size_t        xtramem_sz,
-                     dvoid         **usrmempp);
-Comments
-Returns a pointer to an allocated and initialized structure, corresponding to 
-the type specified in type. A non-NULL handle is returned on success. Bind 
-handle and define handles are allocated with respect to a statement handle. All
-other handles are allocated with respect to an environment handle which is 
-passed in as a parent handle.
-No diagnostics are available on error. This call returns OCI_SUCCESS if 
-successful, or OCI_INVALID_HANDLE if an out-of-memory error occurs.
-Handles must be allocated using OCIHandleAlloc() before they can be passed 
-into an OCI call.
-Parameters
-parenth (IN) - an environment or a statement handle. 
-hndlpp (OUT) - returns a handle to a handle type. 
-type (IN) - specifies the type of handle to be allocated. The specific types 
-are: 
-OCI_HTYPE_ERROR - specifies generation of an error report handle of 
-C type OCIError
-OCI_HTYPE_SVCCTX - specifies generation of a service context handle 
-of C type OCISvcCtx
-OCI_HTYPE_STMT - specifies generation of a statement (application 
-request) handle of C type OCIStmt
-OCI_HTYPE_BIND - specifies generation of a bind information handle 
-of C type OCIBind
-OCI_HTYPE_DEFINE - specifies generation of a column definition 
-handle of C type OCIDefine
-OCI_HTYPE_DESCRIBE  - specifies generation of a select list 
-description handle of C type OCIDesc
-OCI_HTYPE_SERVER - specifies generation of a server context handle 
-of C type OCIServer
-OCI_HTYPE_SESSION - specifies generation of an authentication 
-context handle of C type OCISession
-OCI_HTYPE_TRANS - specifies generation of a transaction context
-handle of C type OCITrans
-OCI_HTYPE_COMPLEXOBJECT - specifies generation of a complex 
-object retrieval handle of C type OCIComplexObject
-OCI_HTYPE_SECURITY - specifies generation of a security handle of C 
-type OCISecurity
-xtramem_sz (IN) - specifies an amount of user memory to be allocated.
-usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz 
-allocated by the call for the user. 
-Related Functions
-OCIHandleFree()
-
-
-
-OCIHandleFree()
-Name
-OCI Free HaNDLe
-Purpose
-This call explicitly deallocates a handle.
-Syntax
-sword OCIHandleFree ( dvoid     *hndlp,
-                    ub4       type);
-Comments
-This call frees up storage associated with a handle, corresponding to the type 
-specified in the type parameter.
-This call returns either OCI_SUCCESS or OCI_INVALID_HANDLE.
-All handles must be explicitly deallocated. OCI will not deallocate a child 
-handle if the parent is deallocated.
-Parameters
-hndlp (IN) - an opaque pointer to some storage.
-type (IN) - specifies the type of storage to be allocated. The specific types 
-are:
-OCI_HTYPE_ENV - an environment handle
-OCI_HTYPE_ERROR - an error report handle
-OCI_HTYPE_SVCCTX - a service context handle
-OCI_HTYPE_STMT - a statement (application request) handle
-OCI_HTYPE_BIND - a bind information handle
-OCI_HTYPE_DEFINE - a column definition handle
-OCI_HTYPE_DESCRIBE  - a select list description handle
-OCI_HTYPE_SERVER - a server handle
-OCI_HTYPE_SESSION - a user authentication handle
-OCI_HTYPE_TRANS - a transaction handle
-OCI_HTYPE_COMPLEXOBJECT - a complex object retrieval handle
-OCI_HTYPE_SECURITY - a security handle
-Related Functions
-OCIHandleAlloc()
-
-
-
-
-OCIInitialize()
-Name
-OCI Process Initialize
-Purpose
-Initializes the OCI process environment.
-Syntax
-sword OCIInitialize ( ub4           mode,
-                    CONST dvoid   *ctxp, 
-                    CONST dvoid   *(*malocfp) 
-                                  ( dvoid *ctxp,
-                                    size_t size ),
-                    CONST dvoid   *(*ralocfp)
-                                  ( dvoid *ctxp,
-                                    dvoid *memp,
-                                    size_t newsize ),
-                    CONST void    (*mfreefp)
-                                  ( dvoid *ctxp,
-                                    dvoid *memptr ));
-Comments
-This call initializes the OCI process environment.
-OCIInitialize() must be invoked before any other OCI call. 
-Parameters
-mode (IN) - specifies initialization of the mode. The valid modes are:
-OCI_DEFAULT - default mode.
-OCI_THREADED - threaded environment. In this mode, internal data 
-structures are protected from concurrent accesses by multiple threads. 
-OCI_OBJECT - will use navigational object interface. 
-ctxp (IN) - user defined context for the memory call back routines. 
-malocfp (IN) - user-defined memory allocation function. If mode is 
-OCI_THREADED, this memory allocation routine must be thread safe.
-ctxp - context pointer for the user-defined memory allocation function.
-size - size of memory to be allocated by the user-defined memory 
-allocation function
-ralocfp (IN) - user-defined memory re-allocation function. If mode is 
-OCI_THREADED, this memory allocation routine must be thread safe.
-ctxp - context pointer for the user-defined memory reallocation 
-function.
-memp - pointer to memory block
-newsize - new size of memory to be allocated
-mfreefp (IN) - user-defined memory free function. If mode is 
-OCI_THREADED, this memory free routine must be thread safe.
-ctxp - context pointer for the user-defined memory free function.
-memptr - pointer to memory to be freed
-Example
-See the description of OCIStmtPrepare() on page 13-96 for an example showing 
-the use of OCIInitialize().
-Related Functions
-
--------------------------------OCITerminate------------------------------------
-
-OCITerminate()
-Name
-OCI process Terminate
-Purpose
-Do cleanup before process termination
-Syntax
-sword OCITerminate (ub4 mode);
-
-Comments
-This call performs  OCI related clean up before the OCI process terminates.
-If the process is running in shared mode then the OCI process is disconnected
-from the shared memory subsystem.
-
-OCITerminate() should be the last OCI call in any process.
-
-Parameters
-mode (IN) - specifies different termination modes.
-
-OCI_DEFAULT - default mode.
-
-Example
-
-Related Functions
-OCIInitialize()
-
----------------------- OCIIntervalAssign --------------------------------- 
-sword OCIIntervalAssign(dvoid *hndl, OCIError *err, 
-                    CONST OCIInterval *inpinter, OCIInterval *outinter );
-
-  DESCRIPTION
-    Copies one interval to another to create a replica
-  PARAMETERS
-     hndl (IN) - Session/Env handle.
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  inpinter - Input Interval 
-    (OUT) outinter - Output Interval 
-  RETURNS
-     OCI_INVALID_HANDLE if 'err' is NULL.
-     OCI_SUCCESS otherwise
-
- ---------------------- OCIIntervalCheck ------------------------------------ 
-sword OCIIntervalCheck(dvoid *hndl, OCIError *err, CONST OCIInterval *interval,
-                         ub4 *valid );
-
-  DESCRIPTION
-    Checks the validity of an interval
-  PARAMETERS
-     hndl (IN) - Session/Env handle.
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  interval - Interval to be checked 
-    (OUT) valid     - Zero if the interval is valid, else returns an Ored
-        combination of the following codes.
-
-   Macro name                   Bit number      Error
-   ----------                   ----------      -----
-   OCI_INTER_INVALID_DAY         0x1           Bad day
-   OCI_INTER_DAY_BELOW_VALID     0x2           Bad DAy Low/high bit (1=low)
-   OCI_INTER_INVALID_MONTH       0x4           Bad MOnth
-   OCI_INTER_MONTH_BELOW_VALID   0x8           Bad MOnth Low/high bit (1=low)
-   OCI_INTER_INVALID_YEAR        0x10          Bad YeaR
-   OCI_INTER_YEAR_BELOW_VALID    0x20          Bad YeaR Low/high bit (1=low)
-   OCI_INTER_INVALID_HOUR        0x40          Bad HouR
-   OCI_INTER_HOUR_BELOW_VALID    0x80          Bad HouR Low/high bit (1=low)
-   OCI_INTER_INVALID_MINUTE      0x100         Bad MiNute
-   OCI_INTER_MINUTE_BELOW_VALID  0x200         Bad MiNute Low/high bit(1=low)
-   OCI_INTER_INVALID_SECOND      0x400         Bad SeCond
-   OCI_INTER_SECOND_BELOW_VALID  0x800         bad second Low/high bit(1=low)
-   OCI_INTER_INVALID_FRACSEC     0x1000        Bad Fractional second
-   OCI_INTER_FRACSEC_BELOW_VALID 0x2000        Bad fractional second Low/High
-
-        
-  RETURNS
-    OCI_SUCCESS if interval is okay
-    OCI_INVALID_HANDLE if 'err' is NULL.
-
- ---------------------- OCIIntervalCompare ----------------------------------- 
-sword OCIIntervalCompare(dvoid *hndl, OCIError *err, OCIInterval *inter1, 
-                        OCIInterval *inter2, sword *result );
-
-  DESCRIPTION
-        Compares two intervals, returns 0 if equal, -1 if inter1 < inter2, 
-        1 if inter1 > inter2
-  PARAMETERS
-     hndl (IN) - Session/Env handle. 
-     err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-     inter1  (IN)   - Interval to be compared 
-     inter2  (IN)   - Interval to be compared 
-     result  (OUT)  -   comparison result, 0 if equal, -1 if inter1 < inter2, 
-                        1 if inter1 > inter2
-
-  RETURNS
-     OCI_SUCCESS on success
-     OCI_INVALID_HANDLE if 'err' is NULL.
-     OCI_ERROR if 
-        the two input datetimes are not mutually comparable.
-
----------------------- OCIIntervalDivide ------------------------------------ 
-sword OCIIntervalDivide(dvoid *hndl, OCIError *err, OCIInterval *dividend, 
-                OCINumber *divisor, OCIInterval *result );
- 
-  DESCRIPTION
-     Divides an interval by an Oracle Number to produce an interval
-  PARAMETERS
-        hndl (IN) - Session/Env handle. 
-     err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-     dividend  (IN)   - Interval to be divided 
-     divisor   (IN)   - Oracle Number dividing `dividend' 
-     result    (OUT)  - resulting interval (dividend / divisor) 
-  RETURNS
-     OCI_SUCCESS on success
-     OCI_INVALID_HANDLE if 'err' is NULL.
-
- ---------------------- OCIIntervalFromNumber -------------------- 
-sword OCIIntervalFromNumber(dvoid *hndl, OCIError *err, 
-               OCIInterval *inter, OCINumber *number);
-  DESCRIPTION
-    Converts an interval to an Oracle Number
-  PARAMETERS
-     hndl (IN) - Session/Env handle. 
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (OUT)  interval - Interval to be converted 
-    (IN) number - Oracle number result  (in years for YEARMONTH interval
-                     and in days for DAYSECOND)
-  RETURNS
-    OCI_SUCCESS on success 
-    OCI_INVALID_HANDLE if 'err' is NULL.
-    OCI_ERROR on error.
-  NOTES
-    Fractional portions of the date (for instance, minutes and seconds if
-    the unit chosen is hours) will be included in the Oracle number produced.
-    Excess precision will be truncated.
- 
- ---------------------- OCIIntervalFromText --------------------------------- 
-sword OCIIntervalFromText( dvoid *hndl, OCIError *err, CONST OraText *inpstr, 
-                size_t str_len, OCIInterval *result );
-
-  DESCRIPTION
-    Given an interval string produce the interval represented by the string.
-    The type of the interval is the type of the 'result' descriptor.
-  PARAMETERS
-
-     hndl (IN) - Session/Env handle. 
-     err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  inpstr - Input string 
-    (IN)  str_len - Length of input string 
-    (OUT) result - Resultant interval 
-  RETURNS
-    OCI_SUCCESS on success
-    OCI_INVALID_HANDLE if 'err' is NULL.
-    OCI_ERROR if
-        there are too many fields in the literal string
-        the year is out of range (-4713 to 9999)
-        if the month is out of range (1 to 12)
-        if the day of month is out of range (1 to 28...31)
-        if hour is not in range (0 to 23)
-        if hour is not in range (0 to 11)
-        if minute is not in range (0 to 59)
-        if seconds in minute not in range (0 to 59)
-        if seconds in day not in range (0 to 86399)
-        if the interval is invalid
-
-
- ---------------------- OCIIntervalGetDaySecond -------------------- 
-
-  DESCRIPTION
-     Gets values of day second interval
-  PARAMETERS
-        hndl (IN) - Session/Env handle.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-        day     (OUT) - number of days
-        hour    (OUT) - number of hours
-        min     (OUT) - number of mins
-        sec     (OUT) - number of secs
-        fsec    (OUT) - number of fractional seconds
-        result     (IN)  - resulting interval 
-  RETURNS
-        OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-
-
- ---------------------- OCIIntervalGetYearMonth -------------------- 
-
-  DESCRIPTION
-     Gets year month from an interval
-  PARAMETERS
-        hndl (IN) - Session/Env handle.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-        year    (OUT)   - year value
-        month   (OUT)   - month value
-        result     (IN)  - resulting interval 
-  RETURNS
-        OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-
-
-
--------------------------- OCIIntervalAdd ------------------------------
-sword OCIIntervalAdd(dvoid *hndl, OCIError *err, OCIInterval *addend1, 
-                        OCIInterval *addend2, OCIInterval *result );
-NAME OCIIntervalAdd - Adds two intervals 
-PARAMETERS
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-addend1  (IN)   - Interval to be added 
-addend2  (IN)   - Interval to be added 
-result   (OUT)  - resulting interval (addend1 + addend2) 
-DESCRIPTION
-     Adds two intervals to produce a resulting interval
-RETURNS
-     OCI_SUCCESS on success
-     OCI_ERROR if:
-        the two input intervals are not mutually comparable.
-        the resulting year would go above SB4MAXVAL
-        the resulting year would go below SB4MINVAL
-     OCI_INVALID_HANDLE if 'err' is NULL.
-NOTES
-     The two input intervals must be mutually comparable
-
- ---------------------- OCIIntervalSubtract ------------------------------- 
-sword OCIIntervalSubtract(dvoid *hndl, OCIError *err, OCIInterval *minuend, 
-                            OCIInterval *subtrahend, OCIInterval *result );
-NAME - OCIIntervalSubtract - subtracts two intervals
-PARAMETERS
-hndl (IN) - Session/Env handle.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-minuend    (IN)   - interval to be subtracted from 
-subtrahend (IN)   - interval subtracted from minuend 
-result     (OUT)  - resulting interval (minuend - subtrahend) 
-DESCRIPTION
-     Subtracts two intervals and stores the result in an interval
-RETURNS
-        OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if:
-           the two input intervals are not mutually comparable.
-           the resulting leading field would go below SB4MINVAL 
-           the resulting leading field would go above SB4MAXVAL
-
----------------------- OCIIntervalMultiply --------------------------------- 
-sword OCIIntervalMultiply(dvoid *hndl, OCIError *err, CONST OCIInterval *inter,
-                        OCINumber *nfactor, OCIInterval *result );
-
-  DESCRIPTION
-     Multiplies an interval by an Oracle Number to produce an interval
-  PARAMETERS
-        hndl (IN) - Session/Env handle. 
-     err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-     inter  (IN)   - Interval to be multiplied 
-     nfactor  (IN)   - Oracle Number to be multiplied 
-     result   (OUT)  - resulting interval (ifactor * nfactor) 
-  RETURNS
-     OCI_SUCCESS on success
-     OCI_INVALID_HANDLE if 'err' is NULL.
-     OCI_ERROR if:
-        the resulting year would go above SB4MAXVAL
-        the resulting year would go below SB4MINVAL
-
-
- ---------------------- OCIIntervalSetDaySecond -------------------- 
-
-  DESCRIPTION
-     Sets day second interval
-  PARAMETERS
-        hndl (IN) - Session/Env handle.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-        day     (IN) - number of days
-        hour    (IN) - number of hours
-        min     (IN) - number of mins
-        sec     (IN) - number of secs
-        fsec    (IN) - number of fractional seconds
-        result     (OUT)  - resulting interval 
-  RETURNS
-        OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-
-
- ---------------------- OCIIntervalSetYearMonth -------------------- 
-
-  DESCRIPTION
-     Sets year month interval
-  PARAMETERS
-        hndl (IN) - Session/Env handle.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-        year    (IN)   - year value
-        month   (IN)   - month value
-        result     (OUT)  - resulting interval 
-  RETURNS
-        OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-
-
------------------------ OCIIntervalToNumber ---------------------------------
-sword OCIIntervalToNumber(dvoid *hndl, OCIError *err, CONST OCIInterval *inter,
-                          OCINumber *number);
-
-  DESCRIPTION
-    Converts an interval to an Oracle Number
-  PARAMETERS
-     hndl (IN) - Session/Env handle. 
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  inter - Interval to be converted 
-    (OUT) number - Oracle number result  (in years for YEARMONTH interval
-                     and in days for DAYSECOND)
-  RETURNS
-    OCI_INVALID_HANDLE if 'err' is NULL.
-    OCI_SUCCESS on success 
-  NOTES
-    Fractional portions of the date (for instance, minutes and seconds if
-    the unit chosen is hours) will be included in the Oracle number produced.
-    Excess precision will be truncated.
- 
-------------------------------- OCIIntervalToText -------------------------
-sword OCIIntervalToText( dvoid *hndl, OCIError *err, CONST OCIInterval *inter,
-                        ub1 lfprec, ub1 fsprec, OraText *buffer, 
-                        size_t buflen, size_t *resultlen );
-
-  DESCRIPTION
-    Given an interval, produces a string representing the interval.
-  PARAMETERS
-     hndl (IN) - Session/Env handle. 
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  inter - Interval to be converted 
-    (IN)  lfprec  - Leading field precision. Number of digits used to
-                represent the leading field.
-    (IN)  fsprec  - Fractional second precision of the interval. Number of
-                digits used to represent the fractional seconds.
-    (OUT) buffer - buffer to hold result 
-    (IN)  buflen - length of above buffer 
-    (OUT) resultlen - length of result placed into buffer 
- 
-  RETURNS
-    OCI_SUCCESS on success
-    OCI_INVALID_HANDLE if 'err' is NULL.
-    OCI_ERROR 
-        if the buffer is not large enough to hold the result
-  NOTES
-    The interval literal will be output as `year' or `[year-]month' for
-    YEAR-MONTH intervals and as `seconds' or `minutes[:seconds]' or
-    `hours[:minutes[:seconds]]' or `days[ hours[:minutes[:seconds]]]' for
-    DAY-TIME intervals (where optional fields are surrounded by brackets).
-
- ---------------------- OCIIntervalFromTZ -------------------- 
-sword OCIIntervalFromTZ(dvoid *hndl, OCIError *err, CONST oratext *inpstring,
-                        size_t str_len, OCIInterval *result);
-
-  DESCRIPTION
-    Retuns an OCI_DTYPE_INTERVAL_DS OCIInterval with the region id (if
-    the region is specified in the input string) set and the current
-    absolute offset or an absolut offset with the region id set to 0.
-  PARAMETERS
-    hndl (IN) - Session/Env handle.
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    inpstring (IN) - pointer to the input string
-    str_len (IN) - inpstring length
-    result - Output Interval 
-  RETURNS
-     OCI_SUCCESS on success
-     OCI_INVALID_HANDLE if 'err' is NULL.
-     OCI_ERROR on error
-        Bad interval type
-        Timezone errors
-  NOTES
-     The input string must be of the form [+/-]TZH:TZM or 'TZR [TZD]'
-
- ----------------------- OCIKerbAttrSet ---------------------
-sword OCIKerbAttrSet(OCISession *trgthndlp, ub4 auth_mode, 
-                     ub1 *ftgt_ticket, ub4 ftgt_ticket_len, 
-                     ub1 *ftgt_sesskey, ub4 ftgt_sesskey_len, 
-                     ub2 ftgt_keytype, ub4 ftgt_ticket_flags, 
-                     sb4 ftgt_auth_time, sb4 ftgt_start_time, 
-                     sb4 ftgt_end_time, sb4 ftgt_renew_time, 
-                     text *ftgt_principal, ub4 ftgt_principal_len,
-                     text *ftgt_realm, ub4 ftgt_realm_len, 
-                     OCIError *errhp);
-
-  DESCRIPTION
-    This call sets the attributes required for Kerberos authentication
-    on the user handle.
-
-  PARAMETERS
-    trgthndlp (IN) - The pointer to a user handle.
-    auth_mode (IN) - Indicates what type of Kerberos credentials should
-                    be set. Options are:
-
-                    OCI_KERBCRED_PROXY 
-                                         - Set Kerberos credentials for use with
-                                           proxy authentication.
-                    OCI_KERBCRED_CLIENT_IDENTIFIER 
-                                         - Set Kerberos credentials for use
-                                           with secure client identifier.
-
-    ftgt_ticket (IN) - Forwardable Ticket Granting Ticket (FTGT).
-    ftgt_ticket_len (IN) - Length of FTGT.
-    ftgt_sesskey(IN) - Session Key associated with FTGT.
-    ftgt_sesskey_len (IN) - Length of session key.
-    ftgt_keytype (IN) -  Type of encryption key used to encrypt FTGT.
-    ftgt_ticket_flags (IN) - Flags associated with  encryption of FTGT.
-    ftgt_auth_time (IN) - Authentication time compatible with that in FTGT.
-    ftgt_start_time (IN) - Start time compatible with that indicated in FTGT.
-    ftgt_end_time (IN) - End time compatible with that indicated in FTGT.
-    ftgt_renew_time (IN) - Renew time compatible with that indicated in FTGT.
-    ftgt_principal (IN) - Client principal name from FTGT.
-    ftgt_principal_len (IN) - Length of client principal name.
-    ftgt_realm (IN) - Client realm name from FTGT.
-    ftgt_realm_len (IN) - Client realm name length.
-    errhp (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-  RETURNS
-     OCI_SUCCESS on success
-     OCI_ERROR on error
-  NOTES
-
-OCILdaToSvcCtx()
-Name
-OCI toggle version 7 Lda_Def to SerVice context handle
-Purpose
-Converts a V7 Lda_Def to a V8 service context handle.
-Syntax
-sword OCILdaToSvcCtx ( OCISvcCtx  **svchpp,
-                     OCIError   *errhp,
-                     Lda_Def    *ldap );
-Comments
-Converts a V7 Lda_Def to a V8 service context handle. The action of this call 
-can be reversed by passing the resulting service context handle to the 
-OCISvcCtxToLda() function.
-Parameters
-svchpp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-ldap (IN/OUT) - the V7 logon data area returned by OCISvcCtxToLda() from 
-this service context.
-Related Functions
-OCISvcCtxToLda()
-
-
-
-
-OCILobAppend()
-
-Name
-OCI Lob APpend
-
-Purpose
-Appends a LOB value at the end of another LOB. 
-
-Syntax
-sword OCILobAppend ( OCISvcCtx        *svchp,
-                   OCIError         *errhp,
-                   OCILobLocator    *dst_locp,
-                   OCILobLocator    *src_locp );
-Comments
-Appends a LOB value at the end of LOB. The data is 
-copied from the source to the destination at the end of the destination. The 
-source and the destination must already exist. The destination LOB is 
-extended to accommodate the newly written data.
-
-It is an error to extend the destination LOB beyond the maximum length 
-allowed or to try to copy from a NULL LOB. 
-
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-dst_locp (IN/OUT) - a locator uniquely referencing the destination LOB. 
-src_locp (IN/OUT) - a locator uniquely referencing the source LOB. 
-
-Related Functions
-OCILobTrim()
-OCIErrorGet()
-OCILobWrite()
-OCILobCopy()
-
-
-
-OCILobAssign()
-
-Name
-OCI Lob ASsiGn
-
-Purpose
-Assigns one LOB/FILE locator to another.
-
-Syntax
-sword OCILobAssign ( OCIEnv                *envhp, 
-                     OCIError              *errhp, 
-                     CONST OCILobLocator   *src_locp, 
-                     OCILobLocator         **dst_locpp );
-
-Comments
-Assign source locator to destination locator.  After the assignment, both 
-locators refer to the same LOB data.  For internal LOBs, the source locator's 
-LOB data gets copied to the destination locator's LOB data only when the 
-destination locator gets stored in the table.  Therefore, issuing a flush of 
-the object containing the destination locator will copy the LOB data. For 
-FILEs only the locator that refers to the OS file is copied to the table. The
-OS file is not copied.
-Note: The only difference between this and OCILobLocatorAssign is that this
-takes an environment handle whereas OCILobLocatorAssign takes an OCI service
-handle
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded 
-in errhp and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-src_locp (IN) - LOB locator to copy from.
-dst_locpp (IN/OUT) - LOB locator to copy to.  The caller must allocate space 
-for the OCILobLocator by calling OCIDescriptorAlloc().
-
-See also
-OCIErrorGet()
-OCILobIsEqual()
-OCILobLocatorIsInit()
-OCILobLocatorAssign()
-
-
-OCILobCharSetForm()
-
-Name
-OCI Lob Get Character Set Form
-
-Purpose
-Gets the LOB locator's character set fpr,, if any.
-
-Syntax
-sword OCILobCharSetForm ( OCIEnv                    *envhp, 
-                          OCIError                  *errhp, 
-                          CONST OCILobLocator       *locp, 
-                          ub1                       *csfrm );
-
-Comments
-Returns the character set form of the input LOB locator in the csfrm output 
-parameter. 
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it 
-is recorded in err and this function returns OCI_ERROR. Diagnostic 
-information can be obtained by calling OCIErrorGet().
-locp (IN) - LOB locator for which to get the character set form.
-csfrm(OUT) - character set form of the input LOB locator.  If the input 
-locator is for a BLOB or a BFILE, csfrm is set to 0 since there is no concept 
-of a character set for binary LOBs/FILEs.  The caller must allocate space for 
-the csfrm (ub1) and not write into the space.
-See also
-OCIErrorGet(), OCILobCharSetId(), OCILobLocatorIsInit
-
-
-
-OCILobCharSetId()
-
-Name
-OCI Lob get Character Set IDentifier
-
-Purpose
-Gets the LOB locator's character set ID, if any.
-
-Syntax
-sword OCILobCharSetId ( OCIEnv                    *envhp, 
-                        OCIError                  *errhp, 
-                        CONST OCILobLocator       *locp, 
-                        ub2                       *csid );
-
-Comments
-Returns the character set ID of the input LOB locator in the cid output 
-parameter. 
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it 
-is recorded in err and this function returns OCI_ERROR. Diagnostic 
-information can be obtained by calling OCIErrorGet().
-locp (IN) - LOB locator for which to get the character set ID.
-csid (OUT) - character set ID of the input LOB locator.  If the input locator 
-is for a BLOB or a BFILE, csid is set to 0 since there is no concept of a 
-character set for binary LOBs/FILEs.  The caller must allocate space for the 
-character set id of type ub2 and not write into the space.
-
-See also
-OCIErrorGet(), OCILobCharSetForm(), OCILobLocatorIsInit()
-
-
-
-OCILobCopy()
-
-Name
-OCI Lob Copy
-
-Purpose
-Copies a portion of a LOB value into another LOB value.
-
-Syntax
-sword OCILobCopy ( OCISvcCtx        *svchp,
-                   OCIError         *errhp,
-                   OCILobLocator    *dst_locp,
-                   OCILobLocator    *src_locp,
-                   ub4              amount,
-                   ub4              dst_offset,
-                   ub4              src_offset );
-
-Comments
-Copies a portion of a LOB value into another LOB as specified. The data 
-is copied from the source to the destination. The source (src_locp) and the 
-destination (dlopb) LOBs must already exist.
-If the data already exists at the destination's start position, it is 
-overwritten with the source data. If the destination's start position is 
-beyond the end of the current data, a hole is created from the end of the data
-to the beginning of the newly written data from the source. The destination 
-LOB is extended to accommodate the newly written data if it extends 
-beyond the current length of the destination LOB. 
-It is an error to extend the destination LOB beyond the maximum length 
-allowed or to try to copy from a NULL LOB.
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-dst_locp (IN/OUT) - a locator uniquely referencing the destination LOB. 
-src_locp (IN/OUT) - a locator uniquely referencing the source LOB. 
-amount (IN) - the number of character or bytes, as appropriate, to be copied.
-dst_offset (IN) - this is the absolute offset for the destination LOB. 
-For character LOBs it is the number of characters from the beginning of the 
-LOB at which to begin writing. For binary LOBs it is the number of bytes from 
-the beginning of the lob from which to begin reading. The offset starts at 1.
-src_offset (IN) - this is the absolute offset for the source LOB. 
-For character LOBs it is the number of characters from the beginning of the 
-LOB, for binary LOBs it is the number of bytes. Starts at 1.
-
-See Also 
-OCIErrorGet(), OCILobAppend(), OCILobWrite(), OCILobTrim()
-
-OCILobCreateTemporary()
-
-Name
-OCI Lob Create Temporary
-
-Purpose
-Create a Temporary Lob
-
-Syntax
-sword OCILobCreateTemporary(OCISvcCtx          *svchp,
-                            OCIError           *errhp,
-                            OCILobLocator      *locp,
-                            ub2                 csid,
-                            ub1                 csfrm,
-                            ub1                 lobtype,
-                            boolean             cache,
-                            OCIDuration         duration);
-
-
-Comments
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator which points to the temporary Lob
-csid (IN) - the character set id
-csfrm(IN) - the character set form
-lobtype (IN) - the lob type - one of the three constants OCI_TEMP_BLOB, 
-               OCI_TEMP_CLOB and OCI_TEMP_NCLOB
-cache(IN)-  TRUE if the temporary LOB goes through the cache; FALSE, if not.
-duration(IN)- duration of the temporary LOB; Can be a valid duration id or one 
-              of the values: OCI_DURATION_SESSION, OCI_DURATION_CALL
-              Note: OCI_DURATION_TRANSACTION is NOT supported in 8.1
-Related functions
-OCILobFreeTemporary()
-OCILobIsTemporary()
-
-OCILobDisableBuffering()
-
-Name
-OCI Lob Disable Buffering
-
-Purpose
-Disable lob buffering for the input locator.
-
-
-Syntax
-sword OCILobDisableBuffering ( OCISvcCtx      *svchp,
-                               OCIError       *errhp,
-                               OCILobLocator  *locp);
-
-Comments
-
-Disable lob buffering for the input locator.  The next time data is
-read/written from/to the lob through the input locator, the lob
-buffering subsystem is *not* used.  Note that this call does *not*
-implicitly flush the changes made in the buffering subsystem.  The 
-user must explicitly call OCILobFlushBuffer() to do this.
-
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator uniquely referencing the LOB. 
-
-Related Functions
-OCILobEnableBuffering()
-OCIErrorGet()
-OCILobFlushBuffer()
-
-
-
-
-OCILobEnableBuffering()
-
-Name
-OCI Lob Enable Buffering
-
-Purpose
-Enable lob buffering for the input locator.
-
-
-Syntax
-sword OCILobEnableBuffering ( OCISvcCtx      *svchp,
-                              OCIError       *errhp,
-                              OCILobLocator  *locp);
-
-Comments
-
-Enable lob buffering for the input locator.  The next time data is
-read/written from/to the lob through the input locator, the lob
-buffering subsystem is used.  
-
-Once lob buffering is enabled for a locator, if that locator is passed to 
-one of the following routines, an error is returned:
-        OCILobCopy, OCILobAppend, OCILobErase, OCILobGetLength, OCILobTrim
-
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator uniquely referencing the LOB. 
-
-Related Functions
-OCILobDisableBuffering()
-OCIErrorGet()
-OCILobWrite()
-OCILobRead()
-OCILobFlushBuffer()
-
-
-
-
-OCILobErase()
-
-Name
-OCI Lob ERase
-
-Purpose
-Erases a specified portion of the LOB data starting at a specified offset.
-
-Syntax
-sword OCILobErase ( OCISvcCtx       *svchp,
-                  OCIError        *errhp,
-                  OCILobLocator   *locp,
-                  ub4             *amount,
-                  ub4             offset );
-
-Comments
-Erases a specified portion of the LOB data starting at a specified offset.
-The actual number of characters/bytes erased is returned. The actual number 
-of characters/bytes and the requested number of characters/bytes will differ 
-if the end of the LOB data is reached before erasing the requested number of 
-characters/bytes.
-If a section of data from the middle of the LOB data is erased, a hole is 
-created. When data from that hole is read, 0's are returned. If the LOB is
-NULL, this routine will indicate that 0 characters/bytes were erased.
-
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - the LOB for which to erase a section of data.
-amount (IN/OUT) - On IN, the number of characters/bytes to erase. On OUT, 
-the actual number of characters/bytes erased.
-offset (IN) - absolute offset from the beginning of the LOB data from which 
-to start erasing data. Starts at 1.
-
-See Also
-OCIErrorGet(), OCILobRead(), OCILobWrite()
-
-OCILobOpen()
-
-Name
-OCI Lob Open
-
-Purpose
-Opens an internal or external Lob.
-
-Syntax
-sword OCILobOpen( OCISvcCtx        *svchp,
-                  OCIError         *errhp,
-                  OCILobLocator    *locp,
-                  ub1               mode );
-
-Comments
-It is an error if the same lob is opened more than once in
-the same transaction. Lobs are opened implicitly if they are
-not opened before using them. A LOB has to be closed before
-the transaction commits else the transaction is rolled back.
-Open locators are closed if the transaction aborts. Multiple 
-users can open the same lob on different locators.
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - locator points to the LOB to be opened
-mode (IN) - mode in which to open the lob. The valid modes are
-read-only - OCI_FILE_READONLY, read-write - OCI_FILE_READWRITE 
-
-OCILobClose()
-
-Name
-OCI Lob Close
-
-Purpose
-Closes an open internal or external Lob.
-
-Syntax
-sword OCILobClose( OCISvcCtx        *svchp,
-                   OCIError         *errhp,
-                   OCILobLocator    *locp );
-
-
-Comments
-It is an error if the lob is not open at this time. All LOBs
-that have been opened in a transaction have to be closed 
-before the transaction commits, else the transaction gets
-rolled back.
-
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp  (IN)  - A locator that was opened using OCILobOpen()
-
-
-OCILobFileClose()
-
-Name
-OCI Lob File CLoSe
-
-Purpose
-Closes a previously opened FILE.
-
-Syntax
-sword OCILobFileClose ( OCISvcCtx            *svchp,
-                        OCIError             *errhp,
-                        OCILobLocator        *filep );
-
-Comments
-Closes a previously opened FILE. It is an error if this function is called for
-an internal LOB. No error is returned if the FILE exists but is not opened.
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-filep (IN/OUT) - a pointer to a FILE locator to be closed.
-
-See Also
-OCIErrorGet(), OCILobFileOpen(), OCILobFileCloseAll(), OCILobFileIsOpen(),
-OCILobFileExists(), CREATE DIRECTORY DDL
-
-
-
-
-OCILobFileCloseAll()
-
-Name
-OCI LOB FILE Close All
-
-Purpose
-Closes all open FILEs on a given service context.
-
-Syntax
-sword OCILobFileCLoseAll ( OCISvcCtx *svchp, 
-                           OCIError  *errhp );
-
-Comments
-Closes all open FILEs on a given service context.
-
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-
-See also
-OCILobFileClose(),
-OCIErrorGet(), OCILobFileOpen(), OCILobFileIsOpen(),
-OCILobFileExists(), CREATE DIRECTORY DDL
-
-
-
-
-OCILobFileExists()
-
-Name
-OCI LOB FILE exists
-
-Purpose
-Tests to see if the FILE exists on the server
-
-Syntax
-sword OCILobFileExists ( OCISvcCtx     *svchp,
-                         OCIError      *errhp,
-                         OCILobLocator *filep,
-                         boolean       *flag );
-
-Comments
-Checks to see if a FILE exists for on the server.
-
-Parameters
-svchp (IN) - the OCI service context handle.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, 
-it is recorded in err and this function returns OCI_ERROR. Diagnostic 
-information can be obtained by calling OCIErrorGet().
-filep (IN) - pointer to the FILE locator that refers to the file.
-flag (OUT) - returns TRUE if the FILE exists; FALSE if it does not.
-
-See also
-OCIErrorGet, CREATE DIRECTORY (DDL)
-
-
-
-
-OCILobFileGetName()
-
-Name
-OCI LOB FILE Get file Name
-
-Purpose
-Gets the FILE locator's directory alias and file name.
-
-Syntax
-sword OCILobFileGetName ( OCIEnv                   *envhp,
-                          OCIError                 *errhp, 
-                          CONST OCILobLocator      *filep, 
-                          OraText                     *dir_alias,
-                          ub2                      *d_length, 
-                          OraText                     *filename, 
-                          ub2                      *f_length );
-
-Comments
-Returns the directory alias and file name associated with this file locator.  
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) -The OCI error handle. If there is an error, it is recorded in 
-errhp and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-filep (IN) - FILE locator for which to get the directory alias and file name.
-dir_alias (OUT) - buffer into which the directory alias name is placed. The 
-caller must allocate enough space for the directory alias name and must not 
-write into the space.
-d_length (IN/OUT)                 
-        - IN: length of the input dir_alias string;
-        - OUT: length of the returned dir_alias string.
-filename (OUT) - buffer into which the file name is placed. The caller must 
-allocate enough space for the file name and must not write into the space.
-f_length (IN/OUT) 
-        - IN: length of the input filename string;
-         - OUT: lenght of the returned filename string.
-
-See also
-OCILobFileSetName(), OCIErrorGet()
-
-
-
-
-OCILobFileIsOpen()
-
-Name
-OCI LOB FILE Is Open?
-
-Purpose
-Tests to see if the FILE is open
-
-Syntax
-sword OCILobFileIsOpen ( OCISvcCtx *svchp,
-                         OCIError  *errhp,
-                         OCILobLocator *filep,
-                         boolean       *flag );
-
-Comments
-Checks to see if the FILE on the server is open for a given LobLocator.
-
-Parameters
-svchp (IN) - the OCI service context handle.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it 
-is recorded in err and this function returns OCI_ERROR. Diagnostic 
-information can be obtained by calling OCIErrorGet().
-filep (IN) - pointer to the FILE locator being examined. If the input file 
-locator was never passed to OCILobFileOpen(), the file is considered not to 
-be opened by this locator. However, a different locator may have opened the 
-file. More than one file opens can be performed on the same file using 
-different locators.
-flag (OUT) - returns TRUE if the FILE is opened using this locator; FALSE if 
-it is not. 
-
-See also
-OCIErrorGet, OCILobFileOpen, OCILobFileClose, OCILobFileCloseAll, CREATE 
-DIRECTORY SQL command
-
-
-OCILobFileOpen()
-
-Name
-OCI LOB FILE open
-
-Purpose
-Opens a FILE for read-only access
-
-Syntax
-sword OCILobFileOpen ( OCISvcCtx            *svchp,
-                     OCIError             *errhp,
-                     OCILobLocator        *filep,
-                     ub1                  mode );
-
-Comments
-Opens a FILE. The FILE can be opened for read-only access only. FILEs may not 
-be written to throough ORACLE.
-
-Parameters 
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-filep (IN/OUT) - the FILE to open. Error if the locator does not refer to a 
-FILE. 
-mode (IN) - mode in which to open the file. The only valid mode is 
-read-only - OCI_FILE_READONLY. 
-
-See Also
-OCILobFileClose, OCIErrorGet, OCILobFileCloseAll, OCILobFileIsOpen, 
-OCILobFileSetName, CREATE DIRECTORY 
-
-
-
-
-OCILobFileSetName()
-
-Name
-OCI Lob File Set NaMe
-
-Purpose
-Sets directory alias and file name in the FILE locator.
-
-Syntax
-sword OCILobFileSetName ( OCIEnv             *envhp,
-                          OCIError           *errhp,
-                          OCILobLocator      **filepp,
-                          OraText               *dir_alias,
-                          ub2                d_length, 
-                          OraText               *filename, 
-                          ub2                f_length );
-Comments
-Sets the directory alias and file name in the LOB file locator.  
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded 
-in errhp and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-filepp (IN/OUT) - FILE locator for which to set the directory alias name.
-The caller must have already allocated space for the locator by calling
-OCIDescriptorAlloc().
-dir_alias (IN) - buffer that contains the directory alias name to set in the 
-locator.
-d_length (IN) - length of the input dir_alias parameter.
-filename (IN) - buffer that contains the file name is placed.
-f_length (IN) - length of the input filename parameter.
-See also
-OCILobFileGetName, OCIErrorGet, CREATE DIRECTORY
-
-
-
-
-OCILobFlushBuffer()
-
-Name
-OCI Lob Flush all Buffers for this lob.
-
-Purpose
-Flush/write all buffers for this lob to the server.
-
-
-Syntax
-sword OCILobFlushBuffer ( OCISvcCtx       *svchp,
-                          OCIError        *errhp,
-                          OCILobLocator   *locp,
-                          ub4              flag);
-
-Comments
-
-Flushes to the server, changes made to the buffering subsystem that 
-are associated with the lob referenced by the input locator.  This 
-routine will actually write the data in the buffer to the lob in 
-the database.  Lob buffering must have already been enabled for the 
-input lob locator.
-
-This routine, by default, does not free the buffer resources for
-reallocation to another buffered LOB operation. However, if you
-want to free the buffer explicitly, you can set the flag parameter
-to OCI_LOB_BUFFER_FREE.
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator uniquely referencing the LOB. 
-flag    (IN)     - to indicate if the buffer resources need to be freed
-                   after a flush. Default value is OCI_LOB_BUFFER_NOFREE.
-                   Set it to OCI_LOB_BUFFER_FREE if you want the buffer
-                   resources to be freed.
-Related Functions
-OCILobEnableBuffering()
-OCILobDisableBuffering()
-OCIErrorGet()
-OCILobWrite()
-OCILobRead()
-
-
-OCILobFreeTemporary()
-
-Name
-OCI Lob Free Temporary
-
-Purpose
-Free a temporary LOB
-
-Syntax
-sword OCILobFreeTemporary(OCISvcCtx          *svchp,
-                          OCIError           *errhp,
-                          OCILobLocator      *locp);
-
-Comments
-  Frees the contents of the temporary Lob this locator is pointing to. Note
-  that the locator itself is not freed until a OCIDescriptorFree is done.
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator uniquely referencing the LOB
-
-Related functions
-OCILobCreateTemporary()
-OCILobIsTemporary()
-
-
-Name
-OCI Lob/File Get Chunk Size
-
-Purpose
-When creating the table, the user can specify the chunking factor, which can
-be a multiple of Oracle blocks. This corresponds to the chunk size used by the
-LOB data layer when accessing/modifying the LOB value. Part of the chunk is
-used to store system-related information and the rest stores the LOB value.
-This function returns the amount of space used in the LOB chunk to store 
-the LOB value.
-
-Syntax
-sword OCILobGetChunkSize ( OCISvcCtx      *svchp,
-                           OCIError       *errhp,
-                           OCILobLocator  *locp,
-                           ub4            *chunksizep );
-
-Comments
- Performance will be improved if the user issues read/write
-requests using a multiple of this chunk size. For writes, there is an added 
-benefit since LOB chunks are versioned and, if all writes are done on chunk
-basis, no extra/excess versioning is done nor duplicated. Users could batch 
-up the write until they have enough for a chunk instead of issuing several
-write calls for the same chunk.
-
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - a LOB locator that uniquely references the LOB. For internal
-LOBs, this locator must be a locator that was obtained from the server 
-specified by svchp. For FILEs, this locator can be initialized by a Select or
-OCILobFileSetName.
-chunksizep (OUT) - On output, it is the length of the LOB if not NULL - for 
-character LOBs it is the number of characters, for binary LOBs it is the 
-number of bytes in the LOB.
-
-Related Functions
-
-OCILobGetLength()
-
-Name
-OCI Lob/File Length
-
-Purpose
-Gets the length of a LOB/FILE. 
-
-Syntax
-sword OCILobGetLength ( OCISvcCtx      *svchp,
-                        OCIError       *errhp,
-                        OCILobLocator  *locp,
-                        ub4            *lenp );
-
-Comments
-Gets the length of a LOB/FILE. If the LOB/FILE is NULL, the length is 
-undefined.
-
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - a LOB locator that uniquely references the LOB. For internal
-LOBs, this locator must be a locator that was obtained from the server 
-specified by svchp. For FILEs, this locator can be initialized by a Select or
-OCILobFileSetName.
-lenp (OUT) - On output, it is the length of the LOB if not NULL - for 
-character LOBs it is the number of characters, for binary LOBs it is the 
-number of bytes in the LOB.
-
-Related Functions
-OCIErrorGet, OCIFileSetName
-
-
-
-OCILobIsEqual()
-
-Name
-
-OCI Lob Is Equal
-
-Purpose
-Compares two LOB locators for equality.
-
-Syntax
-sword OCILobIsEqual ( OCIEnv                  *envhp,
-                      CONST OCILobLocator     *x,
-                      CONST OCILobLocator     *y,
-                      boolean                 *is_equal );
-
-Comments
-Compares the given LOB locators for equality.  Two LOB locators are equal if 
-and only if they both refer to the same LOB data.
-Two NULL locators are considered not equal by this function.
-Parameters
-envhp (IN) - the OCI environment handle.
-x (IN) - LOB locator to compare.
-y (IN) - LOB locator to compare.
-is_equal (OUT) - TRUE, if the LOB locators are equal; FALSE if they are not.
-
-See also
-OCILobAssign, OCILobLocatorIsInit
-OCILobLocatorAssign,
-OCILobIsOpen()
-
-Name
-
-OCI Lob Is Open
-sword OCILobIsOpen(svchp, errhp, locp, flag)
-OCISvcCtx     *svchp;
-OCIError      *errhp;
-OCILobLocator *locp;
-boolean       *flag;
-
-Comments
-   Checks if the LOB locator was opened before. flag is set to TRUE
-   if opened; FALSE otherwise 
-
-
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN) - the locator to test for temporary LOB
-flag(OUT) - TRUE, if the LOB locator points to is open
-                    FALSE, if not.
-
-OCILobIsTemporary()
-
-Name
-
-OCI Lob Is Temporary
-
-Purpose
-  Tests if this locator points to a temporary LOB
-
-Syntax
-sword OCILobIsTemporary(OCIEnv            *envhp,
-                        OCIError          *errhp,
-                        OCILobLocator     *locp,
-                        boolean           *is_temporary);
-
-Comments
-Tests the locator to determine if it points to a temporary LOB.
-If so, is_temporary is set to TRUE. If not, is_temporary is set
-to FALSE.
-
-Parameters
-envhp (IN) - the environment handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN) - the locator to test for temporary LOB
-is_temporary(OUT) - TRUE, if the LOB locator points to a temporary LOB;
-                    FALSE, if not.
-
-See Also
-OCILobCreateTemporary, OCILobFreeTemporary
-
-
-OCILobLoadFromFile()
-
-Name
-OCI Lob Load From File
-
-Purpose
-Load/copy all or a portion of the file into an internal LOB.
-
-Syntax
-sword OCILobLoadFromFile ( OCISvcCtx        *svchp,
-                           OCIError         *errhp,
-                           OCILobLocator    *dst_locp,
-                           OCILobLocator    *src_filep,
-                           ub4              amount,
-                           ub4              dst_offset,
-                           ub4              src_offset );
-
-Comments
-Loads/copies a portion or all of a file value into an internal LOB as 
-specified.  The data is copied from the source file to the destination 
-internal LOB (BLOB/CLOB).  No character set conversions are performed 
-when copying the bfile data to a clob/nclob.  The bfile data must already
-be in the same character set as the clob/nclob in the database.  No
-error checking is performed to verify this.
-The source (src_filep) and the destination (dst_locp) LOBs must already exist.
-If the data already exists at the destination's start position, it is 
-overwritten with the source data. If the destination's start position is 
-beyond the end of the current data, a hole is created from the end of the data
-to the beginning of the newly written data from the source. The destination 
-LOB is extended to accommodate the newly written data if it extends 
-beyond the current length of the destination LOB. 
-It is an error to extend the destination LOB beyond the maximum length 
-allowed or to try to copy from a NULL LOB.
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-dst_locp (IN/OUT) - a locator uniquely referencing the destination internal 
-LOB which may be of type blob, clob, or nclob. 
-src_filep (IN/OUT) - a locator uniquely referencing the source BFILE. 
-amount (IN) - the number of bytes to be copied.
-dst_offset (IN) - this is the absolute offset for the destination LOB. 
-For character LOBs it is the number of characters from the beginning of the 
-LOB at which to begin writing. For binary LOBs it is the number of bytes from 
-the beginning of the lob from which to begin reading. The offset starts at 1.
-src_offset (IN) - this is the absolute offset for the source BFILE.  It is 
-the number of bytes from the beginning of the LOB.  The offset starts at 1.
-
-See Also 
-OCIErrorGet(), OCILobAppend(), OCILobWrite(), OCILobTrim(), OCILobCopy()
-
-OCILobLocatorAssign()
-
-Name
-OCI Lob LOCATOR ASsiGn
-
-Purpose
-Assigns one LOB/FILE locator to another.
-
-Syntax
-sword OCILobLocatorAssign ( OCISvcCtx             *svchp, 
-                            OCIError              *errhp, 
-                            CONST OCILobLocator   *src_locp, 
-                            OCILobLocator         **dst_locpp );
-
-Comments
-Assign source locator to destination locator.  After the assignment, both 
-locators refer to the same LOB data.  For internal LOBs, the source locator's 
-LOB data gets copied to the destination locator's LOB data only when the 
-destination locator gets stored in the table.  Therefore, issuing a flush of 
-the object containing the destination locator will copy the LOB data. For 
-FILEs only the locator that refers to the OS file is copied to the table. The
-OS file is not copied.
-Note : the only difference between this and OCILobAssign is that this takes
-a OCI service handle pointer instead of a OCI environment handle pointer
-
-Parameters
-svchp (IN/OUT) - OCI service handle initialized in object mode.
-errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded 
-in errhp and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-src_locp (IN) - LOB locator to copy from.
-dst_locpp (IN/OUT) - LOB locator to copy to.  The caller must allocate space 
-for the OCILobLocator by calling OCIDescriptorAlloc().
-
-See also
-OCIErrorGet()
-OCILobIsEqual()
-OCILobLocatorIsInit()
-OCILobAssign()
-
-
-
-
-OCILobLocatorIsInit()
-
-Name
-OCI LOB locator is initialized?
-
-Purpose
-Tests to see if a given LOB locator is initialized.
-
-Syntax
-sword OCILobLocatorIsInit ( OCIEnv   *envhp,
-                            OCIError *errhp,
-                            CONST OCILobLocator *locp,
-                            boolean *is_initialized );
-
-Comments
-Tests to see if a given LOB locator is initialized.
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it 
-is recorded in err and this function returns OCI_ERROR. Diagnostic 
-information can be obtained by calling OCIErrorGet().
-locp (IN) - the LOB locator being tested
-is_initialized (OUT) - returns TRUE if the given LOB locator is initialized; 
-FALSE if it is not.
-
-See also
-OCIErrorGet, OCILobIsEqual
-
-
-
-
-OCILobRead()
-
-Name
-OCI Lob/File ReaD
-
-Purpose
-Reads a portion of a LOB/FILE as specified by the call into a buffer. 
-
-Syntax
-sword OCILobRead ( OCISvcCtx       *svchp,
-                   OCIError        *errhp,
-                   OCILobLocator   *locp,
-                   ub4             offset,
-                   ub4             *amtp,
-                   dvoid           *bufp,
-                   ub4             bufl,
-                   dvoid           *ctxp,  
-                   OCICallbackLobRead cbfp,
-                   ub2             csid,
-                   ub1             csfrm );
-
-Comments
-Reads a portion of a LOB/FILE as specified by the call into a buffer. Data 
-read from a hole is returned as 0s. It is an error to try to read from a NULL
-LOB/FILE. The OS FILE must already exist on the server and must have been 
-opened using the input locator. Oracle must hav epermission to read the OS 
-file and user must have read permission on the directory object.
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - a LOB locator that uniquely references a LOB. 
-offset (IN) - On input, it is the absolute offset, for character LOBs in the 
-number of characters from the beginning of the LOB, for binary LOBs it is the 
-number of bytes. Starts from 1.
-amtp (IN/OUT) - On input, the number of character or bytes to be read. On 
-output, the actual number of bytes or characters read. 
-If the amount of bytes to be read is larger than the buffer length it is 
-assumed that the LOB is being read in a streamed mode. On input if this value 
-is 0, then the data shall be read in streamed mode from the LOB until the end 
-of LOB. If the data is read in pieces, *amtp always contains the length of 
-the last piece read.  If a callback function is defined, then this callback 
-function will be invoked each time bufl bytes are read off the pipe. Each 
-piece will be written into bufp.
-If the callback function is not defined, then OCI_NEED_DATA error code will 
-be returned. The application must invoke the LOB read over and over again to 
-read more pieces of the LOB until the OCI_NEED_DATA error code is not 
-returned. The buffer pointer and the length can be different in each call 
-if the pieces are being read into different sizes and location. 
-bufp (IN) - the pointer to a buffer into which the piece will be read. The 
-length of the allocated memory is assumed to be bufl. 
-bufl (IN) - the length of the buffer in octets. 
-ctxp (IN) - the context for the call back function. Can be NULL.
-cbfp (IN) - a callback that may be registered to be called for each piece. If 
-this is NULL, then OCI_NEED_DATA will be returned for each piece. 
-The callback function must return OCI_CONTINUE for the read to continue. 
-If any other error code is returned, the LOB read is aborted. 
-  ctxp (IN) - the context for the call back function. Can be NULL.
-  bufp (IN) - a buffer pointer for the piece.
-  len (IN) - the length of length of current piece in bufp.
-  piece (IN) - which piece - OCI_FIRST_PIECE, OCI_NEXT_PIECE or 
-  OCI_LAST_PIECE.
-csid - the character set ID of the buffer data
-csfrm - the character set form of the buffer data
-
-Related Functions
-OCIErrorGet, OCILobWrite, OCILobFileOpen, OCILobFileSetName, CREATE DIRECTORY
-
-
-
-
-OCILobTrim()
-
-Name
-
-OCI Lob  Trim
-
-Purpose
-Trims the lob value to a shorter length
-
-Syntax
-sword OCILobTrim ( OCISvcCtx       *svchp,
-                 OCIError        *errhp,
-                 OCILobLocator   *locp,
-                 ub4             newlen );
-
-Comments
-Truncates LOB data to a specified shorter length. 
-
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a LOB locator that uniquely references the LOB. This locator 
-must be a locator that was obtained from the server specified by svchp. 
-newlen (IN) - the new length of the LOB data, which must be less than or equal
-to the current length. 
-
-Related Functions
-OCIErrorGet, OCILobWrite, OCiLobErase, OCILobAppend, OCILobCopy
-
-
-
-
-
-OCILobWrite()
-
-Name
-OCI Lob Write
-
-Purpose
-Writes a buffer into a LOB
-
-Syntax
-sword OCILobWrite ( OCISvcCtx       *svchp,
-                    OCIError        *errhp,
-                    OCILobLocator   *locp,
-                    ub4             offset,
-                    ub4             *amtp,
-                    dvoid           *bufp, 
-                    ub4             buflen,
-                    ub1             piece,
-                    dvoid           *ctxp,  
-                    OCICallbackLobWrite   (cbfp)
-                                    (
-                                    dvoid    *ctxp,
-                                    dvoid    *bufp,
-                                    ub4      *lenp,
-                                    ub1      *piecep ) 
-                    ub2             csid
-                    ub1             csfrm );
-
-
-Comments
-Writes a buffer into a LOB as specified. If LOB data already exists 
-it is overwritten with the data stored in the buffer.
-The buffer can be written to the LOB in a single piece with this call, or
-it can be provided piecewise using callbacks or a standard polling method.
-If this value of the piece parameter is OCI_FIRST_PIECE, data must be 
-provided through callbacks or polling.
-If a callback function is defined in the cbfp parameter, then this callback 
-function will be invoked to get the next piece after a piece is written to 
-the pipe. Each piece will be written from bufp.
-If no callback function is defined, then OCILobWrite() returns the 
-OCI_NEED_DATA error code. The application must all OCILobWrite() again 
-to write more pieces of the LOB. In this mode, the buffer pointer and the 
-length can be different in each call if the pieces are of different sizes and 
-from different locations. A piece value of OCI_LAST_PIECE terminates the 
-piecewise write. 
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a LOB locator that uniquely references a LOB. 
-offset (IN) - On input, it is the absolute offset, for character LOBs in 
-the number of characters from the beginning of the LOB, for binary LOBs it 
-is the number of bytes. Starts at 1.
-bufp (IN) - the pointer to a buffer from which the piece will be written. The 
-length of the allocated memory is assumed to be the value passed in bufl. 
-Even if the data is being written in pieces, bufp must contain the first 
-piece of the LOB when this call is invoked.
-bufl (IN) - the length of the buffer in bytes.
-Note: This parameter assumes an 8-bit byte. If your platform uses a 
-longer byte, the value of bufl must be adjusted accordingly.
-piece (IN) - which piece of the buffer is being written. The default value for
-this parameter is OCI_ONE_PIECE, indicating the buffer will be written in a 
-single piece.
-The following other values are also possible for piecewise or callback mode: 
-OCI_FIRST_PIECE, OCI_NEXT_PIECE and OCI_LAST_PIECE.
-amtp (IN/OUT) - On input, takes the number of character or bytes to be 
-written. On output, returns the actual number of bytes or characters written. 
-If the data is written in pieces, *amtp will contain the total length of the 
-pieces written at the end of the call (last piece written) and is undefined in
-between. 
-(Note it is different from the piecewise read case)
-ctxp (IN) - the context for the call back function. Can be NULL.
-cbfp (IN) - a callback that may be registered to be called for each piece in 
-a piecewise write. If this is NULL, the standard polling method will be used.
-The callback function must return OCI_CONTINUE for the write to continue. 
-If any other error code is returned, the LOB write is aborted. The 
-callback takes the following parameters:
-  ctxp (IN) - the context for the call back function. Can be NULL.
-  bufp (IN/OUT) - a buffer pointer for the piece.
-  lenp (IN/OUT) - the length of the buffer (in octets) and the length of 
-  current piece in bufp (out octets).
-  piecep (OUT) - which piece - OCI_NEXT_PIECE or OCI_LAST_PIECE.
-csid - the character set ID of the buffer data
-csfrm - the character set form of the buffer data
-Related Functions
-
-OCILobWriteAppend()
-
-Name
-OCI Lob Write Append
-
-Purpose
-Writes data to the end of a LOB value. This call provides the ability
-to get the length of the data and append it to the end of the LOB in
-a single round trip to the server.
-
-Syntax
-sword OCILobWriteAppend ( OCISvcCtx       *svchp,
-                    OCIError        *errhp,
-                    OCILobLocator   *locp,
-                    ub4             *amtp,
-                    dvoid           *bufp, 
-                    ub4             buflen,
-                    ub1             piece,
-                    dvoid           *ctxp,  
-                    OCICallbackLobWrite   (cbfp)
-                                    (
-                                    dvoid    *ctxp,
-                                    dvoid    *bufp,
-                                    ub4      *lenp,
-                                    ub1      *piecep ) 
-                    ub2             csid
-                    ub1             csfrm );
-
-
-Comments
-Writes a buffer to the end of a LOB as specified. If LOB data already exists 
-it is overwritten with the data stored in the buffer.
-The buffer can be written to the LOB in a single piece with this call, or
-it can be provided piecewise using callbacks or a standard polling method.
-If this value of the piece parameter is OCI_FIRST_PIECE, data must be 
-provided through callbacks or polling.
-If a callback function is defined in the cbfp parameter, then this callback 
-function will be invoked to get the next piece after a piece is written to the 
-pipe. Each piece will be written from bufp.
-If no callback function is defined, then OCILobWriteAppend() returns the 
-OCI_NEED_DATA error code. The application must all OCILobWriteAppend() again 
-to write more pieces of the LOB. In this mode, the buffer pointer and the 
-length can be different in each call if the pieces are of different sizes and 
-from different locations. A piece value of OCI_LAST_PIECE terminates the 
-piecewise write. 
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a LOB locator that uniquely references a LOB. 
-bufp (IN) - the pointer to a buffer from which the piece will be written. The 
-length of the allocated memory is assumed to be the value passed in bufl. Even 
-if the data is being written in pieces, bufp must contain the first piece of 
-the LOB when this call is invoked.
-bufl (IN) - the length of the buffer in bytes.
-Note: This parameter assumes an 8-bit byte. If your platform uses a 
-longer byte, the value of bufl must be adjusted accordingly.
-piece (IN) - which piece of the buffer is being written. The default value for
-this parameter is OCI_ONE_PIECE, indicating the buffer will be written in a 
-single piece.
-The following other values are also possible for piecewise or callback mode: 
-OCI_FIRST_PIECE, OCI_NEXT_PIECE and OCI_LAST_PIECE.
-amtp (IN/OUT) - On input, takes the number of character or bytes to be 
-written. On output, returns the actual number of bytes or characters written. 
-If the data is written in pieces, *amtp will contain the total length of the 
-pieces written at the end of the call (last piece written) and is undefined in
-between. 
-(Note it is different from the piecewise read case)
-ctxp (IN) - the context for the call back function. Can be NULL.
-cbfp (IN) - a callback that may be registered to be called for each piece in a 
-piecewise write. If this is NULL, the standard polling method will be used.
-The callback function must return OCI_CONTINUE for the write to continue. 
-If any other error code is returned, the LOB write is aborted. The 
-callback takes the following parameters:
-  ctxp (IN) - the context for the call back function. Can be NULL.
-  bufp (IN/OUT) - a buffer pointer for the piece.
-  lenp (IN/OUT) - the length of the buffer (in octets) and the length of 
-  current piece in bufp (out octets).
-  piecep (OUT) - which piece - OCI_NEXT_PIECE or OCI_LAST_PIECE.
-csid - the character set ID of the buffer data
-csfrm - the character set form of the buffer data
-Related Functions
-
-
-
-
-OCILobGetStorageLimit()
-
-Name
-OCI Lob Get Storage Limit
-
-Purpose
-To get the maximum Length of a LOB in bytes that can be stored in the database.
-
-Syntax
-sword OCILobGetStorageLimit ( OCISvcCtx       *svchp,
-                    OCIError        *errhp,
-                    OCILobLocator   *locp,
-                    oraub8          *limitp);
-
-
-Comments
-With unlimited size LOB support the limit for a LOB is no longer restricted to 4GB.
-This interface should be used to get the actual limit for storing data for a specific
-LOB locator. Note that if the compatibality is set to 9.2 or older the limit would still 
-be 4GB.
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a LOB locator that uniquely references a LOB. 
-limitp (OUT)  - The storage limit for a LOB in bytes.
-Related Functions
-
-
-
-
-OCILogoff()
-Name
-OCI simplified Logoff
-Purpose
-This function is used to terminate a session created with OCILogon() or
-OCILogon2().
-Syntax
-sword OCILogoff ( OCISvcCtx      *svchp
-                   OCIError       *errhp );
-Comments
-This call is used to terminate a session which was created with OCILogon() or
-OCILogon2().  
-This call implicitly deallocates the server, authentication, and service 
-context handles.
-Note: For more information on logging on and off in an application, 
-refer to the section "Application Initialization, Connection, and 
-Authorization" on page 2-16.
-Parameters
-svchp (IN) - the service context handle which was used in the call to 
-OCILogon() or OCILogon2().
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-See Also
-OCILogon(), OCILogon2().
-
-
-
-
-
-
-OCILogon()
-Name
-OCI Service Context Logon
-Purpose
-This function is used to create a simple logon session.
-Syntax
-sword OCILogon ( OCIEnv          *envhp,
-                       OCIError        *errhp,
-                       OCISvcCtx       *svchp,
-                       CONST OraText      *username,
-                       ub4             uname_len,
-                       CONST OraText      *password,
-                       ub4             passwd_len,
-                       CONST OraText      *dbname,
-                       ub4             dbname_len );
-Comments
-This function is used to create a simple logon session for an application. 
-Note: Users requiring more complex session (e.g., TP monitor 
-applications) should refer to the section "Application Initialization, 
-Connection, and Authorization" on page 2-16.
-This call allocates the error and service context handles which are passed to 
-it. This call also implicitly allocates server and authentication handles 
-associated with the session.  These handles can be retrieved by calling 
-OCIAttrGet() on the service context handle.
-Parameters
-envhp (IN) - the OCI environment handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-svchp (OUT) - the service context pointer.
-username (IN) - the username.
-uname_len (IN) - the length of username.
-password (IN) - the user's password.
-passwd_len (IN) - the length of password.
-dbname (IN) - the name of the database to connect to.
-dbname_len (IN) - the length of dbname.
-See Also
-OCILogoff()
-
-
-
-
-
-OCILogon2()
-Name
-OCI Service Context Logon
-Purpose
-This function is used to create a logon session in connection pooling mode.
-Syntax
-sword OCILogon2 ( OCIEnv          *envhp,
-                       OCIError        *errhp,
-                       OCISvcCtx       **svchp,
-                       CONST OraText      *username,
-                       ub4             uname_len,
-                       CONST OraText      *password,
-                       ub4             passwd_len,
-                       CONST OraText      *dbname,
-                       ub4             dbname_len,
-                       ub4             mode);
-Comments
-This function is used to create a simple logon session for an application in
-Connection Pooling mode. The valid values for mode are currently OCI_POOL and
-OCI_DEFAULT. Call to this function with OCI_DEFAULT mode is equivalent to 
-OCILogon() call.
-This call allocates the error and service context handles which are passed to 
-it. This call also implicitly allocates server and authentication handles 
-associated with the session.  These handles can be retrieved by calling 
-OCIAttrGet() on the service context handle. This call assumes that 
-OCIConnectionPoolCreate() has already been called for the same dbname.
-Parameters
-envhp (IN) - the OCI environment handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-svchp (OUT) - the service context pointer.
-username (IN) - the username.
-uname_len (IN) - the length of username.
-password (IN) - the user's password. If this is null, it is assumed that a
-                proxy session has to be created and the required grants on 
-                the database are already done.
-passwd_len (IN) - the length of password.
-dbname (IN) - the name of the database to connect to.
-dbname_len (IN) - the length of dbname.
-mode (IN) - the mode for doing the server attach. Should be OCI_POOL for
-            using Connection Pooling.
-
-
-See Also
-OCILogoff()
-
-
-
-
-
-OCIMemoryFree()
-Name
-OCI FREE Memory
-Purpose
-Frees up storage associated with the pointer.
-Syntax
-void OCIMemoryFree ( CONST OCIStmt   *stmhp,
-                     dvoid           *memptr);
-Comments
-Frees up dynamically allocated data pointers associated with the pointer using 
-either the default memory free function or the registered memory free 
-function, as the case may be.
-A user-defined memory free function can be registered during the initial call 
-to OCIInitialize(). 
-This call is always successful. 
-Parameters
-stmhp (IN) - statement handle which returned this data buffer.
-memptr (IN) - pointer to data allocated by the client library. 
-Related Functions
-OCIInitialize()
-
-
-
-
-
-OCIParamGet()
-Name
-OCI Get PARaMeter
-Purpose
-Returns a descriptor of a parameter specified by position in the describe 
-handle or statement handle.
-Syntax
-sword OCIParamGet ( CONST dvoid       *hndlp,
-                  ub4         htype,
-                  OCIError    *errhp,
-                  dvoid    **parmdpp,
-                  ub4         pos );
-Comments
-This call returns a descriptor of a parameter specified by position in the 
-describe handle or statement handle. Parameter descriptors are always 
-allocated internally by the OCI library. They are read-only.
-OCI_NO_DATA may be returned if there are no parameter descriptors for this 
-position. 
-See Appendix B for more detailed information about parameter descriptor 
-attributes.
-Parameters
-hndlp (IN) - a statement handle or describe handle. The OCIParamGet() 
-function will return a parameter descriptor for this handle. 
-htype (IN) - the type of the handle passed in the handle parameter. Valid 
-types are OCI_HTYPE_DESCRIBE, for a describe handle OCI_HTYPE_STMT, for a 
-statement handle
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-parmdpp (OUT) - a descriptor of the parameter at the position given in the pos 
-parameter.
-pos (IN) - position number in the statement handle or describe handle. A 
-parameter descriptor will be returned for this position.
-Note: OCI_NO_DATA may be returned if there are no parameter 
-descriptors for this position. 
-Related Functions
-OCIAttrGet(), OCIAttrSet()
-
-
-
-
-
-OCIParamSet()
-Name
-OCI Parameter Set in handle
-Purpose
-Used to set a complex object retrieval descriptor into a complex object 
-retrieval handle.
-Syntax
-sword   OCIParamGet ( dvoid *hndlp,
-                       ub4 htyp,
-                      OCIError *errhp,
-                      CONST dvoid *dscp,
-                      ub4 dtyp,
-                      ub4 pos );
-Comments
-This call sets a given complex object retrieval descriptor into a complex 
-object retrieval handle.
-The handle must have been previously allocated using OCIHandleAlloc(), and 
-the descriptor must have been previously allocated using OCIDescAlloc(). 
-Attributes of the descriptor are set using OCIAttrSet().
-Parameters
-hndlp (IN/OUT) - handle pointer.
-htype (IN) - handle type.
-errhp (IN/OUT) - error handle.
-dscp (IN) - complex object retrieval descriptor pointer.
-dtyp (IN) - 
-pos (IN) - position number.
-See Also
-
-
-
-
-
-OCIPasswordChange()
-Name
-OCI Change PassWord
-Purpose
-This call allows the password of an account to be changed.
-Syntax
-sword OCIPasswordChange ( OCISvcCtx     *svchp,
-                        OCIError      *errhp,
-                        CONST OraText    *user_name,
-                        ub4           usernm_len,
-                        CONST OraText    *opasswd,
-                        ub4           opasswd_len,
-                        CONST OraText    *npasswd,
-                        sb4           npasswd_len,
-                        ub4           mode);
-Comments
-This call allows the password of an account to be changed. This call is 
-similar to OCISessionBegin() with the following differences:
-If the user authentication is already established, it authenticates 
-the account using the old password and then changes the 
-password to the new password
-If the user authentication is not established, it establishes a user 
-authentication and authenticates the account using the old 
-password, then changes the password to the new password.
-This call is useful when the password of an account is expired and 
-OCISessionBegin() returns an error or warning which indicates that the 
-password has expired. 
-Parameters
-svchp (IN/OUT) - a handle to a service context. The service context handle 
-must be initialized and have a server context handle associated with it.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-user_name (IN) - specifies the user name. It points to a character string, 
-whose length is specified in usernm_len. This parameter must be NULL if the 
-service context has been initialized with an authentication handle.
-usernm_len (IN) - the length of the user name string specified in user_name. 
-For a valid user name string, usernm_len must be non-zero.
-opasswd (IN) - specifies the user's old password. It points to a character 
-string, whose length is specified in opasswd_len .
-opasswd_len (IN) - the length of the old password string specified in opasswd. 
-For a valid password string, opasswd_len must be non-zero.
-npasswd (IN) - specifies the user's new password. It points to a character 
-string, whose length is specified in npasswd_len which must be non-zero for a 
-valid password string. If the password complexity verification routine is 
-specified in the user's profile to verify the new password's complexity, the 
-new password must meet the complexity requirements of the verification 
-function.
-npasswd_len (IN)  - then length of the new password string specified in 
-npasswd. For a valid password string, npasswd_len must be non-zero.
-mode - pass as OCI_DEFAULT.
-Related Functions
-OCISessionBegin()
-
-
-----------------------------------OCIReset------------------------------------
-
-
-OCIReset()
-Name
-OCI Reset
-Purpose
-Resets the interrupted asynchronous operation and protocol. Must be called
-if a OCIBreak call had been issued while a non-blocking operation was in
-progress.
-Syntax
-sword OCIReset ( dvoid      *hndlp,
-                 OCIError   *errhp);
-Comments
-This call is called in non-blocking mode ONLY. Resets the interrupted
-asynchronous operation and protocol. Must be called if a OCIBreak call 
-had been issued while a non-blocking operation was in progress. 
-Parameters
-hndlp (IN) - the service context handle or the server context handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-Related Functions
-
-
-OCIResultSetToStmt()
-Name
-OCI convert Result Set to Statement Handle
-Purpose
-Converts a descriptor to statement handle for fetching rows.
-Syntax
-sword OCIResultSetToStmt ( OCIResult     *rsetdp,
-                         OCIError      *errhp );
-Comments
-Converts a descriptor to statement handle for fetching rows.
-A result set descriptor can be allocated with a call to OCIDescAlloc().
-Parameters
-rsetdp (IN/OUT) - a result set descriptor pointer. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-Related Functions
-OCIDescAlloc()
-
-
-
-
-OCIServerAttach()
-Name
-OCI ATtaCH to server
-Purpose
-Creates an access path to a data source for OCI operations.
-Syntax
-sword OCIServerAttach ( OCIServer    *srvhp,
-                      OCIError     *errhp,
-                      CONST OraText   *dblink,
-                      sb4          dblink_len,
-                      ub4          mode);
-Comments
-This call is used to create an association between an OCI application and a 
-particular server. 
-This call initializes a server context handle, which must have been previously 
-allocated with a call to OCIHandleAlloc().
-The server context handle initialized by this call can be associated with a 
-service context through a call to OCIAttrSet(). Once that association has been 
-made, OCI operations can be performed against the server.
-If an application is operating against multiple servers, multiple server 
-context handles can be maintained. OCI operations are performed against 
-whichever server context is currently associated with the service context.
-Parameters
-srvhp (IN/OUT) - an uninitialized server context handle, which gets 
-initialized by this call. Passing in an initialized server handle causes an 
-error. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-dblink (IN) - specifies the database (server) to use. This parameter points to
-a character string which specifies a connect string or a service point. If the 
-connect string is NULL, then this call attaches to the default host. The length
-of connstr is specified in connstr_len. The connstr pointer may be freed by the
-caller on return.
-dblink_len (IN) - the length of the string pointed to by connstr. For a valid 
-connect string name or alias, connstr_len must be non-zero.
-mode (IN) - specifies the various modes of operation.  For release 8.0, pass as
-OCI_DEFAULT - in this mode, calls made to the server on this server context 
-are made in blocking mode. 
-Example
-See the description of OCIStmtPrepare() on page 13-96 for an example showing 
-the use of OCIServerAttach().
-Related Functions
-OCIServerDetach()
-
-
-
-OCIServerDetach()
-Name
-OCI DeTaCH server
-Purpose
-Deletes an access to a data source for OCI operations.
-Syntax
-sword OCIServerDetach ( OCIServer   *svrhp,
-                      OCIError    *errhp,
-                      ub4         mode); 
-Comments
-This call deletes an access to data source for OCI operations, which was 
-established by a call to OCIServerAttach(). 
-Parameters
-srvhp (IN) - a handle to an initialized server context, which gets reset to 
-uninitialized state. The handle is not de-allocated. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-mode (IN) - specifies the various modes of operation. The only valid mode is 
-OCI_DEFAULT for the default mode. 
-Related Functions
-OCIServerAttach()
-
-
-
-OCIServerVersion()
-Name
-OCI VERSion
-Purpose
-Returns the version string of the Oracle server.
-Syntax
-sword OCIServerVersion ( dvoid        *hndlp, 
-                       OCIError     *errhp, 
-                       OraText         *bufp,
-                       ub4          bufsz
-                       ub1          hndltype );
-Comments
-This call returns the version string of the Oracle server. 
-For example, the following might be returned as the version string if your 
-application is running against a 7.3.2 server:
-Oracle7 Server Release 7.3.2.0.0 - Production Release
-PL/SQL Release 2.3.2.0.0 - Production
-CORE Version 3.5.2.0.0 - Production
-TNS for SEQUENT DYNIX/ptx: Version 2.3.2.0.0 - Production
-NLSRTL Version 3.2.2.0.0 - Production
-
-Parameters
-hndlp (IN) - the service context handle or the server context handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-bufp (IN) - the buffer in which the version information is returned.
-bufsz (IN) - the length of the buffer.
-hndltype (IN) - the type of handle passed to the function.
-Related Functions
-
-
-
-
-
-OCISessionBegin()
-Name
-OCI Session Begin and authenticate user
-Purpose
-Creates a user authentication and begins a user session for a given server.
-Syntax
-sword OCISessionBegin ( OCISvcCtx     *svchp,
-                      OCIError      *errhp,
-                      OCISession    *usrhp,
-                      ub4           credt,
-                      ub4           mode);
-
-Comments
-For Oracle8, OCISessionBegin() must be called for any given server handle 
-before requests can be made against it. Also, OCISessionBegin() only supports 
-authenticating the user for access to the Oracle server specified by the 
-server handle in the service context. In other words, after OCIServerAttach() 
-is called to initialize a server handle, OCISessionBegin() must be called to 
-authenticate the user for that given server. 
-When OCISessionBegin() is called for the first time for the given server 
-handle, the initialized authentication handle is called a primary 
-authentication context. A primary authentication context may not be created 
-with the OCI_MIGRATE mode. Also, only one primary authentication context can 
-be created for a given server handle and the primary authentication context c
-an only ever be used with that server handle. If the primary authentication 
-context is set in a service handle with a different server handle, then an 
-error will result.
-After OCISessionBegin() has been called for the server handle, and the primary 
-authentication context is set in the service handle, OCISessionBegin() may be 
-called again to initialize another authentication handle with different (or 
-the same) credentials. When OCISessionBegin() is called with a service handle 
-set with a primary authentication context, the returned authentication context
-in authp is called a user authentication context. As many user authentication 
-contexts may be initialized as desired.
-User authentication contexts may be created with the OCI_MIGRATE mode. 
-If the OCI_MIGRATE mode is not specified, then the user authentication 
-context can only ever be used with the same server handle set in svchp. If 
-OCI_MIGRATE mode is specified, then the user authentication may be set 
-with different server handles. However, the user authentication context is 
-restricted to use with only server handles which resolve to the same database 
-instance and that have equivalent primary authentication contexts. Equivalent 
-authentication contexts are those which were authenticated as the same 
-database user.
-OCI_SYSDBA, OCI_SYSOPER, and OCI_PRELIM_AUTH may only be used 
-with a primary authentication context.
-To provide credentials for a call to OCISessionBegin(), one of two methods are 
-supported. The first is to provide a valid username and password pair for 
-database authentication in the user authentication handle passed to 
-OCISessionBegin(). This involves using OCIAttrSet() to set the 
-OCI_ATTR_USERNAME and OCI_ATTR_PASSWORD attributes on the 
-authentication handle. Then OCISessionBegin() is called with 
-OCI_CRED_RDBMS.
-Note: When the authentication handle is terminated using 
-OCISessionEnd(), the username and password attributes remain 
-unchanged and thus can be re-used in a future call to OCISessionBegin(). 
-Otherwise, they must be reset to new values before the next 
-OCISessionBegin() call.
-The second type of credentials supported are external credentials. No 
-attributes need to be set on the authentication handle before calling 
-OCISessionBegin(). The credential type is OCI_CRED_EXT. This is equivalent 
-to the Oracle7 `connect /' syntax. If values have been set for 
-OCI_ATTR_USERNAME and OCI_ATTR_PASSWORD, then these are 
-ignored if OCI_CRED_EXT is used.
-Parameters
-svchp (IN) - a handle to a service context. There must be a valid server 
-handle set in svchp.
-errhp (IN) - an error handle to the retrieve diagnostic information.
-usrhp (IN/OUT) - a handle to an authentication context, which is initialized 
-by this call.
-credt (IN) - specifies the type of credentials to use for authentication. 
-Valid values for credt are:
-OCI_CRED_RDBMS - authenticate using a database username and 
-password pair as credentials. The attributes OCI_ATTR_USERNAME 
-and OCI_ATTR_PASSWORD should be set on the authentication 
-context before this call.
-OCI_CRED_EXT - authenticate using external credentials. No username 
-or password is provided.
-mode (IN) - specifies the various modes of operation. Valid modes are:
-OCI_DEFAULT - in this mode, the authentication context returned may 
-only ever be set with the same server context specified in svchp. This 
-establishes the primary authentication context.
-OCI_MIGRATE - in this mode, the new authentication context may be 
-set in a service handle with a different server handle. This mode 
-establishes the user authentication context. 
-OCI_SYSDBA - in this mode, the user is authenticated for SYSDBA 
-access.
-OCI_SYSOPER - in this mode, the user is authenticated for SYSOPER 
-access.
-OCI_PRELIM_AUTH - this mode may only be used with OCI_SYSDBA 
-or OCI_SYSOPER to authenticate for certain administration tasks.
-Related Functions
-OCISessionEnd()
-
-
-
-
-
-
-OCISessionEnd()
-Name
-OCI Terminate user Authentication Context
-Purpose
-Terminates a user authentication context created by OCISessionBegin()
-Syntax
-sword OCISessionEnd ( OCISvcCtx       *svchp,
-                    OCIError        *errhp,
-                    OCISession      *usrhp,
-                    ub4             mode);
-
-Comments
-The user security context associated with the service context is invalidated 
-by this call. Storage for the authentication context is not freed. The 
-transaction specified by the service context is implicitly committed. The 
-transaction handle, if explicitly allocated, may be freed if not being used.
-Resources allocated on the server for this user are freed.
-The authentication handle may be reused in a new call to OCISessionBegin().
-Parameters
-svchp (IN/OUT) - the service context handle. There must be a valid server 
-handle and user authentication handle associated with svchp.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-usrhp (IN) - de-authenticate this user. If this parameter is passed as NULL, 
-the user in the service context handle is de-authenticated.
-mode (IN) - the only valid mode is OCI_DEFAULT.
-Example
-In this example, an authentication context is destroyed.
-Related Functions
-OCISessionBegin()
-
-
-
-
-OCIStmtExecute()
-Name
-OCI EXECute
-Purpose
-This call associates an application request with a server.
-Syntax
-sword OCIStmtExecute ( OCISvcCtx           *svchp,
-                     OCIStmt             *stmtp,
-                     OCIError            *errhp,
-                     ub4                 iters,
-                     ub4                 rowoff,
-                     CONST OCISnapshot   *snap_in,
-                     OCISnapshot         *snap_out,
-                     ub4                 mode );
-Comments
-This function  is used to execute a prepared SQL statement.
-Using an execute call, the application associates a request with a server. On 
-success, OCI_SUCCESS is returned.
-If a SELECT statement is executed, the description of the select list follows 
-implicitly as a response. This description is buffered on the client side for 
-describes, fetches and define type conversions. Hence it is optimal to 
-describe a select list only after an execute. 
-Also for SELECT statements, some results are available implicitly. Rows will 
-be received and buffered at the end of the execute. For queries with small row 
-count, a prefetch causes memory to be released in the server if the end of 
-fetch is reached, an optimization that may result in memory usage reduction. 
-Set attribute call has been defined to set the number of rows to be prefetched
-per result set.
-For SELECT statements, at the end of the execute, the statement handle 
-implicitly maintains a reference to the service context on which it is 
-executed. It is the user's responsibility to maintain the integrity of the 
-service context. If the attributes of a service context is changed for 
-executing some operations on this service context, the service context must 
-be restored to have the same attributes, that a statement was executed with, 
-prior to a fetch on the statement handle. The implicit reference is maintained 
-until the statement handle is freed or the fetch is cancelled or an end of 
-fetch condition is reached.
-Note: If output variables are defined for a SELECT statement before a 
-call to OCIStmtExecute(), the number of rows specified by iters will be 
-fetched directly into the defined output buffers and additional rows 
-equivalent to the prefetch count will be prefetched. If there are no 
-additional rows, then the fetch is complete without calling 
-OCIStmtFetch().
-The execute call will return errors if the statement has bind data types that 
-are not supported in an Oracle7 server.
-Parameters
-svchp (IN/OUT) - service context handle. 
-stmtp (IN/OUT) - an statement handle - defines the statement and the 
-associated data to be executed at the server. It is invalid to pass in a 
-statement handle that has bind of data types only supported in release 8.0 
-when srvchp points to an Oracle7 server. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. If the statement is being 
-batched and it is successful, then this handle will contain this particular 
-statement execution specific errors returned from the server when the batch is 
-flushed.
-iters (IN) - the number of times this statement is executed for non-Select 
-statements. For Select statements, if iters is non-zero, then defines must 
-have been done for the statement handle. The execution fetches iters rows into 
-these predefined buffers and prefetches more rows depending upon the prefetch 
-row count. This function returns an error if iters=0 for non-SELECT 
-statements.
-rowoff (IN) - the index from which the data in an array bind is relevant for 
-this multiple row execution. 
-snap_in (IN) - this parameter is optional. if supplied, must point to a 
-snapshot descriptor of type OCI_DTYPE_SNAP.  The contents of this descriptor 
-must be obtained from the snap_out parameter of a previous call.  The 
-descriptor is ignored if the SQL is not a SELECT.  This facility allows 
-multiple service contexts to ORACLE to see the same consistent snapshot of the 
-database's committed data.  However, uncommitted data in one context is not 
-visible to another context even using the same snapshot.
-snap_out (OUT) - this parameter optional. if supplied, must point to a 
-descriptor of type OCI_DTYPE_SNAP. This descriptor is filled in with an 
-opaque representation which is the current ORACLE "system change 
-number" suitable as a snap_in input to a subsequent call to OCIStmtExecute().  
-This descriptor should not be used any longer than necessary in order to avoid 
-"snapshot too old" errors. 
-mode (IN) - The modes are:
-If OCI_DEFAULT_MODE, the default mode, is selected, the request is 
-immediately executed. Error handle contains diagnostics on error if any. 
-OCI_EXACT_FETCH - if the statement is a SQL SELECT, this mode is 
-only valid if the application has set the prefetch row count prior to this 
-call. In this mode, the OCI library will get up to the number of rows 
-specified (i.e., prefetch row count plus iters). If the number of rows 
-returned by the query is greater than this value, OCI_ERROR will be 
-returned with ORA-01422 as the implementation specific error in a 
-diagnostic record. If the number of rows returned by the query is 
-smaller than the prefetch row count, OCI_SUCCESS_WITH_INFO will 
-be returned with ORA-01403 as the implementation specific error. The 
-prefetch buffer size is ignored and the OCI library tries to allocate all the 
-space required to contain the prefetched rows. The exact fetch semantics 
-apply to only the top level rows. No more rows can be fetched for this 
-query at the end of the call. 
-OCI_KEEP_FETCH_STATE - the result set rows (not yet fetched) of this 
-statement executed in this transaction will be maintained when the 
-transaction is detached for migration. By default, a query is cancelled 
-when a transaction is detached for migration. This mode is the default 
-mode when connected to a V7 server. 
-Related Functions
-OCIStmtPrepare()
-
-
-
-
-
-OCIStmtFetch()
-Name
-OCI FetCH
-Purpose
-Fetches rows from a query.
-Syntax
-sword OCIStmtFetch ( OCIStmt     *stmtp,
-                   OCIError    *errhp, 
-                   ub4         nrows,
-                   ub2         orientation,
-                   ub4         mode);
-Comments
-The fetch call is a local call, if prefetched rows suffice. However, this is 
-transparent to the application. If LOB columns are being read, LOB locators 
-are fetched for subsequent LOB operations to be performed on these locators. 
-Prefetching is turned off if LONG columns are involved. 
-A fetch with nrows set to 0 rows effectively cancels the fetch for this 
-statement.
-Parameters
-stmtp (IN) - a statement (application request) handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-nrows (IN) - number of rows to be fetched from the current position.
-orientation (IN) - for release 8.0, the only acceptable value is 
-OCI_FETCH_NEXT, which is also the default value. 
-mode (IN) - for release 8.0, beta-1, the following mode is defined.
-OCI_DEFAULT - default mode
-OCI_EOF_FETCH - indicates that it is the last fetch from the result set. 
-If nrows is non-zero, setting this mode effectively cancels fetching after 
-retrieving nrows, otherwise it cancels fetching immediately. 
-Related Functions
-OCIAttrGet()
-
-OCIStmtFetch2()
-Name
-OCI FetCH2
-Purpose
-Fetches rows from a query.
-Syntax
-sword OCIStmtFetch2 ( OCIStmt     *stmtp,
-                   OCIError    *errhp, 
-                   ub4         nrows,
-                   ub2         orientation,
-                   ub4         scrollOffset,
-                   ub4         mode);
-Comments
-The fetch call works similar to the OCIStmtFetch call with the 
-addition of the fetchOffset parameter. It can be used on any 
-statement handle, whether it is scrollable or not. For a 
-non-scrollable statement handle, the only acceptable value 
-will be OCI_FETCH_NEXT, and the fetchOffset parameter will be 
-ignored. Applications are encouraged to use this new call. 
-
-A fetchOffset with OCI_FETCH_RELATIVE is equivalent to 
-OCI_FETCH_CURRENT with a value of 0, is equivalent to 
-OCI_FETCH_NEXT with a value of 1, and equivalent to 
-OCI_FETCH_PRIOR with a value of -1. Note that the range of 
-accessible rows is [1,OCI_ATTR_ROW_COUNT] beyond which an 
-error could be raised if sufficient rows do not exist in 
-
-The fetch call is a local call, if prefetched rows suffice. However, this is 
-transparent to the application. If LOB columns are being read, LOB locators 
-are fetched for subsequent LOB operations to be performed on these locators. 
-Prefetching is turned off if LONG columns are involved. 
-A fetch with nrows set to 0 rows effectively cancels the fetch for this 
-statement.
-Parameters
-stmtp (IN) - a statement (application request) handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-nrows (IN) - number of rows to be fetched from the current position.
-It defaults to 1 for orientation OCI_FETCH_LAST.
-orientation (IN) -  The acceptable values are as follows, with 
-OCI_FETCH_NEXT being the default value.
-OCI_FETCH_CURRENT gets the current row, 
-OCI_FETCH_NEXT gets the next row from the current position,
-OCI_FETCH_FIRST gets the first row in the result set,
-OCI_FETCH_LAST gets the last row in the result set, 
-OCI_FETCH_PRIOR gets the previous row from the current row in the result set, 
-OCI_FETCH_ABSOLUTE will fetch the row number (specified by fetchOffset 
-parameter) in the result set using absolute positioning,
-OCI_FETCH_RELATIVE will fetch the row number (specified by fetchOffset 
-parameter) in the result set using relative positioning.
-scrollOffset(IN) - offset used with the OCI_FETCH_ABSOLUTE and 
-OCI_FETCH_RELATIVE orientation parameters only. It specify
-the new current position for scrollable result set. It is 
-ignored for non-scrollable result sets. 
-mode (IN) - for release 8.0, beta-1, the following mode is defined.
-OCI_DEFAULT - default mode
-OCI_EOF_FETCH - indicates that it is the last fetch from the result set. 
-If nrows is non-zero, setting this mode effectively cancels fetching after 
-retrieving nrows, otherwise it cancels fetching immediately. 
-Related Functions
-OCIAttrGet()
-
-
-
-OCIStmtGetPieceInfo()
-Name
-OCI Get Piece Information
-Purpose
-Returns piece information for a piecewise operation.
-Syntax
-sword OCIStmtGetPieceInfo( CONST OCIStmt  *stmtp,
-                         OCIError       *errhp,
-                         dvoid          **hndlpp,
-                         ub4            *typep,
-                         ub1            *in_outp,
-                         ub4            *iterp, 
-                         ub4            *idxp,
-                         ub1            *piecep );
-
-Comments
-When an execute/fetch call returns OCI_NEED_DATA to get/return a 
-dynamic bind/define value or piece, OCIStmtGetPieceInfo() returns the 
-relevant information: bind/define handle, iteration or index number and 
-which piece.
-See the section "Runtime Data Allocation and Piecewise Operations" on page 
-5-16 for more information about using OCIStmtGetPieceInfo().
-Parameters
-stmtp (IN) - the statement when executed returned OCI_NEED_DATA. 
-errhp (OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-hndlpp (OUT) - returns a pointer to the bind or define handle of the bind or 
-define whose runtime data is required or is being provided.
-typep (OUT) - the type of the handle pointed to by hndlpp: OCI_HTYPE_BIND 
-(for a bind handle) or OCI_HTYPE_DEFINE (for a define handle).
-in_outp (OUT) - returns OCI_PARAM_IN if the data is required for an IN bind 
-value. Returns OCI_PARAM_OUT if the data is available as an OUT bind 
-variable or a define position value.
-iterp (OUT) - returns the row number of a multiple row operation.
-idxp (OUT) - the index of an array element of a PL/SQL array bind operation.
-piecep (OUT) - returns one of the following defined values - 
-OCI_ONE_PIECE, OCI_FIRST_PIECE, OCI_NEXT_PIECE and 
-OCI_LAST_PIECE. The default value is always OCI_ONE_PIECE. 
-Related Functions
-OCIAttrGet(), OCIAttrGet(), OCIStmtExecute(), OCIStmtFetch(), 
-OCIStmtSetPieceInfo()
-
-
-
-
-OCIStmtPrepare()
-Name
-OCI Statement REQuest
-Purpose
-This call defines the SQL/PLSQL statement to be executed.
-Syntax
-sword OCIStmtPrepare ( OCIStmt      *stmtp,
-                     OCIError     *errhp,
-                     CONST OraText   *stmt, 
-                     ub4          stmt_len,
-                     ub4          language,
-                     ub4          mode);
-Comments
-This call is used to prepare a SQL or PL/SQL statement for execution. The 
-OCIStmtPrepare() call defines an application request. 
-This is a purely local call. Data values for this statement initialized in 
-subsequent bind calls will be stored in a bind handle which will hang off this 
-statement handle.
-This call does not create an association between this statement handle and any 
-particular server.
-See the section "Preparing Statements" on page 2-21 for more information 
-about using this call.
-Parameters
-stmtp (IN) - a statement handle.
-errhp (IN) - an error handle to retrieve diagnostic information.
-stmt (IN) - SQL or PL/SQL statement to be executed. Must be a null-terminated 
-string. The pointer to the OraText of the statement must be available as long 
-as the statement is executed.
-stmt_len (IN) - length of the statement. Must not be zero.
-language (IN) - V7, V8, or native syntax. Possible values are:
-OCI_V7_SYNTAX - V7 ORACLE parsing syntax
-OCI_V8_SYNTAX - V8 ORACLE parsing syntax
-OCI_NTV_SYNTAX - syntax depending upon the version of the server. 
-mode (IN) - the only defined mode is OCI_DEFAULT for default mode. 
-Example
-This example demonstrates the use of OCIStmtPrepare(), as well as the OCI 
-application initialization calls.
-Related Functions
-OCIAttrGet(), OCIStmtExecute()
-
-
-OCIStmtPrepare2()
-Name
-OCI Statement REQuest with (a) early binding to svchp and/or
-(b) stmt caching
-Purpose
-This call defines the SQL/PLSQL statement to be executed.
-Syntax
-sword OCIStmtPrepare2 ( OCISvcCtx *svchp,
-                     OCIStmt      **stmtp,
-                     OCIError     *errhp,
-                     CONST OraText   *stmt,
-                     ub4          stmt_len,
-                     CONST OraText *key,
-                     ub4          key_len,
-                     ub4          language,
-                     ub4          mode);
-Comments
-This call is used to prepare a SQL or PL/SQL statement for execution. The
-OCIStmtPrepare() call defines an application request.
-This is a purely local call. Data values for this statement initialized in
-subsequent bind calls will be stored in a bind handle which will hang off this
-statement handle.
-This call creates an association between the statement handle and a service
-context. It differs from OCIStmtPrepare in that respect.It also supports
-stmt caching. The stmt will automatically be cached if the authp of the stmt
-has enabled stmt caching.
-Parameters
-svchp (IN) - the service context handle that contains the session that
-             this stmt handle belongs to.
-stmtp (OUT) - an unallocated stmt handle must be pased in. An allocated
-              and prepared  statement handle will be returned.
-errhp (IN) - an error handle to retrieve diagnostic information.
-stmt (IN) - SQL or PL/SQL statement to be executed. Must be a null-
-            terminated string. The pointer to the OraText of the statement 
-            must be available as long as the statement is executed.
-stmt_len (IN) - length of the statement. Must not be zero.
-key (IN) - This is only Valid for OCI Stmt Caching. It indicates the
-           key to search with. It thus optimizes the search in the cache.
-key_len (IN) - the length of the key. This, too, is onlly valid for stmt
-               caching.
-language (IN) - V7, V8, or native syntax. Possible values are:
-OCI_V7_SYNTAX - V7 ORACLE parsing syntax
-OCI_V8_SYNTAX - V8 ORACLE parsing syntax
-OCI_NTV_SYNTAX - syntax depending upon the version of the server.
-mode (IN) - the defined modes are OCI_DEFAULT and OCI_PREP2_CACHE_SEARCHONLY.
-Example
-Related Functions
-OCIStmtExecute(), OCIStmtRelease()
-
-
-OCIStmtRelease()
-Name
-OCI Statement Release. This call is used to relesae the stmt that
-was retreived using OCIStmtPrepare2(). If the stmt is release
-using this call, OCIHandleFree() must not be called on the stmt
-handle.
-Purpose
-This call releases the statement obtained by OCIStmtPrepare2
-Syntax
-sword OCIStmtRelease ( OCIStmt      *stmtp,
-                     OCIError     *errhp,
-                     cONST OraText *key,
-                     ub4          key_len,
-                     ub4          mode);
-Comments
-This call is used to release a handle obtained via OCIStmtPrepare2().
-It also frees the memory associated with the handle.
-This is a purely local call.
-Parameters
-stmtp (IN/OUT) - The statement handle to be released/freed.
-errhp (IN) - an error handle to retrieve diagnostic information.
-key (IN) - This is only Valid for OCI Stmt Caching. It indicates the
-           key to tag the stmt with.
-key_len (IN) - the length of the key. This, too, is only valid for stmt
-               caching.
-mode (IN) - the defined modes are OCI_DEFAULT for default mode and
-            OCI_STRLS_CACHE_DELETE (only used for Stmt Caching).
-Example
-Related Functions
-OCIStmtExecute(), OCIStmtPrepare2()
-
-
-OCIStmtSetPieceInfo()
-Name
-OCI Set Piece Information
-Purpose
-Sets piece information for a piecewise operation.
-Syntax
-sword OCIStmtSetPieceInfo ( dvoid             *hndlp,
-                          ub4               type,
-                          OCIError          *errhp,
-                          CONST dvoid       *bufp,
-                          ub4               *alenp, 
-                          ub1               piece,
-                          CONST dvoid       *indp, 
-                          ub2               *rcodep ); 
-Comments
-When an execute call returns OCI_NEED_DATA to get a dynamic IN/OUT 
-bind value or piece, OCIStmtSetPieceInfo() sets the piece information: the 
-buffer, the length, the indicator and which piece is currently being processed.
-For more information about using OCIStmtSetPieceInfo() see the section 
-"Runtime Data Allocation and Piecewise Operations" on page 5-16.
-Parameters
-hndlp (IN/OUT) - the bind/define handle.
-type (IN) - type of the handle. 
-errhp (OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-bufp (IN/OUT) - bufp is a pointer to a storage containing the data value or 
-the piece when it is an IN bind variable, otherwise bufp is a pointer to 
-storage for getting a piece or a value for OUT binds and define variables. For
-named data types or REFs, a pointer to the object or REF is returned.
-alenp (IN/OUT) - the length of the piece or the value. 
-piece (IN) - the piece parameter. The following are valid values: 
-OCI_ONE_PIECE, OCI_FIRST_PIECE, OCI_NEXT_PIECE, or 
-OCI_LAST_PIECE. 
-The default value is OCI_ONE_PIECE. This parameter is used for IN bind 
-variables only.
-indp (IN/OUT) - indicator. A pointer to a sb2 value or pointer to an indicator 
-structure for named data types (SQLT_NTY) and REFs (SQLT_REF), i.e., *indp 
-is either an sb2 or a dvoid * depending upon the data type.
-rcodep (IN/OUT) - return code. 
-Related Functions
-OCIAttrGet(), OCIAttrGet(), OCIStmtExecute(), OCIStmtFetch(), 
-OCIStmtGetPieceInfo()
-
-
-OCIFormatInit
-Name
-OCIFormat Package Initialize
-Purpose
-Initializes the OCIFormat package.
-Syntax
-sword OCIFormatInit(dvoid *hndl, OCIError *err);
-Comments
-This routine must be called before calling any other OCIFormat routine.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - OCI environment or session handle
-err (IN/OUT) - OCI error handle
-Related Functions
-OCIFormatTerm()
-
-
-OCIFormatString
-Name
-OCIFormat Package Format String
-Purpose
-Writes a text string into the supplied text buffer using the argument
-list submitted to it and in accordance with the format string given.
-Syntax
-sword OCIFormatString(dvoid *hndl, OCIError *err, OraText *buffer,
-                      sbig_ora bufferLength, sbig_ora *returnLength,
-                      CONST OraText *formatString, ...);
-Comments
-The first call to this routine must be preceded by a call to the
-OCIFormatInit routine that initializes the OCIFormat package
-for use.  When this routine is no longer needed then terminate
-the OCIFormat package by a call to the OCIFormatTerm routine.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl         (IN/OUT) - OCI environment or session handle
-err          (IN/OUT) - OCI error handle
-buffer       (OUT)    - text buffer for the string
-bufferLength (IN)     - length of the text buffer
-returnLength (OUT)    - length of the formatted string
-formatString (IN)     - format specification string
-...          (IN)     - variable argument list
-Related Functions
-
-
-OCIFormatTerm 
-Name
-OCIFormat Package Terminate
-Purpose
-Terminates the OCIFormat package.
-Syntax
-sword OCIFormatTerm(dvoid *hndl, OCIError *err);
-Comments
-It must be called after the OCIFormat package is no longer being used.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - OCI environment or session handle
-err (IN/OUT) - OCI error handle
-Related Functions
-OCIFormatInit()
-
-
-OCIFormatTUb1
-Name
-OCIFormat Package ub1 Type
-Purpose
-Return the type value for the ub1 type.
-Syntax
-sword OCIFormatTUb1(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTUb2
-Name
-OCIFormat Package ub2 Type
-Purpose
-Return the type value for the ub2 type.
-Syntax
-sword OCIFormatTUb2(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTUb4
-Name
-OCIFormat Package ub4 Type
-Purpose
-Return the type value for the ub4 type.
-Syntax
-sword OCIFormatTUb4(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTUword
-Name
-OCIFormat Package uword Type
-Purpose
-Return the type value for the uword type.
-Syntax
-sword OCIFormatTUword(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTUbig_ora
-Name
-OCIFormat Package ubig_ora Type
-Purpose
-Return the type value for the ubig_ora type.
-Syntax
-sword OCIFormatTUbig_ora(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSb1
-Name
-OCIFormat Package sb1 Type
-Purpose
-Return the type value for the sb1 type.
-Syntax
-sword OCIFormatTSb1(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSb2
-Name
-OCIFormat Package sb2 Type
-Purpose
-Return the type value for the sb2 type.
-Syntax
-sword OCIFormatTSb2(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSb4
-Name
-OCIFormat Package sb4 Type
-Purpose
-Return the type value for the sb4 type.
-Syntax
-sword OCIFormatTSb4(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSword
-Name
-OCIFormat Package sword Type
-Purpose
-Return the type value for the sword type.
-Syntax
-sword OCIFormatTSword(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSbig_ora
-Name
-OCIFormat Package sbig_ora Type
-Purpose
-Return the type value for the sbig_ora type.
-Syntax
-sword OCIFormatTSbig_ora(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEb1
-Name
-OCIFormat Package eb1 Type
-Purpose
-Return the type value for the eb1 type.
-Syntax
-sword OCIFormatTEb1(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEb2
-Name
-OCIFormat Package eb2 Type
-Purpose
-Return the type value for the eb2 type.
-Syntax
-sword OCIFormatTEb2(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEb4
-Name
-OCIFormat Package eb4 Type
-Purpose
-Return the type value for the eb4 type.
-Syntax
-sword OCIFormatTEb4(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEword
-Name
-OCIFormat Package eword Type
-Purpose
-Return the type value for the eword type.
-Syntax
-sword OCIFormatTEword(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTChar
-Name
-OCIFormat Package text Type
-Purpose
-Return the type value for the text type.
-Syntax
-sword OCIFormatTChar(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTText
-Name
-OCIFormat Package *text Type
-Purpose
-Return the type value for the *text type.
-Syntax
-sword OCIFormatTText(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTDouble
-Name
-OCIFormat Package double Type
-Purpose
-Return the type value for the double type.
-Syntax
-sword OCIFormatTDouble(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatDvoid
-Name
-OCIFormat Package dvoid Type
-Purpose
-Return the type value for the dvoid type.
-Syntax
-sword OCIFormatTDvoid(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEnd
-Name
-OCIFormat Package end Type
-Purpose
-Return the list terminator's "type".
-Syntax
-sword OCIFormatTEnd(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCISvcCtxToLda()
-Name
-OCI toggle SerVice context handle to Version 7 Lda_Def
-Purpose
-Toggles between a V8 service context handle and a V7 Lda_Def.
-Syntax
-sword OCISvcCtxToLda ( OCISvcCtx    *srvhp,
-                     OCIError     *errhp,
-                     Lda_Def      *ldap );
-Comments
-Toggles between an Oracle8 service context handle and an Oracle7 Lda_Def.
-This function can only be called after a service context has been properly 
-initialized.
-Once the service context has been translated to an Lda_Def, it can be used in 
-release 7.x OCI calls (e.g., obindps(), ofen()).
-Note: If there are multiple service contexts which share the same server 
-handle, only one can be in V7 mode at any time.
-The action of this call can be reversed by passing the resulting Lda_Def to 
-the OCILdaToSvcCtx() function.
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-ldap (IN/OUT) - a Logon Data Area for V7-style OCI calls which is initialized 
-by this call. 
-Related Functions
-OCILdaToSvcCtx()
-
-
-
-
-OCITransCommit()
-Name
-OCI TX (transaction) CoMmit
-Purpose
-Commits the transaction associated with a specified service context.
-Syntax
-sword OCITransCommit ( OCISvcCtx    *srvcp,
-                     OCIError     *errhp,
-                     ub4          flags );
-Comments
-The transaction currently associated with the service context is committed. If 
-it is a distributed transaction that the server cannot commit, this call 
-additionally retrieves the state of the transaction from the database to be 
-returned to the user in the error handle.
-If the application has defined multiple transactions, this function operates 
-on the transaction currently associated with the service context. If the 
-application is working with only the implicit local transaction created when 
-database changes are made, that implicit transaction is committed.
-If the application is running in the object mode, then the modified or updated 
-objects in the object cache for this transaction are also committed.
-The flags parameter is used for one-phase commit optimization in distributed 
-transactions. If the transaction is non-distributed, the flags parameter is 
-ignored, and OCI_DEFAULT can be passed as its value. OCI applications 
-managing global transactions should pass a value of 
-OCI_TRANS_TWOPHASE to the flags parameter for a two-phase commit. The 
-default is one-phase commit.
-Under normal circumstances, OCITransCommit() returns with a status 
-indicating that the transaction has either been committed or rolled back. With 
-distributed transactions, it is possible that the transaction is now in-doubt 
-(i.e., neither committed nor aborted). In this case, OCITransCommit() 
-attempts to retrieve the status of the transaction from the server. 
-The status is returned.
-Parameters
-srvcp (IN) - the service context handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags -see the "Comments" section above.
-Related Functions
-OCITransRollback()
-
-
-
-
-OCITransDetach()
-Name
-OCI TX (transaction) DeTach
-Purpose
-Detaches a transaction.
-Syntax
-sword OCITransDetach ( OCISvcCtx    *srvcp,
-                     OCIError     *errhp,
-                     ub4          flags);
-Comments
-Detaches a global transaction from the service context handle. The transaction 
-currently attached to the service context handle becomes inactive at the end 
-of this call. The transaction may be resumed later by calling OCITransStart(), 
-specifying  a flags value of OCI_TRANS_RESUME.
-When a transaction is detached, the value which was specified in the timeout 
-parameter of OCITransStart() when the transaction was started is used to 
-determine the amount of time the branch can remain inactive before being 
-deleted by the server's PMON process.
-Note: The transaction can be resumed by a different process than the one 
-that detached it, provided that the transaction has the same 
-authorization.
-Parameters
-srvcp (IN) - the service context handle. 
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags (IN) - you must pass a value of OCI_DEFAULT for this parameter.
-Related Functions
-OCITransStart()
-
-
-
-OCITransForget()
-Name
-OCI TX (transaction) ForGeT
-Purpose
-Causes the server to forget a heuristically completed global transaction.
-Syntax
-sword OCITransForget ( OCISvcCtx     *svchp, 
-                     OCIError      *errhp,
-                     ub4           flags);
-
-Comments
-
-Forgets a heuristically completed global transaction. The server deletes the 
-status of the transaction from the system's pending transaction table.
-The XID of the transaction to be forgotten is set as an attribute of the 
-transaction handle (OCI_ATTR_XID).
-Parameters
-srvcp (IN) - the service context handle - the transaction is rolled back.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags (IN) - you must pass OCI_DEFAULT for this parameter.
-Related Functions
-OCITransCommit(), OCITransRollback()
-
-
-OCITransMultiPrepare() 
-Name
-OCI Trans(action) Multi-Branch Prepare
-Purpose
-Prepares a transaction with multiple branches in a single call.
-Syntax
-sword OCITransMultiPrepare ( OCISvcCtx    *svchp,
-                             ub4           numBranches,
-                             OCITrans     **txns,
-                             OCIError     **errhp);
-
-Comments
-
-Prepares the specified global transaction for commit.
-This call is valid only for distributed transactions.
-This call is an advanced performance feature intended for use only in
-situations where the caller is responsible for preparing all the branches
-in a transaction. 
-Parameters
-srvcp (IN) - the service context handle. 
-numBranches (IN) - This is the number of branches expected. It is also the
-array size for the next two parameters.
-txns (IN) - This is the array of transaction handles for the branches to
-prepare. They should all have the OCI_ATTR_XID set. The global transaction
-ID should be the same.
-errhp (IN) - This is the array of error handles. If OCI_SUCCESS is not
-returned, then these will indicate which branches received which errors.
-Related Functions
-OCITransPrepare()
-
-
-OCITransPrepare()
-Name
-OCI TX (transaction) PREpare
-Purpose
-Prepares a transaction for commit.
-Syntax
-sword OCITransPrepare ( OCISvcCtx    *svchp, 
-                      OCIError     *errhp,
-                      ub4          flags);
-
-Comments
-
-Prepares the specified global transaction for commit.
-This call is valid only for distributed transactions.
-The call returns OCI_SUCCESS_WITH_INFO if the transaction has not made 
-any changes. The error handle will indicate that the transaction is read-only. 
-The flag parameter is not currently used. 
-Parameters
-srvcp (IN) - the service context handle. 
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags (IN) - you must pass OCI_DEFAULT for this parameter.
-Related Functions
-OCITransCommit(), OCITransForget()
-
-
-
-
-OCITransRollback()
-Name
-OCI TX (transaction) RoLlback
-Purpose
-Rolls back the current transaction.
-Syntax
-sword OCITransRollback ( dvoid        *svchp, 
-                       OCIError     *errhp,
-                       ub4          flags );
-Comments
-The current transaction- defined as the set of statements executed since the 
-last OCITransCommit() or since OCISessionBegin()-is rolled back.
-If the application is running under object mode then the modified or updated 
-objects in the object cache for this transaction are also rolled back.
-An error is returned if an attempt is made to roll back a global transaction 
-that is not currently active.
-Parameters
-svchp (IN) - a service context handle. The transaction currently set in the 
-service context handle is rolled back.
-errhp -(IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags - you must pass a value of OCI_DEFAULT for this parameter.
-Related Functions
-OCITransCommit()
-
-
-
-
-OCITransStart()
-Name
-OCI TX (transaction) STart
-Purpose
-Sets the beginning of a transaction.
-Syntax
-sword OCITransStart ( OCISvcCtx    *svchp, 
-                    OCIError     *errhp, 
-                    uword        timeout,
-                    ub4          flags);
-
-Comments
-This function sets the beginning of a global or serializable transaction. The 
-transaction context currently associated with the service context handle is 
-initialized at the end of the call if the flags parameter specifies that a new 
-transaction should be started.
-The XID of the transaction is set as an attribute of the transaction handle 
-(OCI_ATTR_XID)
-Parameters
-svchp (IN/OUT) - the service context handle. The transaction context in the 
-service context handle is initialized at the end of the call if the flag 
-specified a new transaction to be started.
-errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-err and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-timeout (IN) - the time, in seconds, to wait for a transaction to become 
-available for resumption when OCI_TRANS_RESUME is specified. When 
-OCI_TRANS_NEW is specified, this value is stored and may be used later by 
-OCITransDetach().
-flags (IN) - specifies whether a new transaction is being started or an 
-existing transaction is being resumed. Also specifies serializiability or 
-read-only status. More than a single value can be specified. By default, 
-a read/write transaction is started. The flag values are:
-OCI_TRANS_NEW - starts a new transaction branch. By default starts a 
-tightly coupled and migratable branch.
-OCI_TRANS_TIGHT - explicitly specifies a tightly coupled branch
-OCI_TRANS_LOOSE - specifies a loosely coupled branch
-OCI_TRANS_RESUME - resumes an existing transaction branch. 
-OCI_TRANS_READONLY - start a readonly transaction
-OCI_TRANS_SERIALIZABLE - start a serializable transaction
-Related Functions
-OCITransDetach()
-
-
-
-
-
-******************************************************************************/
-/*-----------------------Dynamic Callback Function Pointers------------------*/
- 
- 
-typedef sb4 (*OCICallbackInBind)(dvoid *ictxp, OCIBind *bindp, ub4 iter,
-                                  ub4 index, dvoid **bufpp, ub4 *alenp,
-                                  ub1 *piecep, dvoid **indp);
- 
-typedef sb4 (*OCICallbackOutBind)(dvoid *octxp, OCIBind *bindp, ub4 iter,
-                                 ub4 index, dvoid **bufpp, ub4 **alenp,
-                                 ub1 *piecep, dvoid **indp,
-                                 ub2 **rcodep);
- 
-typedef sb4 (*OCICallbackDefine)(dvoid *octxp, OCIDefine *defnp, ub4 iter,
-                                 dvoid **bufpp, ub4 **alenp, ub1 *piecep,
-                                 dvoid **indp, ub2 **rcodep);
-
-typedef sword (*OCIUserCallback)(dvoid *ctxp, dvoid *hndlp, ub4 type,
-                                 ub4 fcode, ub4 when, sword returnCode,
-                                 sb4 *errnop, va_list arglist);
-
-typedef sword (*OCIEnvCallbackType)(OCIEnv *env, ub4 mode,
-                                   size_t xtramem_sz, dvoid *usrmemp,
-                                   OCIUcb *ucbDesc); 
-
-typedef sb4 (*OCICallbackLobRead)(dvoid *ctxp, CONST dvoid *bufp,
-                                             ub4 len, ub1 piece);
-
-typedef sb4 (*OCICallbackLobWrite)(dvoid *ctxp, dvoid *bufp, 
-                                          ub4 *lenp, ub1 *piece);
-
-#ifdef ORAXB8_DEFINED
-
-typedef sb4 (*OCICallbackLobRead2)(dvoid *ctxp, CONST dvoid *bufp, oraub8 len,
-                                   ub1 piece, dvoid **changed_bufpp,
-                                   oraub8 *changed_lenp);
-
-typedef sb4 (*OCICallbackLobWrite2)(dvoid *ctxp, dvoid *bufp, oraub8 *lenp,
-                                    ub1 *piece, dvoid **changed_bufpp,
-                                    oraub8 *changed_lenp);
-#endif
-
-typedef sb4 (*OCICallbackAQEnq)(dvoid *ctxp, dvoid **payload, 
-                                dvoid **payload_ind);
-
-typedef sb4 (*OCICallbackAQDeq)(dvoid *ctxp, dvoid **payload, 
-                                dvoid **payload_ind);
-
-/*--------------------------Failover Callback Structure ---------------------*/
-typedef sb4 (*OCICallbackFailover)(dvoid *svcctx, dvoid *envctx,
-                                   dvoid *fo_ctx, ub4 fo_type,
-                                   ub4 fo_event);
-
-typedef struct
-{
-  OCICallbackFailover callback_function;
-  dvoid *fo_ctx;
-} 
-OCIFocbkStruct;
-
-/*****************************************************************************
-                         ACTUAL PROTOTYPE DECLARATIONS
-******************************************************************************/
-
-sword   OCIInitialize   (ub4 mode, dvoid *ctxp, 
-                 dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-                 dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-                 void   (*mfreefp)(dvoid *ctxp, dvoid *memptr) );
-
-sword   OCITerminate( ub4 mode);
-
-sword   OCIEnvCreate (OCIEnv **envp, ub4 mode, dvoid *ctxp,
-                 dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-                 dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-                 void   (*mfreefp)(dvoid *ctxp, dvoid *memptr),
-                 size_t xtramem_sz, dvoid **usrmempp);
-
-sword   OCIEnvNlsCreate (OCIEnv **envp, ub4 mode, dvoid *ctxp,
-                 dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-                 dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-                 void   (*mfreefp)(dvoid *ctxp, dvoid *memptr),
-                 size_t xtramem_sz, dvoid **usrmempp,
-                 ub2 charset, ub2 ncharset);
-
-sword   OCIFEnvCreate (OCIEnv **envp, ub4 mode, dvoid *ctxp,
-                 dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-                 dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-                 void   (*mfreefp)(dvoid *ctxp, dvoid *memptr),
-                 size_t xtramem_sz, dvoid **usrmempp, dvoid *fupg);
-
-sword   OCIHandleAlloc(CONST dvoid *parenth, dvoid **hndlpp, CONST ub4 type, 
-                       CONST size_t xtramem_sz, dvoid **usrmempp);
-
-sword   OCIHandleFree(dvoid *hndlp, CONST ub4 type);
-
-
-sword   OCIDescriptorAlloc(CONST dvoid *parenth, dvoid **descpp, 
-                           CONST ub4 type, CONST size_t xtramem_sz, 
-                           dvoid **usrmempp);
-
-sword   OCIDescriptorFree(dvoid *descp, CONST ub4 type);
-
-sword   OCIEnvInit (OCIEnv **envp, ub4 mode, 
-                    size_t xtramem_sz, dvoid **usrmempp);
-
-sword   OCIServerAttach  (OCIServer *srvhp, OCIError *errhp,
-                          CONST OraText *dblink, sb4 dblink_len, ub4 mode);
-
-sword   OCIServerDetach  (OCIServer *srvhp, OCIError *errhp, ub4 mode);
-
-sword   OCISessionBegin  (OCISvcCtx *svchp, OCIError *errhp, OCISession *usrhp,
-                          ub4 credt, ub4 mode);
-
-sword   OCISessionEnd   (OCISvcCtx *svchp, OCIError *errhp, OCISession *usrhp, 
-                         ub4 mode);
-
-sword   OCILogon (OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp, 
-                  CONST OraText *username, ub4 uname_len, 
-                  CONST OraText *password, ub4 passwd_len, 
-                  CONST OraText *dbname, ub4 dbname_len);
-
-sword   OCILogon2 (OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp,
-                  CONST OraText *username, ub4 uname_len,
-                  CONST OraText *password, ub4 passwd_len,
-                  CONST OraText *dbname, ub4 dbname_len,
-                  ub4 mode);
-
-sword   OCILogoff (OCISvcCtx *svchp, OCIError *errhp);
-
-
-sword   OCIPasswordChange   (OCISvcCtx *svchp, OCIError *errhp, 
-                             CONST OraText *user_name, ub4 usernm_len, 
-                             CONST OraText *opasswd, ub4 opasswd_len, 
-                             CONST OraText *npasswd, ub4 npasswd_len, 
-                             ub4 mode);
-
-sword   OCIStmtPrepare   (OCIStmt *stmtp, OCIError *errhp, CONST OraText *stmt,
-                          ub4 stmt_len, ub4 language, ub4 mode);
-
-sword OCIStmtPrepare2 ( OCISvcCtx *svchp, OCIStmt **stmtp, OCIError *errhp,
-                     CONST OraText *stmt, ub4 stmt_len, CONST OraText *key,
-                     ub4 key_len, ub4 language, ub4 mode);
-
-sword OCIStmtRelease ( OCIStmt *stmtp, OCIError *errhp, CONST OraText *key,
-                       ub4 key_len, ub4 mode);
-
-sword   OCIBindByPos  (OCIStmt *stmtp, OCIBind **bindp, OCIError *errhp,
-                       ub4 position, dvoid *valuep, sb4 value_sz,
-                       ub2 dty, dvoid *indp, ub2 *alenp, ub2 *rcodep,
-                       ub4 maxarr_len, ub4 *curelep, ub4 mode);
-
-sword   OCIBindByName   (OCIStmt *stmtp, OCIBind **bindp, OCIError *errhp,
-                         CONST OraText *placeholder, sb4 placeh_len, 
-                         dvoid *valuep, sb4 value_sz, ub2 dty, 
-                         dvoid *indp, ub2 *alenp, ub2 *rcodep, 
-                         ub4 maxarr_len, ub4 *curelep, ub4 mode);
-
-sword   OCIBindObject  (OCIBind *bindp, OCIError *errhp, CONST OCIType *type, 
-                        dvoid **pgvpp, ub4 *pvszsp, dvoid **indpp, 
-                        ub4 *indszp);
-
-sword   OCIBindDynamic   (OCIBind *bindp, OCIError *errhp, dvoid *ictxp,
-                          OCICallbackInBind icbfp, dvoid *octxp,
-                          OCICallbackOutBind ocbfp);
-
-sword   OCIBindArrayOfStruct   (OCIBind *bindp, OCIError *errhp, 
-                                ub4 pvskip, ub4 indskip,
-                                ub4 alskip, ub4 rcskip);
-
-sword   OCIStmtGetPieceInfo   (OCIStmt *stmtp, OCIError *errhp, 
-                               dvoid **hndlpp, ub4 *typep,
-                               ub1 *in_outp, ub4 *iterp, ub4 *idxp, 
-                               ub1 *piecep);
-
-sword   OCIStmtSetPieceInfo   (dvoid *hndlp, ub4 type, OCIError *errhp, 
-                               CONST dvoid *bufp, ub4 *alenp, ub1 piece, 
-                               CONST dvoid *indp, ub2 *rcodep);
-
-sword   OCIStmtExecute  (OCISvcCtx *svchp, OCIStmt *stmtp, OCIError *errhp, 
-                         ub4 iters, ub4 rowoff, CONST OCISnapshot *snap_in, 
-                         OCISnapshot *snap_out, ub4 mode);
-
-sword   OCIDefineByPos  (OCIStmt *stmtp, OCIDefine **defnp, OCIError *errhp,
-                         ub4 position, dvoid *valuep, sb4 value_sz, ub2 dty,
-                         dvoid *indp, ub2 *rlenp, ub2 *rcodep, ub4 mode);
-
-sword   OCIDefineObject  (OCIDefine *defnp, OCIError *errhp, 
-                          CONST OCIType *type, dvoid **pgvpp, 
-                          ub4 *pvszsp, dvoid **indpp, ub4 *indszp);
-
-sword   OCIDefineDynamic   (OCIDefine *defnp, OCIError *errhp, dvoid *octxp,
-                            OCICallbackDefine ocbfp);
-
-sword   OCIRowidToChar  (OCIRowid *rowidDesc, OraText *outbfp, ub2 *outbflp,
-                         OCIError *errhp);
-
-sword   OCIDefineArrayOfStruct  (OCIDefine *defnp, OCIError *errhp, ub4 pvskip,
-                                 ub4 indskip, ub4 rlskip, ub4 rcskip);
-
-sword   OCIStmtFetch   (OCIStmt *stmtp, OCIError *errhp, ub4 nrows, 
-                        ub2 orientation, ub4 mode);
-
-sword   OCIStmtFetch2   (OCIStmt *stmtp, OCIError *errhp, ub4 nrows, 
-                        ub2 orientation, sb4 scrollOffset, ub4 mode);
-
-sword   OCIStmtGetBindInfo   (OCIStmt *stmtp, OCIError *errhp, ub4 size, 
-                              ub4 startloc,
-                              sb4 *found, OraText *bvnp[], ub1 bvnl[],
-                              OraText *invp[], ub1 inpl[], ub1 dupl[],
-                              OCIBind **hndl);
-
-sword   OCIDescribeAny  (OCISvcCtx *svchp, OCIError *errhp, 
-                         dvoid *objptr, 
-                         ub4 objnm_len, ub1 objptr_typ, ub1 info_level,
-                         ub1 objtyp, OCIDescribe *dschp);
-
-sword   OCIParamGet (CONST dvoid *hndlp, ub4 htype, OCIError *errhp, 
-                     dvoid **parmdpp, ub4 pos);
-
-sword   OCIParamSet(dvoid *hdlp, ub4 htyp, OCIError *errhp, CONST dvoid *dscp,
-                    ub4 dtyp, ub4 pos);
-
-sword   OCITransStart  (OCISvcCtx *svchp, OCIError *errhp, 
-                        uword timeout, ub4 flags );
-
-sword   OCITransDetach  (OCISvcCtx *svchp, OCIError *errhp, ub4 flags );
-
-sword   OCITransCommit  (OCISvcCtx *svchp, OCIError *errhp, ub4 flags);
-
-sword   OCITransRollback  (OCISvcCtx *svchp, OCIError *errhp, ub4 flags);
-
-sword   OCITransPrepare (OCISvcCtx *svchp, OCIError *errhp, ub4 flags);
-
-sword   OCITransMultiPrepare (OCISvcCtx *svchp, ub4 numBranches, 
-                              OCITrans **txns, OCIError **errhp);
-
-sword   OCITransForget (OCISvcCtx *svchp, OCIError *errhp, ub4 flags);
-
-sword   OCIErrorGet   (dvoid *hndlp, ub4 recordno, OraText *sqlstate,
-                       sb4 *errcodep, OraText *bufp, ub4 bufsiz, ub4 type);
-
-sword   OCILobAppend  (OCISvcCtx *svchp, OCIError *errhp, 
-                       OCILobLocator *dst_locp,
-                       OCILobLocator *src_locp);
-
-sword   OCILobAssign (OCIEnv *envhp, OCIError *errhp, 
-                      CONST OCILobLocator *src_locp, 
-                      OCILobLocator **dst_locpp);
-
-sword   OCILobCharSetForm (OCIEnv *envhp, OCIError *errhp, 
-                           CONST OCILobLocator *locp, ub1 *csfrm);
-
-sword   OCILobCharSetId (OCIEnv *envhp, OCIError *errhp, 
-                         CONST OCILobLocator *locp, ub2 *csid);
-
-sword   OCILobCopy (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *dst_locp,
-                    OCILobLocator *src_locp, ub4 amount, ub4 dst_offset, 
-                    ub4 src_offset);
-
-sword OCILobCreateTemporary(OCISvcCtx          *svchp,
-                            OCIError           *errhp,
-                            OCILobLocator      *locp,
-                            ub2                 csid,
-                            ub1                 csfrm,
-                            ub1                 lobtype,
-                            boolean             cache,
-                            OCIDuration         duration);
-
-
-sword OCILobClose( OCISvcCtx        *svchp,
-                   OCIError         *errhp,
-                   OCILobLocator    *locp );
-
-
-sword   OCILobDisableBuffering (OCISvcCtx      *svchp,
-                                OCIError       *errhp,
-                                OCILobLocator  *locp);
-
-sword   OCILobEnableBuffering (OCISvcCtx      *svchp,
-                               OCIError       *errhp,
-                               OCILobLocator  *locp);
-
-sword   OCILobErase (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                      ub4 *amount, ub4 offset);
-
-sword   OCILobFileClose (OCISvcCtx *svchp, OCIError *errhp, 
-                         OCILobLocator *filep);
-
-sword   OCILobFileCloseAll (OCISvcCtx *svchp, OCIError *errhp);
-
-sword   OCILobFileExists (OCISvcCtx *svchp, OCIError *errhp, 
-                          OCILobLocator *filep,
-                          boolean *flag);
-
-sword   OCILobFileGetName (OCIEnv *envhp, OCIError *errhp, 
-                           CONST OCILobLocator *filep, 
-                           OraText *dir_alias, ub2 *d_length, 
-                           OraText *filename, ub2 *f_length);
-
-sword   OCILobFileIsOpen (OCISvcCtx *svchp, OCIError *errhp, 
-                          OCILobLocator *filep,
-                          boolean *flag);
-
-sword   OCILobFileOpen (OCISvcCtx *svchp, OCIError *errhp, 
-                        OCILobLocator *filep,
-                        ub1 mode);
-
-sword   OCILobFileSetName (OCIEnv *envhp, OCIError *errhp, 
-                           OCILobLocator **filepp, 
-                           CONST OraText *dir_alias, ub2 d_length, 
-                           CONST OraText *filename, ub2 f_length);
-
-sword   OCILobFlushBuffer (OCISvcCtx       *svchp,
-                           OCIError        *errhp,
-                           OCILobLocator   *locp,
-                           ub4              flag);
-
-sword OCILobFreeTemporary(OCISvcCtx          *svchp,
-                          OCIError           *errhp,
-                          OCILobLocator      *locp);
-
-sword OCILobGetChunkSize(OCISvcCtx         *svchp,
-                         OCIError          *errhp,
-                         OCILobLocator     *locp,
-                         ub4               *chunksizep);
-
-sword   OCILobGetLength  (OCISvcCtx *svchp, OCIError *errhp, 
-                          OCILobLocator *locp,
-                          ub4 *lenp);
-
-sword   OCILobIsEqual  (OCIEnv *envhp, CONST OCILobLocator *x, 
-                        CONST OCILobLocator *y, 
-                        boolean *is_equal);
-
-sword OCILobIsOpen( OCISvcCtx     *svchp,
-                    OCIError      *errhp,
-                    OCILobLocator *locp,
-                    boolean       *flag);
-
-sword OCILobIsTemporary(OCIEnv            *envp,
-                        OCIError          *errhp,
-                        OCILobLocator     *locp,
-                        boolean           *is_temporary);
-
-sword   OCILobLoadFromFile (OCISvcCtx *svchp, OCIError *errhp, 
-                            OCILobLocator *dst_locp,
-                            OCILobLocator *src_filep, 
-                            ub4 amount, ub4 dst_offset, 
-                            ub4 src_offset);
-
-sword   OCILobLocatorAssign  (OCISvcCtx *svchp, OCIError *errhp, 
-                            CONST OCILobLocator *src_locp, 
-                            OCILobLocator **dst_locpp);
-
-
-sword   OCILobLocatorIsInit (OCIEnv *envhp, OCIError *errhp, 
-                             CONST OCILobLocator *locp, 
-                             boolean *is_initialized);
-
-sword   OCILobOpen( OCISvcCtx        *svchp,
-                   OCIError         *errhp,
-                   OCILobLocator    *locp,
-                   ub1               mode );
- 
-sword   OCILobRead  (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                     ub4 *amtp, ub4 offset, dvoid *bufp, ub4 bufl, dvoid *ctxp,
-                     OCICallbackLobRead cbfp, ub2 csid, ub1 csfrm);
-
-sword   OCILobTrim  (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                     ub4 newlen);
-
-sword   OCILobWrite  (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                      ub4 *amtp, ub4 offset, dvoid *bufp, ub4 buflen, ub1 piece,
-                      dvoid *ctxp, OCICallbackLobWrite cbfp, ub2 csid,
-                      ub1 csfrm);
-
-sword OCILobWriteAppend(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *lobp,
-                        ub4 *amtp, dvoid *bufp, ub4 bufl, ub1 piece, dvoid *ctxp,
-                        OCICallbackLobWrite cbfp, ub2 csid, ub1 csfrm);
-
-sword   OCIBreak (dvoid *hndlp, OCIError *errhp);
-
-sword   OCIReset (dvoid *hndlp, OCIError *errhp);
-
-sword   OCIServerVersion  (dvoid *hndlp, OCIError *errhp, OraText *bufp, 
-                           ub4 bufsz,
-                           ub1 hndltype);
-
-sword   OCIServerRelease  (dvoid *hndlp, OCIError *errhp, OraText *bufp,
-                           ub4 bufsz,
-                           ub1 hndltype, ub4 *version);
-
-sword   OCIAttrGet (CONST dvoid *trgthndlp, ub4 trghndltyp, 
-                    dvoid *attributep, ub4 *sizep, ub4 attrtype, 
-                    OCIError *errhp);
-
-sword   OCIAttrSet (dvoid *trgthndlp, ub4 trghndltyp, dvoid *attributep,
-                    ub4 size, ub4 attrtype, OCIError *errhp);
-
-sword   OCISvcCtxToLda (OCISvcCtx *svchp, OCIError *errhp, Lda_Def *ldap);
-
-sword   OCILdaToSvcCtx (OCISvcCtx **svchpp, OCIError *errhp, Lda_Def *ldap);
-
-sword   OCIResultSetToStmt (OCIResult *rsetdp, OCIError *errhp);
-
-sword OCIFileClose ( dvoid  *hndl, OCIError *err, OCIFileObject *filep );
-
-sword   OCIUserCallbackRegister(dvoid *hndlp, ub4 type, dvoid *ehndlp,
-                                    OCIUserCallback callback, dvoid *ctxp,
-                                    ub4 fcode, ub4 when, OCIUcb *ucbDesc);
-
-sword   OCIUserCallbackGet(dvoid *hndlp, ub4 type, dvoid *ehndlp,
-                               ub4 fcode, ub4 when, OCIUserCallback *callbackp,
-                               dvoid **ctxpp, OCIUcb *ucbDesc);
-
-sword   OCISharedLibInit(dvoid *metaCtx, dvoid *libCtx, ub4 argfmt, sword argc,
-                         dvoid **argv, OCIEnvCallbackType envCallback);
-
-sword OCIFileExists ( dvoid  *hndl, OCIError *err, OraText *filename,
-                     OraText *path, ub1 *flag  );
-
-sword OCIFileFlush( dvoid *hndl, OCIError *err, OCIFileObject *filep  );
-
-
-sword OCIFileGetLength( dvoid *hndl, OCIError *err, OraText *filename,
-                        OraText *path, ubig_ora *lenp  );
-
-sword OCIFileInit ( dvoid *hndl, OCIError *err );
-
-sword OCIFileOpen ( dvoid *hndl, OCIError *err, OCIFileObject **filep,
-                    OraText *filename, OraText *path, ub4 mode, ub4 create, 
-                    ub4 type );
-
-sword OCIFileRead ( dvoid *hndl, OCIError *err, OCIFileObject *filep,
-                    dvoid *bufp, ub4 bufl, ub4 *bytesread );
-
-sword OCIFileSeek ( dvoid *hndl, OCIError *err, OCIFileObject *filep,
-                     uword origin, ubig_ora offset, sb1 dir );
-
-sword OCIFileTerm ( dvoid *hndl, OCIError *err );
-
-
-sword OCIFileWrite ( dvoid *hndl, OCIError *err, OCIFileObject   *filep,
-                     dvoid *bufp, ub4 buflen, ub4 *byteswritten );
-
-
-#ifdef ORAXB8_DEFINED
-
-sword   OCILobCopy2 (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *dst_locp,
-                     OCILobLocator *src_locp, oraub8 amount, oraub8 dst_offset, 
-                     oraub8 src_offset);
-
-sword   OCILobErase2 (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                      oraub8 *amount, oraub8 offset);
-
-sword   OCILobGetLength2 (OCISvcCtx *svchp, OCIError *errhp, 
-                          OCILobLocator *locp, oraub8 *lenp);
-
-sword   OCILobLoadFromFile2 (OCISvcCtx *svchp, OCIError *errhp, 
-                             OCILobLocator *dst_locp,
-                             OCILobLocator *src_filep, 
-                             oraub8 amount, oraub8 dst_offset, 
-                             oraub8 src_offset);
-
-sword   OCILobRead2 (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                     oraub8 *byte_amtp, oraub8 *char_amtp, oraub8 offset,
-                     dvoid *bufp, oraub8 bufl, ub1 piece, dvoid *ctxp,
-                     OCICallbackLobRead2 cbfp, ub2 csid, ub1 csfrm);
-
-sword   OCILobTrim2 (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                     oraub8 newlen);
-
-sword   OCILobWrite2 (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                      oraub8 *byte_amtp, oraub8 *char_amtp, oraub8 offset,
-                      dvoid *bufp, oraub8 buflen, ub1 piece, dvoid *ctxp, 
-                      OCICallbackLobWrite2 cbfp, ub2 csid, ub1 csfrm);
-
-sword OCILobWriteAppend2 (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *lobp,
-                          oraub8 *byte_amtp, oraub8 *char_amtp, dvoid *bufp,
-                          oraub8 bufl, ub1 piece, dvoid *ctxp,
-                          OCICallbackLobWrite2 cbfp, ub2 csid, ub1 csfrm);
-
-sword OCILobGetStorageLimit (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *lobp, oraub8 *limitp);
-
-#endif
-
-/*
- ** Initialize the security package
- */
-sword   OCISecurityInitialize (OCISecurity *sechandle, OCIError *error_handle);
-
-sword   OCISecurityTerminate (OCISecurity *sechandle, OCIError *error_handle);
-
-sword OCISecurityOpenWallet(OCISecurity *osshandle,
-                            OCIError *error_handle,
-                            size_t wrllen,
-                            OraText *wallet_resource_locator,
-                            size_t pwdlen,
-                            OraText *password,
-                            nzttWallet *wallet);
-
-sword OCISecurityCloseWallet(OCISecurity *osshandle,
-                             OCIError *error_handle,
-                             nzttWallet *wallet);
-
-sword OCISecurityCreateWallet(OCISecurity *osshandle,
-                              OCIError *error_handle,
-                              size_t wrllen,
-                              OraText *wallet_resource_locator,
-                              size_t pwdlen,
-                              OraText *password,
-                              nzttWallet *wallet);
-
-sword OCISecurityDestroyWallet(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               size_t wrllen,
-                               OraText *wallet_resource_locator,
-                               size_t pwdlen,
-                               OraText *password);
-
-sword OCISecurityStorePersona(OCISecurity *osshandle,
-                              OCIError *error_handle,
-                              nzttPersona **persona,
-                              nzttWallet *wallet);
-
-sword OCISecurityOpenPersona(OCISecurity *osshandle,
-                             OCIError *error_handle,
-                             nzttPersona *persona);
-
-sword OCISecurityClosePersona(OCISecurity *osshandle,
-                              OCIError *error_handle,
-                              nzttPersona *persona);
-
-sword OCISecurityRemovePersona(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               nzttPersona **persona);
-
-sword OCISecurityCreatePersona(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               nzttIdentType identity_type,
-                               nzttCipherType cipher_type,
-                               nzttPersonaDesc *desc,
-                               nzttPersona **persona);
-
-sword OCISecuritySetProtection(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               nzttPersona *persona,
-                               nzttcef crypto_engine_function,
-                               nztttdufmt data_unit_format,
-                               nzttProtInfo *protection_info);
-
-sword OCISecurityGetProtection(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               nzttPersona *persona,
-                               nzttcef crypto_engine_function,
-                               nztttdufmt * data_unit_format_ptr,
-                               nzttProtInfo *protection_info);
-
-sword OCISecurityRemoveIdentity(OCISecurity *osshandle,
-                                OCIError *error_handle,
-                                nzttIdentity **identity_ptr);
-
-sword OCISecurityCreateIdentity(OCISecurity *osshandle,
-                                OCIError *error_handle,
-                                nzttIdentType type,
-                                nzttIdentityDesc *desc,
-                                nzttIdentity **identity_ptr);
-
-sword OCISecurityAbortIdentity(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               nzttIdentity **identity_ptr);
-
-sword OCISecurityFreeIdentity(OCISecurity *osshandle,
-                              OCIError *error_handle,
-                              nzttIdentity **identity_ptr);
-
-
-sword OCISecurityStoreTrustedIdentity(OCISecurity *osshandle,
-                                      OCIError *error_handle,
-                                      nzttIdentity **identity_ptr,
-                                      nzttPersona *persona);
-
-sword OCISecuritySign(OCISecurity *osshandle,
-                      OCIError *error_handle,
-                      nzttPersona *persona,
-                      nzttces signature_state,
-                      size_t input_length,
-                      ub1 *input,
-                      nzttBufferBlock *buffer_block);
-
-sword OCISecuritySignExpansion(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               nzttPersona *persona,
-                               size_t inputlen,
-                               size_t *signature_length);
-
-sword OCISecurityVerify(OCISecurity *osshandle,
-                        OCIError *error_handle,
-                        nzttPersona *persona,
-                        nzttces signature_state,
-                        size_t siglen,
-                        ub1 *signature,
-                        nzttBufferBlock *extracted_message,
-                        boolean *verified,
-                        boolean *validated,
-                        nzttIdentity **signing_party_identity);
-
-sword OCISecurityValidate(OCISecurity *osshandle,
-                          OCIError *error_handle,
-                          nzttPersona *persona,
-                          nzttIdentity *identity,
-                          boolean *validated);
-
-sword OCISecuritySignDetached(OCISecurity *osshandle,
-                              OCIError *error_handle,
-                              nzttPersona *persona,
-                              nzttces signature_state,
-                              size_t input_length,
-                              ub1 * input,
-                              nzttBufferBlock *signature);
-
-sword OCISecuritySignDetExpansion(OCISecurity *osshandle,
-                                  OCIError *error_handle,
-                                  nzttPersona *persona,
-                                  size_t input_length,
-                                  size_t *required_buffer_length);
-
-sword OCISecurityVerifyDetached(OCISecurity *osshandle,
-                                OCIError *error_handle,
-                                nzttPersona *persona,
-                                nzttces signature_state,
-                                size_t data_length,
-                                ub1 *data,
-                                size_t siglen,
-                                ub1 *signature,
-                                boolean *verified,
-                                boolean *validated,
-                                nzttIdentity **signing_party_identity);
-
-sword OCISecurity_PKEncrypt(OCISecurity *osshandle,
-                            OCIError *error_handle,
-                            nzttPersona *persona,
-                            size_t number_of_recipients,
-                            nzttIdentity *recipient_list,
-                            nzttces encryption_state,
-                            size_t input_length,
-                            ub1 *input,
-                            nzttBufferBlock *encrypted_data);
-
-sword OCISecurityPKEncryptExpansion(OCISecurity *osshandle,
-                                    OCIError *error_handle,
-                                    nzttPersona *persona,
-                                    size_t number_recipients,
-                                    size_t input_length,
-                                    size_t *buffer_length_required);
-
-sword OCISecurityPKDecrypt(OCISecurity *osshandle,
-                           OCIError *error_handle,
-                           nzttPersona *persona,
-                           nzttces encryption_state,
-                           size_t input_length,
-                           ub1 *input,
-                           nzttBufferBlock *encrypted_data);
-
-sword OCISecurityEncrypt(OCISecurity *osshandle,
-                         OCIError *error_handle,
-                         nzttPersona *persona,
-                         nzttces encryption_state,
-                         size_t input_length,
-                         ub1 *input,
-                         nzttBufferBlock *encrypted_data);
-
-sword OCISecurityEncryptExpansion(OCISecurity *osshandle,
-                                  OCIError *error_handle,
-                                  nzttPersona *persona,
-                                  size_t input_length,
-                                  size_t *encrypted_data_length);
-
-sword OCISecurityDecrypt(OCISecurity *osshandle,
-                         OCIError *error_handle,
-                         nzttPersona *persona,
-                         nzttces decryption_state,
-                         size_t input_length,
-                         ub1 *input,
-                         nzttBufferBlock *decrypted_data);
-
-sword OCISecurityEnvelope(OCISecurity *osshandle,
-                          OCIError *error_handle,
-                          nzttPersona *persona,
-                          size_t number_of_recipients,
-                          nzttIdentity *identity,
-                          nzttces encryption_state,
-                          size_t input_length,
-                          ub1 *input,
-                          nzttBufferBlock *enveloped_data);
-
-sword OCISecurityDeEnvelope(OCISecurity *osshandle,
-                            OCIError *error_handle,
-                            nzttPersona *persona,
-                            nzttces decryption_state,
-                            size_t input_length,
-                            ub1 *input,
-                            nzttBufferBlock *output_message,
-                            boolean *verified,
-                            boolean *validated,
-                            nzttIdentity **sender_identity);
-
-sword OCISecurityKeyedHash(OCISecurity *osshandle,
-                           OCIError *error_handle,
-                           nzttPersona *persona,
-                           nzttces hash_state,
-                           size_t input_length,
-                           ub1 *input,
-                           nzttBufferBlock *keyed_hash);
-
-sword OCISecurityKeyedHashExpansion(OCISecurity *osshandle,
-                                    OCIError *error_handle,
-                                    nzttPersona *persona,
-                                    size_t input_length,
-                                    size_t *required_buffer_length);
-
-sword OCISecurityHash(OCISecurity *osshandle,
-                      OCIError *error_handle,
-                      nzttPersona *persona,
-                      nzttces hash_state,
-                      size_t input,
-                      ub1 *input_length,
-                      nzttBufferBlock *hash);
-
-sword OCISecurityHashExpansion(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               nzttPersona *persona,
-                               size_t input_length,
-                               size_t *required_buffer_length);
-
-sword OCISecuritySeedRandom(OCISecurity *osshandle,
-                            OCIError *error_handle,
-                            nzttPersona *persona,
-                            size_t seed_length,
-                            ub1 *seed);
-
-sword OCISecurityRandomBytes(OCISecurity *osshandle,
-                             OCIError *error_handle,
-                             nzttPersona *persona,
-                             size_t number_of_bytes_desired,
-                             nzttBufferBlock *random_bytes);
-
-sword OCISecurityRandomNumber(OCISecurity *osshandle,
-                              OCIError *error_handle,
-                              nzttPersona *persona,
-                              uword *random_number_ptr);
-
-sword OCISecurityInitBlock(OCISecurity *osshandle,
-                           OCIError *error_handle,
-                           nzttBufferBlock *buffer_block);
-
-sword OCISecurityReuseBlock(OCISecurity *osshandle,
-                            OCIError *error_handle,
-                            nzttBufferBlock *buffer_block);
-
-sword OCISecurityPurgeBlock(OCISecurity *osshandle,
-                            OCIError *error_handle,
-                            nzttBufferBlock *buffer_block);
-
-sword OCISecuritySetBlock(OCISecurity *osshandle,
-                          OCIError *error_handle,
-                          uword flags_to_set,
-                          size_t buffer_length,
-                          size_t used_buffer_length,
-                          ub1 *buffer,
-                          nzttBufferBlock *buffer_block);
-
-sword OCISecurityGetIdentity(OCISecurity   *osshandle,
-                             OCIError      *error_handle,
-                             size_t         namelen,
-                             OraText          *distinguished_name,
-                             nzttIdentity **identity);
-
-sword OCIAQEnq(OCISvcCtx *svchp, OCIError *errhp, OraText *queue_name,
-                 OCIAQEnqOptions *enqopt, OCIAQMsgProperties *msgprop,
-                 OCIType *payload_tdo, dvoid **payload, dvoid **payload_ind, 
-                 OCIRaw **msgid, ub4 flags); 
-
-sword OCIAQDeq(OCISvcCtx *svchp, OCIError *errhp, OraText *queue_name,
-                 OCIAQDeqOptions *deqopt, OCIAQMsgProperties *msgprop,
-                 OCIType *payload_tdo, dvoid **payload, dvoid **payload_ind, 
-                 OCIRaw **msgid, ub4 flags); 
-
-sword OCIAQEnqArray(OCISvcCtx *svchp, OCIError *errhp, OraText *queue_name,
-                    OCIAQEnqOptions *enqopt, ub4 *iters,
-                    OCIAQMsgProperties **msgprop, OCIType *payload_tdo,
-                    dvoid **payload, dvoid **payload_ind, OCIRaw **msgid,
-                    dvoid *ctxp, OCICallbackAQEnq enqcbfp, ub4 flags);
-
-sword OCIAQDeqArray(OCISvcCtx *svchp, OCIError *errhp, OraText *queue_name,
-                    OCIAQDeqOptions *deqopt, ub4 *iters,
-                    OCIAQMsgProperties **msgprop, OCIType *payload_tdo,
-                    dvoid **payload, dvoid **payload_ind, OCIRaw **msgid,
-                    dvoid *ctxp, OCICallbackAQDeq deqcbfp, ub4 flags);
-
-sword OCIAQListen(OCISvcCtx *svchp, OCIError *errhp, 
-                      OCIAQAgent **agent_list, ub4 num_agents,
-                      sb4 wait, OCIAQAgent **agent,
-                      ub4 flags);
-
-sword OCIExtractInit(dvoid *hndl, OCIError *err);
-
-sword OCIExtractTerm(dvoid *hndl, OCIError *err);
-
-sword OCIExtractReset(dvoid *hndl, OCIError *err);
-
-sword OCIExtractSetNumKeys(dvoid *hndl, OCIError *err, uword numkeys);
-
-sword OCIExtractSetKey(dvoid *hndl, OCIError *err, CONST OraText *name, 
-                       ub1 type, ub4 flag, CONST dvoid *defval, 
-                       CONST sb4 *intrange, CONST OraText *CONST *strlist);
-
-sword OCIExtractFromFile(dvoid *hndl, OCIError *err, ub4 flag, 
-                         OraText *filename);
-
-sword OCIExtractFromStr(dvoid *hndl, OCIError *err, ub4 flag, OraText *input);
-
-sword OCIExtractToInt(dvoid *hndl, OCIError *err, OraText *keyname, 
-                      uword valno, sb4 *retval);
-
-sword OCIExtractToBool(dvoid *hndl, OCIError *err, OraText *keyname, 
-                       uword valno, ub1 *retval);
-
-sword OCIExtractToStr(dvoid *hndl, OCIError *err, OraText *keyname, 
-                      uword valno, OraText *retval, uword buflen);
-
-sword OCIExtractToOCINum(dvoid *hndl, OCIError *err, OraText *keyname, 
-                         uword valno, OCINumber *retval);
-
-sword OCIExtractToList(dvoid *hndl, OCIError *err, uword *numkeys);
-
-sword OCIExtractFromList(dvoid *hndl, OCIError *err, uword index, 
-                         OraText **name, 
-                         ub1 *type, uword *numvals, dvoid ***values);
-
-/* Memory Related Service Interfaces */
-
-sword OCIMemoryAlloc(dvoid *hdl, OCIError *err, dvoid **mem,
-        OCIDuration dur, ub4 size, ub4 flags);
-
-sword OCIMemoryResize(dvoid *hdl, OCIError *err, dvoid **mem,
-                        ub4 newsize, ub4 flags);
-                        
-sword OCIMemoryFree(dvoid *hdl, OCIError *err, dvoid *mem);
-
-sword OCIContextSetValue(dvoid *hdl, OCIError *err, OCIDuration duration,
-                        ub1 *key, ub1 keylen, dvoid *ctx_value);
-
-sword OCIContextGetValue(dvoid *hdl, OCIError *err, ub1 *key,
-                        ub1 keylen, dvoid **ctx_value);
-
-sword OCIContextClearValue(dvoid *hdl, OCIError *err, ub1 *key, 
-                        ub1 keylen);
-
-sword OCIContextGenerateKey(dvoid *hdl, OCIError *err, ub4 *key);
-
-sword OCIMemorySetCurrentIDs(dvoid *hdl, OCIError *err, 
-                             ub4 curr_session_id, ub4 curr_trans_id, 
-                             ub4 curr_stmt_id);
-
-sword OCIPicklerTdsCtxInit(OCIEnv *env, OCIError *err, 
-                           OCIPicklerTdsCtx **tdsc);
-
-sword OCIPicklerTdsCtxFree(OCIEnv *env, OCIError *err, OCIPicklerTdsCtx *tdsc);
-
-sword OCIPicklerTdsInit(OCIEnv *env, OCIError *err, OCIPicklerTdsCtx *tdsc, 
-                                        OCIPicklerTds **tdsh);
-
-sword OCIPicklerTdsFree(OCIEnv *env, OCIError *err, OCIPicklerTds *tdsh);
-
-sword OCIPicklerTdsCreateElementNumber(OCIEnv *env, OCIError *err, 
-                                        OCIPicklerTds *tdsh, ub1 prec, 
-                                        sb1 scale, OCIPicklerTdsElement *elt);
-
-sword OCIPicklerTdsCreateElementChar(OCIEnv *env, OCIError *err, 
-                                     OCIPicklerTds *tdsh, ub2 len, 
-                                     OCIPicklerTdsElement *elt);
-
-sword OCIPicklerTdsCreateElementVarchar(OCIEnv *env, OCIError *err, 
-                                        OCIPicklerTds *tdsh, ub2 len, 
-                                        OCIPicklerTdsElement *elt);
-
-sword OCIPicklerTdsCreateElementRaw(OCIEnv *env, OCIError *err, 
-                                    OCIPicklerTds *tdsh, ub2 len, 
-                                    OCIPicklerTdsElement *elt);
-
-sword OCIPicklerTdsCreateElement(OCIEnv *env, OCIError *err, 
-                                 OCIPicklerTds *tdsh, OCITypeCode dty, 
-                                 OCIPicklerTdsElement *elt);
-
-sword OCIPicklerTdsAddAttr(OCIEnv *env, OCIError *err, 
-                           OCIPicklerTds *tdsh, OCIPicklerTdsElement elt);
-
-sword OCIPicklerTdsGenerate(OCIEnv *env, OCIError *err, 
-                                OCIPicklerTds *tdsh);
-
-sword OCIPicklerTdsGetAttr(OCIEnv *env, OCIError *err, 
-                                CONST OCIPicklerTds *tdsh, ub1  attrno,
-                                OCITypeCode *typ, ub2  *len);
-
-sword OCIPicklerFdoInit(OCIEnv *env, OCIError *err, 
-                                OCIPicklerFdo **fdoh);
-
-sword OCIPicklerFdoFree(OCIEnv *env, OCIError *err, 
-                                OCIPicklerFdo *fdoh);
-
-sword OCIPicklerImageInit(OCIEnv *env, OCIError *err, 
-                          OCIPicklerFdo *fdoh, 
-                          OCIPicklerTds *tdsh,
-                          OCIPicklerImage **imgh);
-
-sword OCIPicklerImageFree(OCIEnv *env, OCIError *err, 
-                                OCIPicklerImage *imgh);
- 
-sword OCIPicklerImageAddScalar(OCIEnv *env, OCIError *err,  
-                               OCIPicklerImage *imgh, 
-                               dvoid *scalar, ub4  len);
- 
-sword OCIPicklerImageAddNullScalar(OCIEnv *env, OCIError *err, 
-                                OCIPicklerImage *imgh);
- 
-sword OCIPicklerImageGenerate(OCIEnv *env, OCIError *err, 
-                                OCIPicklerImage *imgh);
- 
-sword OCIPicklerImageGetScalarSize(OCIEnv *env, OCIError *err, 
-                                OCIPicklerImage *imgh, 
-                                ub4  attrno, ub4  *size);
- 
-sword OCIPicklerImageGetScalar(OCIEnv *env, OCIError *err, 
-                                OCIPicklerImage *imgh, ub4  attrno, 
-                                dvoid *buf, ub4  *len, OCIInd *ind);
-
-sword OCIPicklerImageCollBegin(OCIEnv *env, OCIError *err,
-                OCIPicklerImage *imgh, CONST OCIPicklerTds *colltdsh);
- 
-sword OCIPicklerImageCollAddScalar( OCIEnv *env, OCIError *err,
-                OCIPicklerImage *imgh, dvoid *scalar,
-                ub4 buflen, OCIInd ind);
- 
-sword OCIPicklerImageCollEnd(OCIEnv *env, OCIError *err,
-                OCIPicklerImage *imgh);
- 
-/* should take svcctx for locator stuff */
-sword OCIPicklerImageCollBeginScan(OCIEnv *env, OCIError *err,
-                OCIPicklerImage *imgh, CONST OCIPicklerTds *coll_tdsh,
-                ub4 attrnum, ub4 startidx, OCIInd *ind);
- 
-sword OCIPicklerImageCollGetScalarSize(OCIEnv *env, OCIError *err,
-                CONST OCIPicklerTds *coll_tdsh, ub4 *size);
- 
-sword OCIPicklerImageCollGetScalar(OCIEnv *env, OCIError *err,
-                                   OCIPicklerImage *imgh, dvoid *buf,
-                                   ub4 *buflen, OCIInd *ind);
-
-sword OCIAnyDataGetType(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-        OCITypeCode *tc, OCIType **type);
-
-sword OCIAnyDataIsNull(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-        boolean *isnull);
-
-sword OCIAnyDataConvert(OCISvcCtx *svchp, OCIError *errhp, OCITypeCode tc,
-        OCIType *type, OCIDuration dur, dvoid *ind, dvoid *data_val,
-        ub4 len, OCIAnyData **sdata);
-
-sword OCIAnyDataBeginCreate(OCISvcCtx *svchp, OCIError *errhp, OCITypeCode tc,
-        OCIType *type, OCIDuration dur, OCIAnyData **sdata);
-
-sword OCIAnyDataDestroy(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata);
-
-sword OCIAnyDataAttrSet(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-        OCITypeCode tc, OCIType *type, dvoid *ind, dvoid *attr_val,
-        ub4 length, boolean is_any);
-
-sword OCIAnyDataCollAddElem(OCISvcCtx *svchp, OCIError *errhp,
-        OCIAnyData *sdata, OCITypeCode tc, OCIType *type, dvoid *ind,
-        dvoid *attr_val, ub4 length, boolean is_any, boolean last_elem);
-
-sword OCIAnyDataEndCreate(OCISvcCtx *svchp, OCIError *errhp,
-                          OCIAnyData *sdata);
-
-sword OCIAnyDataAccess(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-        OCITypeCode tc, OCIType *type, dvoid *ind, dvoid *attr_val,
-        ub4 *length);
-
-sword OCIAnyDataGetCurrAttrNum(OCISvcCtx *svchp, OCIError *errhp, 
-                               OCIAnyData *sdata, ub4 *attrnum);
-
-sword OCIAnyDataAttrGet(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-  OCITypeCode tc, OCIType *type, dvoid *ind, dvoid *attr_val,
-        ub4 *length, boolean is_any);
-
-sword OCIAnyDataCollGetElem(OCISvcCtx *svchp, OCIError *errhp,
-  OCIAnyData *sdata,
-  OCITypeCode tc, OCIType *type, dvoid *ind, dvoid *celem_val,
-  ub4 *length, boolean is_any);
-
-
-/*------------------------ OCIAnyDataSet interfaces -------------------------*/
-
-/*
-   NAME
-     OCIAnyDataSetBeginCreate - OCIAnyDataSet Begin Creation
-   PARAMETERS
-     svchp (IN/OUT) - The OCI service context.
-     errhp (IN/OUT) - The OCI error handle. If there is an error, it is
-                      recorded in errhp and this function returns OCI_ERROR.
-                      Diagnostic information can be obtained by calling
-                      OCIErrorGet().
-     typecode       - typecode corresponding to the OCIAnyDataSet.
-     type (IN)      - type corresponding to the OCIAnyDataSet. If the typecode
-                      corresponds to a built-in type (OCI_TYPECODE_NUMBER etc.)
-                      , this parameter can be NULL. It should be non NULL for
-                      user defined types (OCI_TYPECODE_OBJECT,
-                      OCI_TYPECODE_REF, collection types etc.)
-     dur (IN)       - duration for which OCIAnyDataSet is allocated.
-     data_set (OUT) - Initialized OCIAnyDataSet.
-     RETURNS        - error code
-   NOTES
-     This call allocates an OCIAnyDataSet for the duration of dur and
-     initializes it with the type information. The OCIAnyDataSet can hold
-     multiple instances of the given type. For performance reasons, the 
-     OCIAnyDataSet will end up pointing to the passed in OCIType parameter.
-     It is the responsibility of the caller to ensure that the OCIType is
-     longer lived (has allocation duration >= the duration of the OCIAnyData
-     if the OCIType is a transient one, allocation/pin duration >= duration of
-     the OCIAnyData if the OCIType is a persistent one).
-
-*/
-sword OCIAnyDataSetBeginCreate(OCISvcCtx *svchp, OCIError *errhp,
-     OCITypeCode typecode, CONST OCIType *type, OCIDuration dur,
-     OCIAnyDataSet ** data_set);
-
-/*
-   NAME
-     OCIAnyDataSetDestroy  - OCIAnyDataSet Destroy
-   DESCRIPTION
-     This call frees the OCIAnyDataSet allocated using
-     OCIAnyDataSetBeginCreate().
-   RETURNS
-     error code.
-   PARAMETERS
-     svchp (IN/OUT)    - The OCI service context.
-     errhp (IN/OUT)    - The OCI Error handle.
-     data_set (IN/OUT) - OCIAnyDataSet to be freed.
-*/
-sword OCIAnyDataSetDestroy(OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set);
-
-
-/*
-   NAME
-     OCIAnyDataSetAddInstance - OCIAnyDataSet Add an instance
-   DESCRIPTION
-     This call adds a new skeleton instance to the OCIAnyDataSet and all the
-     attributes of the instance are set to NULL. It returns this skeleton
-     instance through the OCIAnyData parameter which can be constructed
-     subsequently by invoking the OCIAnyData API.
-   RETURNS
-     error code.
-   PARAMETERS
-     svchp (IN/OUT)      - The OCI service context.
-     errhp (IN/OUT)      - The OCI Error handle.
-     data_set (IN/OUT)   - OCIAnyDataSet to which a new instance is added.
-     data (IN/OUT)       - OCIAnyData corresponding to the newly added
-                           instance. If (*data) is NULL, a new OCIAnyData will
-                           be allocated for same duration as the OCIAnyDataSet.
-                           If (*data) is not NULL, it will get reused. This
-                           OCIAnyData can be subseqently constructed using the
-                           OCIAnyDataConvert() call or it can be constructed
-                           piece-wise using the OCIAnyDataAttrSet and
-                           OCIAnyDataCollAddElem calls.
-   NOTES
-     No Destruction of the old value is done here. It is the responsibility of
-     the caller to destroy the old value pointed to by (*data) and set (*data)
-     to a null pointer before beginning to make a sequence of this call. No
-     deep copying (of OCIType information nor the data part.) is done in the
-     returned OCIAnyData. This OCIAnyData cannot be used beyond the allocation
-     duration of the OCIAnyDataSet (it is like a reference into the
-     OCIAnyDataSet). The returned OCIAnyData can be reused on subsequent calls
-     to this function, to sequentially add new data instances to the
-     OCIAnyDataSet.
-*/
-sword OCIAnyDataSetAddInstance(OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set, OCIAnyData **data);
-
-/*
-   NAME
-     OCIAnyDataSetEndCreate - OCIAnyDataSet End Creation process.
-   DESCRIPTION
-     This call marks the end of OCIAnyDataSet creation. It should be called
-     after constructing all of its instance(s).
-   RETURNS
-     error code.
-   PARAMETERS
-     svchp (IN/OUT)        - The OCI service context.
-     errhp (IN/OUT)        - The OCI error handle. If there is an error, it is
-                             recorded in errhp and this function returns
-                             OCI_ERROR. Diagnostic information can be obtained
-                             by calling OCIErrorGet().
-     data_set (IN/OUT)     - OCIAnyDataSet that has been fully constructed.
-*/
-sword OCIAnyDataSetEndCreate(OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set);
-
-/*
-   NAME
-     OCIAnyDataSetGetType - OCIAnyDataSet Get Type of an OCIAnyDataSet
-   DESCRIPTION
-     Gets the Type corresponding to an OCIAnyDataSet. It returns the actual
-     pointer to the type maintained inside an OCIAnyDataSet. No copying is
-     done for performance reasons. The client is responsible for not using
-     this type once the OCIAnyDataSet is freed (or its duration ends).
-   RETURNS
-     error code.
-   PARAMETERS
-     svchp (IN/OUT)      - The OCI service context.
-     errhp (IN/OUT)      - The OCI Error handle.
-     data_set (IN)       - Initialized OCIAnyDataSet.
-     tc (OUT)            - The typecode of the type.
-     type (OUT)          - The type corresponding to the OCIAnyDataSet. This
-                           could be null if the OCIAnyData corresponds to a
-                           built-in type.
-*/
-sword OCIAnyDataSetGetType (OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set, OCITypeCode *tc, OCIType **type);
-
-/*
-  NAME
-    OCIAnyDataSetGetCount - OCIAnyDataSet Get Count of instances.
-  DESCRIPTION
-    This call gets the number of instances in the OCIAnyDataSet.
-  RETURNS
-    error code.
-  PARAMETERS
-    svchp (IN/OUT)      - OCI Service Context
-    errhp (IN/OUT)      - OCI Error handle
-    data_set (IN)       - Well formed OCIAnyDataSet.
-    count (OUT)         - number of instances in OCIAnyDataSet
-*/
-sword OCIAnyDataSetGetCount(OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set, ub4 *count);
-
-/*
-  NAME
-    OCIAnyDataSetGetInstance - OCIAnyDataSet Get next instance.
-  DESCRIPTION
-    Only sequential access to the instances in an OCIAnyDataSet is allowed.
-    This call returns the OCIAnyData corresponding to an instance at the
-    current position and updates the current position. Subsequently, the
-    OCIAnyData access routines may be used to access the instance.
-  RETURNS
-    error code. Returns OCI_NO_DATA if the current position is at the end of
-    the set, OCI_SUCCESS otherwise.
-  PARAMETERS
-    svchp (IN/OUT)      - OCI Service Context
-    errhp (IN/OUT)      - OCI Error handle
-    data_set (IN)       - Well formed OCIAnyDataSet
-    data (IN/OUT)       - OCIAnyData corresponding to the instance. If (*data)
-                          is NULL, a new OCIAnyData will be allocated for same
-                          duration as the OCIAnyDataSet. If (*data) is not NULL
-                          , it will get reused. This OCIAnyData can be
-                          subsequently accessed using the OCIAnyDataAccess()
-                          call or piece-wise by using the OCIAnyDataAttrGet()
-                          call.
-  NOTE
-    No Destruction of the old value is done here. It is the responsibility of
-    the caller to destroy the old value pointed to by (*data) and set (*data)
-    to a null pointer before beginning to make a sequence of this call. No deep
-    copying (of OCIType information nor the data part.) is done in the returned
-    OCIAnyData. This OCIAnyData cannot be used beyond the allocation duration
-    of the OCIAnyDataSet (it is like a reference into the OCIAnyDataSet). The
-    returned OCIAnyData can be reused on subsequent calls to this function to
-    sequentially access the OCIAnyDataSet.
-*/
-sword OCIAnyDataSetGetInstance(OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set, OCIAnyData **data);
-
-/*--------------------- End of OCIAnyDataSet interfaces ---------------------*/
-
-sword OCIFormatInit(dvoid *hndl, OCIError *err);
-
-sword OCIFormatString(dvoid *hndl, OCIError *err, OraText *buffer,
-                      sbig_ora bufferLength, sbig_ora *returnLength,
-                      CONST OraText *formatString, ...);
-
-sword OCIFormatTerm(dvoid *hndl, OCIError *err);
-
-sword OCIFormatTUb1(void);
-sword OCIFormatTUb2(void);
-sword OCIFormatTUb4(void);
-sword OCIFormatTUword(void);
-sword OCIFormatTUbig_ora(void);
-sword OCIFormatTSb1(void);
-sword OCIFormatTSb2(void);
-sword OCIFormatTSb4(void);
-sword OCIFormatTSword(void);
-sword OCIFormatTSbig_ora(void);
-sword OCIFormatTEb1(void);
-sword OCIFormatTEb2(void);
-sword OCIFormatTEb4(void);
-sword OCIFormatTEword(void);
-sword OCIFormatTChar(void);
-sword OCIFormatTText(void);
-sword OCIFormatTDouble(void);
-sword OCIFormatTDvoid(void);
-sword OCIFormatTEnd(void);
-
-/*-------------------------- Extensions to XA interface ---------------------*/
-/* ------------------------- xaosvch ----------------------------------------*/
-/*
-   NAME
-     xaosvch  -  XA Oracle get SerViCe Handle
-   DESCRIPTION
-     Given a database name return the service handle that is used by the
-     XA library
-   NOTE
-     This macro has been provided for backward compatibilty with 8.0.2
-*/
-OCISvcCtx *xaosvch(OraText *dbname);
-
-/* ------------------------- xaoSvcCtx --------------------------------------*/
-/*
-   NAME
-     xaoSvcCtx  -  XA Oracle get SerViCe ConTeXt
-   DESCRIPTION
-     Given a database name return the service handle that is used by the
-     XA library
-   NOTE
-     This routine has been provided for APs to get access to the service
-     handle that XA library uses. Without this routine APs must use SQLLIB
-     routine sqlld2 to get access to the Logon data area registered by the
-     XA library
-*/
-OCISvcCtx *xaoSvcCtx(OraText *dbname);
-
-/* ------------------------- xaoEnv -----------------------------------------*/
-/*
-   NAME
-     xaoEnv  -  XA Oracle get ENvironment Handle
-   DESCRIPTION
-     Given a database name return the environment handle that is used by the
-     XA library
-   NOTE
-     This routine has been provided for APs to get access to the environment
-     handle that XA library uses. Without this routine APs must use SQLLIB
-     routine sqlld2 to get access to the Logon data area registered by the
-     XA library
-*/
-OCIEnv *xaoEnv(OraText *dbname);
-
-/* ------------------------- xaosterr ---------------------------------------*/
-/*
-   NAME
-     xaosterr  -  XA Oracle get xa STart ERRor code
-   DESCRIPTION
-     Given an oracle error code return the XA error code
- */
-int xaosterr(OCISvcCtx *svch, sb4 error);
-/*-------------------------- End Extensions ---------------------------------*/
-/*---------------------- Extensions to NLS cartridge service ----------------*/
-/* ----------------------- OCINlsGetInfo ------------------------------------*/
-/*
-   NAME
-     OCINlsGetInfo - Get NLS info from OCI environment handle
-   REMARKS
-     This function generates language information specified by item from OCI 
-     environment handle envhp into an array pointed to by buf within size 
-     limitation as buflen.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR on wrong item.
-   envhp(IN/OUT)
-     OCI environment handle.
-   errhp(IN/OUT)
-     The OCI error handle. If there is an error, it is record in errhp and 
-     this function returns a NULL pointer. Diagnostic information can be 
-     obtained by calling OCIErrorGet().
-   buf(OUT)
-     Pointer to the destination buffer.
-   buflen(IN)
-     The size of destination buffer. The maximum length for each information
-     is 32 bytes.
-   item(IN)
-     It specifies to get which item in OCI environment handle and can be one
-     of following values:
-       OCI_NLS_DAYNAME1 : Native name for Monday.
-       OCI_NLS_DAYNAME2 : Native name for Tuesday.
-       OCI_NLS_DAYNAME3 : Native name for Wednesday.
-       OCI_NLS_DAYNAME4 : Native name for Thursday.
-       OCI_NLS_DAYNAME5 : Native name for Friday.
-       OCI_NLS_DAYNAME6 : Native name for for Saturday.
-       OCI_NLS_DAYNAME7 : Native name for for Sunday.
-       OCI_NLS_ABDAYNAME1 : Native abbreviated name for Monday.
-       OCI_NLS_ABDAYNAME2 : Native abbreviated name for Tuesday.
-       OCI_NLS_ABDAYNAME3 : Native abbreviated name for Wednesday.
-       OCI_NLS_ABDAYNAME4 : Native abbreviated name for Thursday.
-       OCI_NLS_ABDAYNAME5 : Native abbreviated name for Friday.
-       OCI_NLS_ABDAYNAME6 : Native abbreviated name for for Saturday.
-       OCI_NLS_ABDAYNAME7 : Native abbreviated name for for Sunday.
-       OCI_NLS_MONTHNAME1 : Native name for January.
-       OCI_NLS_MONTHNAME2 : Native name for February.
-       OCI_NLS_MONTHNAME3 : Native name for March.
-       OCI_NLS_MONTHNAME4 : Native name for April.
-       OCI_NLS_MONTHNAME5 : Native name for May.
-       OCI_NLS_MONTHNAME6 : Native name for June.
-       OCI_NLS_MONTHNAME7 : Native name for July.
-       OCI_NLS_MONTHNAME8 : Native name for August.
-       OCI_NLS_MONTHNAME9 : Native name for September.
-       OCI_NLS_MONTHNAME10 : Native name for October.
-       OCI_NLS_MONTHNAME11 : Native name for November.
-       OCI_NLS_MONTHNAME12 : Native name for December.
-       OCI_NLS_ABMONTHNAME1 : Native abbreviated name for January.
-       OCI_NLS_ABMONTHNAME2 : Native abbreviated name for February.
-       OCI_NLS_ABMONTHNAME3 : Native abbreviated name for March.
-       OCI_NLS_ABMONTHNAME4 : Native abbreviated name for April.
-       OCI_NLS_ABMONTHNAME5 : Native abbreviated name for May.
-       OCI_NLS_ABMONTHNAME6 : Native abbreviated name for June.
-       OCI_NLS_ABMONTHNAME7 : Native abbreviated name for July.
-       OCI_NLS_ABMONTHNAME8 : Native abbreviated name for August.
-       OCI_NLS_ABMONTHNAME9 : Native abbreviated name for September.
-       OCI_NLS_ABMONTHNAME10 : Native abbreviated name for October.
-       OCI_NLS_ABMONTHNAME11 : Native abbreviated name for November.
-       OCI_NLS_ABMONTHNAME12 : Native abbreviated name for December.
-       OCI_NLS_YES : Native string for affirmative response.
-       OCI_NLS_NO : Native negative response. 
-       OCI_NLS_AM : Native equivalent string of AM.
-       OCI_NLS_PM : Native equivalent string of PM.
-       OCI_NLS_AD : Native equivalent string of AD.
-       OCI_NLS_BC : Native equivalent string of BC.
-       OCI_NLS_DECIMAL : decimal character.
-       OCI_NLS_GROUP : group separator.
-       OCI_NLS_DEBIT : Native symbol of debit.
-       OCI_NLS_CREDIT : Native sumbol of credit.
-       OCI_NLS_DATEFORMAT : Oracle date format.
-       OCI_NLS_INT_CURRENCY: International currency symbol.
-       OCI_NLS_LOC_CURRENCY : Locale currency symbol.
-       OCI_NLS_LANGUAGE : Language name.
-       OCI_NLS_ABLANGUAGE : Abbreviation for language name.
-       OCI_NLS_TERRITORY : Territory name.
-       OCI_NLS_CHARACTER_SET : Character set name.
-       OCI_NLS_LINGUISTIC : Linguistic name.
-       OCI_NLS_CALENDAR : Calendar name.
-       OCI_NLS_DUAL_CURRENCY : Dual currency symbol.
-*/
-sword OCINlsGetInfo(dvoid *envhp, OCIError *errhp, OraText *buf,
-                    size_t buflen, ub2 item);
-
-/* ----------------------- OCINlsNumericInfoGet -----------------------------*/
-/*
-   NAME
-     OCINlsNumericInfoGet - Get NLS numeric info from OCI environment handle
-   REMARKS
-     This function generates numeric language information specified by item 
-     from OCI environment handle envhp into an output number variable.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR on wrong item.
-   envhp(IN/OUT)
-     OCI environment handle. If handle invalid, returns OCI_INVALID_HANDLE.
-   errhp(IN/OUT)
-     The OCI error handle. If there is an error, it is record in errhp and 
-     this function returns a NULL pointer. Diagnostic information can be 
-     obtained by calling OCIErrorGet().
-   val(OUT)
-     Pointer to the output number variable. On OCI_SUCCESS return, it will
-     contain the requested NLS numeric info.
-   item(IN)
-     It specifies to get which item in OCI environment handle and can be one
-     of following values:
-       OCI_NLS_CHARSET_MAXBYTESZ : Maximum character byte size for OCI
-                                   environment or session handle charset
-       OCI_NLS_CHARSET_FIXEDWIDTH: Character byte size for fixed-width charset;
-                                   0 for variable-width charset 
-*/
-sword OCINlsNumericInfoGet(dvoid *envhp, OCIError *errhp, sb4 *val, ub2 item);
-
-/* ----------------------- OCINlsCharSetNameToId ----------------------------*/
-/*
-   NAME
-     OCINlsCharSetNameToId - Get Oracle charset id given Oracle charset name
-   REMARKS
-     This function will get the Oracle character set id corresponding to
-     the given Oracle character set name.
-   RETURNS
-     Oracle character set id for the given Oracle character set name if
-     character set name and OCI handle are valid; otherwise returns 0.
-   envhp(IN/OUT)
-     OCI environment handle.
-   name(IN)
-     Pointer to a null-terminated Oracle character set name whose id 
-     will be returned.
-*/
-ub2 OCINlsCharSetNameToId(dvoid *envhp, const oratext *name);
-
-/* ----------------------- OCINlsCharSetIdToName ----------------------------*/
-/*
-   NAME
-     OCINlsCharSetIdToName - Get Oracle charset name given Oracle charset id
-   REMARKS
-     This function will get the Oracle character set name corresponding to
-     the given Oracle character set id.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle. If handle invalid, returns OCI_INVALID_HANDLE.
-   buf(OUT)
-     Pointer to the destination buffer. On OCI_SUCCESS return, it will contain
-     the null-terminated string for character set name.
-   buflen(IN)
-     Size of destination buffer. Recommended size is OCI_NLS_MAXBUFSZ for
-     guarantee to store an Oracle character set name. If it's smaller than
-     the length of the character set name, the function will return OCI_ERROR.
-   id(IN)
-     Oracle character set id.
-*/
-sword OCINlsCharSetIdToName(dvoid *envhp, oratext *buf, size_t buflen, ub2 id);
-
-/* ----------------------- OCINlsNameMap ------------------------------------*/
-/*
-   NAME
-     OCINlsNameMap - Map NLS naming from Oracle to other standards and vice 
-                     versa
-   REMARKS
-     This function will map NLS naming from Oracle to other standards (such
-     as ISO, IANA) and vice versa.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle. If handle invalid, returns OCI_INVALID_HANDLE.
-   buf(OUT)
-     Pointer to the destination buffer. On OCI_SUCCESS return, it will 
-     contain null-terminated string for requested mapped name.
-   buflen(IN)
-     The size of destination buffer. Recommended size is OCI_NLS_MAXBUFSZ
-     for guarantee to store an NLS name. If it is smaller than the length
-     of the name, the function will return OCI_ERROR.
-   srcbuf(IN)
-     Pointer to null-terminated NLS name. If it is not a valid name in its
-     define scope, the function will return OCI_ERROR.
-   flag(IN)
-     It specifies name mapping direction and can take the following values:
-       OCI_NLS_CS_IANA_TO_ORA : Map character set name from IANA to Oracle
-       OCI_NLS_CS_ORA_TO_IANA : Map character set name from Oracle to IANA
-       OCI_NLS_LANG_ISO_TO_ORA : Map language name from ISO to Oracle
-       OCI_NLS_LANG_ORA_TO_ISO : Map language name from Oracle to ISO
-       OCI_NLS_TERR_ISO_TO_ORA : Map territory name from ISO to Oracle
-       OCI_NLS_TERR_ORA_TO_ISO : Map territory name from Oracle to ISO
-       OCI_NLS_TERR_ISO3_TO_ORA : Map territory name from 3-letter ISO
-                                  abbreviation to Oracle
-       OCI_NLS_TERR_ORA_TO_ISO3 : Map territory name from Oracle to 3-letter
-                                  ISO abbreviation
-*/
-sword OCINlsNameMap(dvoid *envhp, oratext *buf, size_t buflen,
-                    const oratext *srcbuf, ub4 flag);
-
-/* -------------------- OCIMultiByteToWideChar ------------------------------*/
-/*
-   NAME
-     OCIMultiByteToWideChar - Convert a null terminated multibyte string into 
-                              wchar
-   REMARKS
-     This routine converts an entire null-terminated string into the wchar 
-     format. The wchar output buffer will be null-terminated.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set of string.
-   dst (OUT)
-     Destination buffer for wchar.
-   src (IN)
-     Source string to be converted.
-   rsize (OUT)
-     Number of characters converted including null-terminator.
-     If it is a NULL pointer, no number return
-*/
-sword OCIMultiByteToWideChar(dvoid *envhp, OCIWchar *dst, CONST OraText *src,
-                             size_t *rsize);
-
-
-/* --------------------- OCIMultiByteInSizeToWideChar -----------------------*/
-/*
-   NAME
-     OCIMultiByteInSizeToWideChar - Convert a mulitbyte string in length into
-                                    wchar
-   REMARKS
-     This routine converts part of string into the wchar format. It will
-     convert as many complete characters as it can until it reaches output
-     buffer size or input buffer size or it reaches a null-terminator in
-     source string. The output buffer will be null-terminated if space permits.
-     If dstsz is zero, this function will only return number of characters not
-     including ending null terminator for converted string.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set of string.
-   dst (OUT)
-     Pointer to a destination buffer for wchar. It can be NULL pointer when
-     dstsz is zero.
-   dstsz(IN)
-     Destination buffer size in character. If it is zero, this function just
-     returns number of characters will be need for the conversion.
-   src (IN)
-     Source string to be converted.
-   srcsz(IN)
-     Length of source string in byte.
-   rsize(OUT)
-     Number of characters written into destination buffer, or number of
-     characters for converted string is dstsz is zero.
-     If it is NULL pointer, nothing to return.
-*/
-sword OCIMultiByteInSizeToWideChar(dvoid *envhp, OCIWchar *dst,
-                                  size_t dstsz, CONST OraText *src, 
-                                  size_t srcsz, size_t *rsize);
-
-
-/* ---------------------- OCIWideCharToMultiByte ----------------------------*/
-/*
-   NAME
-     OCIWideCharToMultiByte - Convert a null terminated wchar string into
-                              multibyte
-   REMARKS
-     This routine converts an entire null-terminated wide character string into
-     multi-byte string. The output buffer will be null-terminated.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set of string.
-   dst (OUT)
-     Destination buffer for multi-byte string.
-   src (IN)
-     Source wchar string to be converted.
-   rsize (OUT)
-     Number of bytes written into the destination buffer.
-     If it is NULL pointer, nothing to return.
-*/
-sword OCIWideCharToMultiByte(dvoid *envhp, OraText *dst, CONST OCIWchar *src,
-                             size_t *rsize);
-
-
-/* ---------------------- OCIWideCharInSizeToMultiByte ----------------------*/
-/*
-   NAME
-     OCIWideCharInSizeToMultiByte - Convert a wchar string in length into 
-                                    mulitbyte
-   REMARKS
-     This routine converts part of wchar string into the multi-byte format.
-     It will convert as many complete characters as it can until it reaches
-     output buffer size or input buffer size or it reaches a null-terminator
-     in source string. The output buffer will be null-terminated if space
-     permits. If dstsz is zero, the function just returns the size of byte not 
-     including ending null-terminator need to store the converted string.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set of string.
-   dst (OUT)
-     Destination buffer for multi-byte. It can be NULL pointer if dstsz is
-     zero.
-   dstsz(IN)
-     Destination buffer size in byte. If it is zero, it just returns the size
-     of bytes need for converted string.
-   src (IN)
-     Source wchar string to be converted.
-   srcsz(IN)
-     Length of source string in character.
-   rsize(OUT)
-     Number of bytes written into destination buffer, or number of bytes need
-     to store the converted string if dstsz is zero.
-     If it is NULL pointer, nothing to return.
-*/
-sword OCIWideCharInSizeToMultiByte(dvoid *envhp, OraText *dst,
-                                    size_t dstsz, CONST OCIWchar *src,
-                                    size_t srcsz, size_t *rsize);
-
-
-
-/* ----------------------- OCIWideCharIsAlnum -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsAlnum - test whether wc is a letter or decimal digit
-   REMARKS
-     It tests whether wc is a letter or decimal digit.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsAlnum(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsAlpha -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsAlpha - test whether wc is an alphabetic letter
-   REMARKS
-     It tests whether wc is an alphabetic letter
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsAlpha(dvoid *envhp, OCIWchar wc);
-
-
-/* --------------------- OCIWideCharIsCntrl ---------------------------------*/
-/*
-   NAME
-     OCIWideCharIsCntrl - test whether wc is a control character
-   REMARKS
-     It tests whether wc is a control character.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsCntrl(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsDigit -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsDigit - test whether wc is a decimal digit character
-   REMARKS
-     It tests whether wc is a decimal digit character.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsDigit(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsGraph -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsGraph - test whether wc is a graph character
-   REMARKS
-     It tests whether wc is a graph character. A graph character is character
-     with a visible representation and normally includes alphabetic letter,
-     decimal digit, and punctuation.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsGraph(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsLower -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsLower - test whether wc is a lowercase letter
-   REMARKS
-     It tests whether wc is a lowercase letter.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsLower(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsPrint -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsPrint - test whether wc is a printable character
-   REMARKS
-     It tests whether wc is a printable character.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsPrint(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsPunct -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsPunct - test whether wc is a punctuation character
-   REMARKS
-     It tests whether wc is a punctuation character.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsPunct(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsSpace -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsSpace - test whether wc is a space character
-   REMARKS
-     It tests whether wc is a space character. A space character only causes
-     white space in displayed text(for example, space, tab, carriage return,
-     newline, vertical tab or form feed).
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsSpace(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsUpper -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsUpper - test whether wc is a uppercase letter
-   REMARKS
-     It tests whether wc is a uppercase letter.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsUpper(dvoid *envhp, OCIWchar wc);
-
-
-/*----------------------- OCIWideCharIsXdigit -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsXdigit - test whether wc is a hexadecimal digit
-   REMARKS
-     It tests whether wc is a hexadecimal digit ( 0-9, A-F, a-f ).
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsXdigit(dvoid *envhp, OCIWchar wc);
-
-
-/* --------------------- OCIWideCharIsSingleByte ----------------------------*/
-/*
-   NAME
-     OCIWideCharIsSingleByte - test whether wc is a single-byte character
-   REMARKS
-     It tests whether wc is a single-byte character when converted into
-     multi-byte.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsSingleByte(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharToLower -------------------------------*/
-/*
-   NAME
-     OCIWideCharToLower - Convert a wchar into the lowercase
-   REMARKS
-     If there is a lower-case character mapping for wc in the specified locale,
-     it will return the lower-case in wchar, else return wc itself.
-   RETURNS
-     A wchar
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for lowercase mapping.
-*/
-OCIWchar OCIWideCharToLower(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharToUpper -------------------------------*/
-/*
-   NAME
-     OCIWideCharToUpper - Convert a wchar into the uppercase
-   REMARKS
-     If there is a upper-case character mapping for wc in the specified locale,
-     it will return the upper-case in wchar, else return wc itself.
-   RETURNS
-     A wchar
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for uppercase mapping.
-*/
-OCIWchar OCIWideCharToUpper(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharStrcmp --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrcmp - compare two null terminated wchar string
-   REMARKS
-     It compares two wchar string in binary ( based on wchar encoding value ),
-     linguistic, or case-insensitive.
-   RETURNS
-     0, if wstr1 == wstr2.
-     Positive, if wstr1 > wstr2.
-     Negative, if wstr1 < wstr2.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set.
-   wstr1(IN)
-     Pointer to a null-terminated wchar string.
-   wstr2(IN)
-     Pointer to a null-terminated wchar string.
-   flag(IN)
-     It is used to decide the comparison method. It can be taken one of the
-     following values:
-       OCI_NLS_BINARY : for the binary comparison, this is default value.
-       OCI_NLS_LINGUISTIC : for linguistic comparison specified in the locale.
-     This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive
-     comparison.
-*/
-int OCIWideCharStrcmp(dvoid *envhp, CONST OCIWchar *wstr1, 
-                CONST OCIWchar *wstr2, int flag);
-
-
-/* ----------------------- OCIWideCharStrncmp -------------------------------*/
-/*
-   NAME
-     OCIWideCharStrncmp - compare twe wchar string in length
-   REMARKS
-     This function is similar to OCIWideCharStrcmp(), except that at most len1
-     characters from wstr1 and len2 characters from wstr1 are compared. The
-     null-terminator will be taken into the comparison.
-   RETURNS
-     0, if wstr1 = wstr2
-     Positive, if wstr1 > wstr2
-     Negative, if wstr1 < wstr2
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wstr1(IN)
-     Pointer to the first wchar string
-   len1(IN)
-     The length for the first string for comparison
-   wstr2(IN)
-     Pointer to the second wchar string
-   len2(IN)
-     The length for the second string for comparison.
-   flag(IN)
-     It is used to decide the comparison method. It can be taken one of the
-     following values:
-       OCI_NLS_BINARY : for the binary comparison, this is default value.
-       OCI_NLS_LINGUISTIC : for linguistic comparison specified in the locale.
-     This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive 
-     comparison.
-*/
-int OCIWideCharStrncmp(dvoid *envhp, CONST OCIWchar *wstr1, size_t len1,
-                 CONST OCIWchar *wstr2, size_t len2, int flag);
-
-
-/* ----------------------- OCIWideCharStrcat --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrcat - concatenate two wchar strings
-   REMARKS
-     This function appends a copy of the wchar string pointed to by wsrcstr,
-     including the null-terminator to the end of wchar string pointed to by
-     wdststr. It returns the number of character in the result string not
-     including the ending null-terminator.
-   RETURNS
-     number of characters in the result string not including the ending
-     null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wdststr(IN/OUT)
-     Pointer to the destination wchar string for appending.
-   wsrcstr(IN)
-     Pointer to the source wchar string to append.
-*/
-size_t OCIWideCharStrcat(dvoid *envhp, OCIWchar *wdststr,
-                         CONST OCIWchar *wsrcstr);
-
-
-/* ----------------------- OCIWideCharStrchr --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrchr - Search the first occurrence of wchar in a wchar string
-   REMARKS
-     This function searchs for the first occurrence of wc in the wchar string
-     pointed to by wstr. It returns a pointer to the whcar if successful, or
-     a null pointer.
-   RETURNS
-     wchar pointer if successful, otherwise a null pointer.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wstr(IN)
-     Pointer to the wchar string to search
-   wc(IN)
-     Wchar to search for.
-*/
-OCIWchar *OCIWideCharStrchr(dvoid *envhp, CONST OCIWchar *wstr,
-                            OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharStrcpy --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrcpy - copy a wchar string
-   REMARKS
-     This function copies the wchar string pointed to by wsrcstr, including the
-     null-terminator, into the array pointed to by wdststr. It returns the
-     number of character copied not including the ending null-terminator.
-   RETURNS
-     number of characters copied not including the ending null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wdststr(OUT)
-     Pointer to the destination wchar buffer.
-   wsrcstr(IN)
-     Pointer to the source wchar string.
-*/
-size_t OCIWideCharStrcpy(dvoid *envhp, OCIWchar *wdststr,
-                         CONST OCIWchar *wsrcstr);
-
-
-/* ----------------------- OCIWideCharStrlen --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrlen - Return number of character in a wchar string
-   REMARKS
-     This function computes the number of characters in the wchar string
-     pointed to by wstr, not including the null-terminator, and returns
-    this number. 
-   RETURNS
-     number of characters not including ending null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wstr(IN)
-     Pointer to the source wchar string.
-*/
-size_t OCIWideCharStrlen(dvoid *envhp, CONST OCIWchar *wstr);
-
-
-/* ----------------------- OCIWideCharStrncat -------------------------------*/
-/*
-   NAME
-     OCIWideCharStrncat - Concatenate wchar string in length
-   REMARKS
-     This function is similar to OCIWideCharStrcat(), except that at most n
-     characters from wsrcstr are appended to wdststr. Note that the
-     null-terminator in wsrcstr will stop appending. wdststr will be
-     null-terminated.. 
-   RETURNS
-     Number of characters in the result string not including the ending
-     null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wdststr(IN/OUT)
-     Pointer to the destination wchar string for appending.
-   wsrcstr(IN)
-     Pointer to the source wchar string to append.
-   n(IN)
-     Number of characters from wsrcstr to append.
-*/
-size_t OCIWideCharStrncat(dvoid *envhp, OCIWchar *wdststr,
-                          CONST OCIWchar *wsrcstr, size_t n);
-
-
-/* ----------------------- OCIWideCharStrncpy -------------------------------*/
-/*
-   NAME
-     OCIWideCharStrncpy - Copy wchar string in length
-   REMARKS
-     This function is similar to OCIWideCharStrcpy(), except that at most n
-     characters are copied from the array pointed to by wsrcstr to the array
-     pointed to by wdststr. Note that the null-terminator in wdststr will
-     stop coping and result string will be null-terminated.
-   RETURNS
-     number of characters copied not including the ending null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wdststr(OUT)
-     Pointer to the destination wchar buffer.
-   wsrcstr(IN)
-     Pointer to the source wchar string.
-   n(IN)
-     Number of characters from wsrcstr to copy.
-*/
-size_t OCIWideCharStrncpy(dvoid *envhp, OCIWchar *wdststr,
-                          CONST OCIWchar *wsrcstr, size_t n);
-
-
-/* ----------------------- OCIWideCharStrrchr -------------------------------*/
-/*
-   NAME
-     OCIWideCharStrrchr - search the last occurrence of a wchar in wchar string
-   REMARKS
-     This function searchs for the last occurrence of wc in the wchar string
-     pointed to by wstr. It returns a pointer to the whcar if successful, or
-     a null pointer.
-   RETURNS
-     wchar pointer if successful, otherwise a null pointer.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wstr(IN)
-     Pointer to the wchar string to search
-   wc(IN)
-     Wchar to search for.
-*/
-OCIWchar *OCIWideCharStrrchr(dvoid *envhp, CONST OCIWchar *wstr,
-                             OCIWchar wc);
-
-
-/* --------------------- OCIWideCharStrCaseConversion -----------------------*/
-/*
-   NAME
-     OCIWideCharStrCaseConversion - convert a wchar string into lowercase or
-                                    uppercase
-   REMARKS
-     This function convert the wide char string pointed to by wsrcstr into the
-     uppercase or lowercase specified by flag and copies the result into the
-     array pointed to by wdststr. The result string will be null-terminated.
-   RETURNS
-     number of characters for result string not including null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle.
-   wdststr(OUT)
-     Pointer to destination array.
-   wsrcstr(IN)
-     Pointer to source string.
-   flag(IN)
-     Specify the case to convert:
-       OCI_NLS_UPPERCASE : convert to uppercase.
-       OCI_NLS_LOWERCASE: convert to lowercase.
-     This flag can be ORed with OCI_NLS_LINGUISTIC to specify that the
-     linguistic setting in the locale will be used for case conversion.
-*/
-size_t OCIWideCharStrCaseConversion(dvoid *envhp, OCIWchar *wdststr,
-                                    CONST OCIWchar *wsrcstr, ub4 flag);
-
-
-/*---------------------- OCIWideCharDisplayLength ---------------------------*/
-/*
-   NAME
-     OCIWideCharDisplayLength - Calculate the display length for a wchar
-   REMARKS
-     This function determines the number of column positions required for wc
-     in display. It returns number of column positions, or 0 if wc is 
-     null-terminator.
-   RETURNS
-     Number of display positions.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar character.
-*/
-size_t OCIWideCharDisplayLength(dvoid *envhp, OCIWchar wc );
-
-
-/*---------------------- OCIWideCharMultiByteLength -------------------------*/
-/*
-   NAME
-     OCIWideCharMultiByteLength - Determine byte size in multi-byte encoding
-   REMARKS
-     This function determines the number of byte required for wc in multi-byte
-     encoding. It returns number of bytes in multi-byte for wc.
-   RETURNS
-     Number of bytes.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar character.
-*/
-size_t OCIWideCharMultiByteLength(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIMultiByteStrcmp -------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrcmp - Compare two multi-byte strings
-   REMARKS
-     It compares two multi-byte strings in binary ( based on encoding value ),
-     linguistic, or case-insensitive.
-   RETURNS
-     0, if str1 == str2.
-     Positive, if str1 > str2.
-     Negative, if str1 < str2.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set.
-   str1(IN)
-     Pointer to a null-terminated string.
-   str2(IN)
-     Pointer to a null-terminated string.
-   flag(IN)
-     It is used to decide the comparison method. It can be taken one of the
-     following values:
-       OCI_NLS_BINARY: for the binary comparison, this is default value.
-       OCI_NLS_LINGUISTIC: for linguistic comparison specified in the locale.
-     This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive 
-     comparison.
-*/
-int OCIMultiByteStrcmp(dvoid *envhp, CONST OraText *str1,
-                       CONST OraText *str2, int flag);
-
-
-/*----------------------- OCIMultiByteStrncmp -------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrncmp - compare two strings in length
-   REMARKS
-     This function is similar to OCIMultiBytestrcmp(), except that at most
-     len1 bytes from str1 and len2 bytes from str2 are compared. The
-     null-terminator will be taken into the comparison.
-   RETURNS
-     0, if str1 = str2
-     Positive, if str1 > str2
-     Negative, if str1 < str2
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set.
-   str1(IN)
-     Pointer to the first string
-   len1(IN)
-     The length for the first string for comparison
-   str2(IN)
-     Pointer to the second string
-   len2(IN)
-     The length for the second string for comparison.
-   flag(IN)
-     It is used to decide the comparison method. It can be taken one of the
-     following values:
-       OCI_NLS_BINARY: for the binary comparison, this is default value.
-       OCI_NLS_LINGUISTIC: for linguistic comparison specified in the locale.
-     This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive 
-     comparison.
-*/
-int OCIMultiByteStrncmp(dvoid *envhp, CONST OraText *str1, size_t len1,
-                        OraText *str2, size_t len2, int flag);
-
-
-/*----------------------- OCIMultiByteStrcat --------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrcat - concatenate multibyte strings
-   REMARKS
-     This function appends a copy of the multi-byte string pointed to by
-     srcstr, including the null-terminator to the end of string pointed to by
-     dststr. It returns the number of bytes in the result string not including
-     the ending null-terminator.
-   RETURNS
-     number of bytes in the result string not including the ending
-     null-terminator.
-   envhp(IN/OUT)
-     Pointer to OCI environment handle
-   dststr(IN/OUT)
-     Pointer to the destination multi-byte string for appending.
-   srcstr(IN)
-     Pointer to the source string to append.
-*/
-size_t OCIMultiByteStrcat(dvoid *envhp, OraText *dststr,
-                          CONST OraText *srcstr);
-
-
-/*------------------------- OCIMultiByteStrcpy ------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrcpy - copy multibyte string
-   REMARKS
-     This function copies the multi-byte string pointed to by srcstr,
-     including the null-terminator, into the array pointed to by dststr. It
-     returns the number of bytes copied not including the ending 
-     null-terminator.
-   RETURNS
-     number of bytes copied not including the ending null-terminator.
-   envhp(IN/OUT)
-     Pointer to the OCI environment handle.
-   srcstr(OUT)
-     Pointer to the destination buffer.
-   dststr(IN)
-     Pointer to the source multi-byte string.
-*/
-size_t OCIMultiByteStrcpy(dvoid *envhp, OraText *dststr,
-                          CONST OraText *srcstr);
-
-
-/*----------------------- OCIMultiByteStrlen --------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrlen - Calculate multibyte string length
-   REMARKS
-     This function computes the number of bytes in the multi-byte string
-     pointed to by str, not including the null-terminator, and returns this
-     number. 
-   RETURNS
-     number of bytes not including ending null-terminator.
-   str(IN)
-     Pointer to the source multi-byte string.
-*/
-size_t OCIMultiByteStrlen(dvoid *envhp, CONST OraText *str);
-
-
-/*----------------------- OCIMultiByteStrncat -------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrncat - concatenate string in length
-   REMARKS
-     This function is similar to OCIMultiBytestrcat(), except that at most n
-     bytes from srcstr are appended to dststr. Note that the null-terminator in
-     srcstr will stop appending and the function will append as many character
-     as possible within n bytes. dststr will be null-terminated. 
-   RETURNS
-     Number of bytes in the result string not including the ending
-     null-terminator.
-   envhp(IN/OUT)
-     Pointer to OCI environment handle.
-   srcstr(IN/OUT)
-     Pointer to the destination multi-byte string for appending.
-   dststr(IN)
-     Pointer to the source multi-byte string to append.
-   n(IN)
-     Number of bytes from srcstr to append.
-*/
-size_t OCIMultiByteStrncat(dvoid *envhp, OraText *dststr,
-                           CONST OraText *srcstr, size_t n);
-
-
-/*----------------------- OCIMultiByteStrncpy -------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrncpy - copy multibyte string in length
-   REMARKS
-     This function is similar to OCIMultiBytestrcpy(), except that at most n
-     bytes are copied from the array pointed to by srcstr to the array pointed
-     to by dststr. Note that the null-terminator in srcstr will stop coping and
-     the function will copy as many character as possible within n bytes. The 
-     result string will be null-terminated.
-   RETURNS
-     number of bytes copied not including the ending null-terminator.
-   envhp(IN/OUT)
-     Pointer to a OCI environment handle.
-   dststr(IN)
-     Pointer to the source multi-byte string.
-   srcstr(OUT)
-     Pointer to the destination buffer.
-   n(IN)
-     Number of bytes from srcstr to copy.
-*/
-size_t OCIMultiByteStrncpy(dvoid *envhp, OraText *dststr,
-                           CONST OraText *srcstr, size_t n);
-
-
-/*----------------------- OCIMultiByteStrnDisplayLength ---------------------*/
-/*
-   NAME
-     OCIMultiByteStrnDisplayLength - calculate the display length for a
-                                     multibyt string
-   REMARKS
-     This function returns the number of display positions occupied by the 
-     complete characters within the range of n bytes.
-   RETURNS
-     number of display positions.
-   envhp(IN/OUT)
-     OCI environment handle.
-   str(IN)
-     Pointer to a multi-byte string.
-   n(IN)
-     Number of bytes to examine.
-*/
-size_t OCIMultiByteStrnDisplayLength(dvoid *envhp, CONST OraText *str1,
-                                     size_t n);
-
-
-/*---------------------- OCIMultiByteStrCaseConversion  ---------------------*/
-/*
-   NAME
-     OCIMultiByteStrCaseConversion
-   REMARKS
-     This function convert the multi-byte string pointed to by srcstr into the
-     uppercase or lowercase specified by flag and copies the result into the
-     array pointed to by dststr. The result string will be null-terminated.
-   RETURNS
-     number of bytes for result string not including null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle.
-   dststr(OUT)
-     Pointer to destination array.
-   srcstr(IN)
-     Pointer to source string.
-   flag(IN)
-     Specify the case to convert:
-       OCI_NLS_UPPERCASE: convert to uppercase.
-       OCI_NLS_LOWERCASE: convert to lowercase.
-     This flag can be ORed with OCI_NLS_LINGUISTIC to specify that the 
-     linguistic setting in the locale will be used for case conversion.
-*/
-size_t OCIMultiByteStrCaseConversion(dvoid *envhp, OraText *dststr,
-                                     CONST OraText *srcstr, ub4 flag);
-
-
-/*------------------------- OCICharSetToUnicode -----------------------------*/
-/*
-   NAME
-     OCICharSetToUnicode - convert multibyte string into Unicode as UCS2
-   REMARKS
-     This function converts a multi-byte string pointed to by src to Unicode 
-     into the array pointed to by dst. The conversion will stop when it reach
-     to the source limitation or destination limitation. 
-     The function will return number of characters converted into Unicode.
-     If dstlen is zero, it will just return the number of characters for the
-     result without real conversion.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     Pointer to an OCI environment handle
-   dst(OUT)
-     Pointer to a destination buffer
-   dstlen(IN)
-     Size of destination buffer in character
-   src(IN)
-     Pointer to multi-byte source string.
-   srclen(IN)
-     Size of source string in bytes.
-   rsize(OUT)
-     Number of characters converted.
-     If it is a NULL pointer, nothing to return.
-*/
-sword OCICharSetToUnicode(dvoid *envhp, ub2 *dst, size_t dstlen,
-                          CONST OraText *src, size_t  srclen, size_t *rsize);
-
-
-/*------------------------- OCIUnicodeToCharSet -----------------------------*/
-/*
-   NAME
-     OCIUnicodeToCharSet - convert Unicode into multibyte
-   REMARKS
-     This function converts a Unicode string pointed to by src to multi-byte
-     into the array pointed to by dst. The conversion will stop when it reach
-     to the source limitation or destination limitation. The function will
-     return number of bytes converted into multi-byte. If dstlen is zero, it
-     will just return the number of bytes for the result without real 
-     conversion. If a Unicode character is not convertible for the character
-     set specified in OCI environment handle, a replacement character will be
-     used for it. In this case, OCICharSetConversionIsReplacementUsed() will
-     return ture.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     Pointer to an OCI environment handle.
-   dst(OUT)
-     Pointer to a destination buffer.
-   dstlen(IN)
-     Size of destination buffer in byte.
-   src(IN)
-     Pointer to a Unicode string.
-   srclen(IN)
-     Size of source string in characters.
-   rsize(OUT)
-     Number of bytes converted.
-     If it is a NULL pointer, nothing to return.
-*/
-sword OCIUnicodeToCharSet(dvoid *envhp, OraText *dst, size_t dstlen, 
-                           CONST ub2 *src, size_t srclen, size_t *rsize);
-
-/*----------------------- OCINlsCharSetConvert ------------------------------*/
-/*
-   NAME
-     OCINlsCharSetConvert - convert between any two character set.
-   REMARKS
-     This function converts a string pointed to by src in the character set
-     specified with srcid to the array pointed to by dst in the character set
-     specified with dstid. The conversion will stop when it reaches the source
-     limitation or destination limitation. The function will return the number
-     of bytes converted into the destination buffer. Even though either source
-     or destination character set id is OCI_UTF16ID, given and return data
-     length will be represented with the byte length as this function is
-     intended for generic purpose. Note the conversion will not stop at null
-     data.
-     To get character set id from name, OCINlsCharSetNameToId can be used.
-     To check if derived data in the destination buffer contains any
-     replacement character resulting from conversion failure,
-     OCICharSetConversionIsReplacementUsed can be used to get the status.
-     Data alignment should be guaranteed by a caller. For example, UTF-16 data
-     should be aligned to ub2 type.
-
-   RETURNS
-     OCI_SUCCESS or OCI_ERROR.
-   errhp(IN/OUT)
-     OCI error handle. If there is an error, it is recorded in errhp and this
-     function returns a NULL pointer. Diagnostic information can be obtained
-     by calling OCIErrorGet().
-   dstid(IN)
-     Character set id for the destination buffer.
-   dstp(OUT)
-     Pointer to the destination buffer.
-   dstlen(IN)
-     The maximum byte size of destination buffer.
-   srcid(IN)
-     Character set id for the source buffer.
-   srcp(IN)
-     Pointer to the source buffer.
-   srclen(IN)
-     The length byte size of source buffer.
-   rsize(OUT)
-     The number of characters converted. If it is a NULL pointer, nothing to
-     return.
-*/
-sword OCINlsCharSetConvert(dvoid *envhp, OCIError *errhp, 
-                        ub2 dstid, dvoid *dstp, size_t dstlen,
-                        ub2 srcid, CONST dvoid *srcp, size_t srclen,
-                        size_t *rsize);
-
-
-/* ------------------- OCICharsetConversionIsReplacementUsed ----------------*/
-/*
-   NAME
-     OCICharsetConversionIsReplacementUsed - chech if replacement is used in 
-                                             conversion
-   REMARKS
-     This function indicates whether or not the replacement character was used
-     for nonconvertible characters in character set conversion in last invoke
-     of OCICharsetUcs2ToMb().
-   RETURNS
-     TRUE is the replacement character was used in last OCICharsetUcs2ToMb()
-     invoking, else FALSE.
-   envhp(IN/OUT)
-     OCI environment handle. This should be the first handle passed to 
-     OCICharsetUcs2ToMb().
-*/
-boolean OCICharSetConversionIsReplacementUsed(dvoid *envhp);
-
-/*------------------- OCINlsEnvironmentVariableGet -----------------*/
-/*
-   NAME
-     OCINlsEnvironmentVariableGet - get a value of NLS environment variable.
-
-   DESCRIPTION
-     This function retrieves a value of NLS environment variable to the buffer
-     pointed to by val. Data type is determined by the parameter specified by
-     item. Either numeric data or string data can be retrieved.
-
-   RETURNS
-     OCI_SUCCESS or OCI_ERROR.
-
-   PARAMETERS
-   valp(OUT) -
-     Pointer to the buffer.
-   size(IN) -
-     Size of the buffer. This argument is only applicable to string data type,
-     but not to numerical data, in such case, it is ignored.
-   item(IN) -
-     NLS item value, which can be one of following values:
-       OCI_NLS_CHARSET_ID  - NLS_LANG character set id in ub2 data type.
-       OCI_NLS_NCHARSET_ID - NLS_NCHAR character set id in ub2 data type.
-   charset(IN) -
-     Character set id for retrieved string data. If it is 0, NLS_LANG will be
-     used. OCI_UTF16ID is a valid id. In case of numeric data, this argument
-     is ignored.
-   rsize(OUT) -
-     Size of return value.
-
-   NOTE
-     This functions is mainly used for retrieving character set id from either
-     NLS_LANG or NLS_NCHAR environment variables. If NLS_LANG is not set,
-     the default character set id is returned.
-     For future extension, the buffer is capable for storing other data types.
-*/
-sword OCINlsEnvironmentVariableGet(dvoid  *valp, size_t size, ub2 item,
-                                   ub2 charset, size_t *rsize);
-
-
-/*------------------------- OCIMessageOpen ----------------------------------*/
-/*
-   NAME
-     OCIMessageOpen - open a locale message file
-   REMARKS
-     This function opens a message handle for facility of product in a language
-     pointed to by envhp. It first try to open the message file corresponding
-     to envhp for the facility. If it successes, it will use that file to
-     initialize a message handle, else it will use the default message file
-     which is for American language for the facility. The function return a
-     pointer pointed to a message handle into msghp parameter.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     A pointer to OCI environment handle for message language.
-   errhp(IN/OUT)
-     The OCI error handle. If there is an error, it is record in errhp and this
-     function returns a NULL pointer. Diagnostic information can be obtained by
-     calling OCIErrorGet().
-   msghp(OUT)
-     a message handle for return
-   product(IN)
-     A pointer to a product name. Product name is used to locate the directory
-     for message in a system dependent way. For example, in Solaris, the
-     directory of message files for the product `rdbms' is
-     `${ORACLE_HOME}/rdbms'.
-   facility(IN)
-     A pointer to a facility name in the product. It is used to construct a
-     message file name. A message file name follows the conversion with 
-     facility as prefix. For example, the message file name for facility
-     `img' in American language will be `imgus.msb' where `us' is the 
-     abbreviation of American language and `msb' as message binary file 
-     extension.
-   dur(IN)
-     Duration for memory allocation for the return message handle. It can be
-     the following values:
-        OCI_DURATION_CALL
-        OCI_DURATION_STATEMENT
-        OCI_DURATION_SESSION
-        OCI_DURATION_TRANSACTION
-     For the detail description, please refer to Memory Related Service
-     Interfaces section.
-*/
-sword OCIMessageOpen(dvoid *envhp, OCIError *errhp, OCIMsg **msghp,
-                      CONST OraText *product, CONST OraText *facility, 
-                      OCIDuration dur);
- 
-
-/*------------------------- OCIMessageGet -----------------------------------*/
-/*
-   NAME
-     OCIMessageGet - get a locale message from a message handle
-   REMARKS
-     This function will get message with message number identified by msgno and
-     if buflen is not zero, the function will copy the message into the buffer
-     pointed to by msgbuf. If buflen is zero, the message will be copied into
-     a message buffer inside the message handle pointed to by msgh. For both
-     cases. it will return the pointer to the null-terminated message string.
-     If it cannot get the message required, it will return a NULL pointer.
-   RETURNS
-     A pointer to a null-terminated message string on success, otherwise a NULL
-     pointer.
-   msgh(IN/OUT)
-     Pointer to a message handle which was previously opened by
-     OCIMessageOpen().
-   msgno(IN)
-     The message number for getting message.
-   msgbuf(OUT)
-     Pointer to a destination buffer to the message retrieved. If buflen is
-     zero, it can be NULL pointer.
-   buflen(IN)
-     The size of the above destination buffer.
-*/
-OraText *OCIMessageGet(OCIMsg *msgh, ub4 msgno, OraText *msgbuf,
-                       size_t buflen);
-
-/*------------------------- OCIMessageClose ---------------------------------*/
-/*
-   NAME
-     OCIMessageClose - close a message handle
-   REMARKS
-     This function closes a message handle pointed to by msgh and frees any
-     memory associated with this handle.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     A pointer to OCI environment handle for message language.
-   errhp(IN/OUT)
-     The OCI error handle. If there is an error, it is record in errhp and this
-     function returns a NULL pointer. Diagnostic information can be obtained by
-     calling OCIErrorGet().
-   msghp(IN/OUT)
-     A pointer to a message handle which was previously opened by
-     OCIMessageOpen().
-*/
-sword OCIMessageClose(dvoid *envhp, OCIError *errhp, OCIMsg *msghp);
-
-/*--------------- End of Extensions to NLS cartridge service ----------------*/
-
-
-/*----------------- Extensions to OCI Thread interface ---------------------*/
-/*****************************************************************************
-                              DESCRIPTION
-******************************************************************************
-1 Threads Interface
-
-The OCIThread package provides a number of commonly used threading
-primitives for use by Oracle customers.  It offers a portable interface to
-threading capabilities native to various platforms.  It does not implement
-threading on platforms which do not have native threading capability.
-
-OCIThread does not provide a portable implementation of multithreaded 
-facilities.  It only serves as a set of portable covers for native 
-multithreaded facilities.  Therefore, platforms that do not have native 
-support for multi-threading will only be able to support a limited 
-implementation of OCIThread.  As a result, products that rely on all of 
-OCIThread's functionality will not port to all platforms.  Products that must 
-port to all platforms must use only a subset of OCIThread's functionality.  
-This issue is discussed further in later sections of this document.
-
-The OCIThread API is split into four main parts.  Each part is described
-briefly here.  The following subsections describe each in greater detail.
-
- 1. Initialization and Termination Calls
-
-     These calls deal with the initialization and termination of OCIThread.
-     Initialization of OCIThread initializes the OCIThread context which is
-     a member of the OCI environment or session handle.  This context is 
-     required for other OCIThread calls.
-
- 2. Passive Threading Primitives
-
-     The passive threading primitives include primitives to manipulate mutual
-     exclusion (mutex) locks, thread ID's, and thread-specific data keys.
-
-     The reason that these primitives are described as 'passive' is that while
-     their specifications allow for the existence of multiple threads, they do
-     not require it.  This means that it is possible for these primitives to
-     be implemented according to specification in both single-threaded and
-     multi-threaded environments.
-
-     As a result, OCIThread clients that use only these primitives will not
-     require the existence of multiple threads in order to work correctly,
-     i.e., they will be able to work in single-threaded environments without 
-     branching code.
-
- 3. Active Threading Primitives
-
-     Active threading primitives include primitives dealing with the creation,
-     termination, and other manipulation of threads.
-
-     The reason that these primitives are described as 'active' is that they
-     can only be used in true multi-threaded environments.  Their
-     specifications explicitly require that it be possible to have multiple
-     threads.  If you need to determine at runtime whether or not you are in a
-     multi-threaded environment, call OCIThreadIsMulti() before calling an
-     OCIThread active primitive.
-
-
-1.1 Initialization & Termination
-==================================
-
-The types and functions described in this section are associated with the
-initialization and termination of the OCIThread package.  OCIThread must
-be properly initialized before any of its functionality can be used.
-OCIThread's process initialization function, 'OCIThreadProcessInit()',
-must be called with care; see below.
-
-The observed behavior of the initialization and termination functions is the
-same regardless of whether OCIThread is in single-threaded or multi-threaded
-environment.  It is OK to call the initialization functions from both generic
-and operating system specific (OSD) code.
-
-1.1.1 Types
-
-  OCIThreadContext - OCIThread Context
-  -------------------------------------
-
-    Most calls to OCIThread functions take the OCI environment or session 
-    handle as a parameter.  The OCIThread context is part of the OCI 
-    environment or session handle and it must be initialized by calling 
-    'OCIThreadInit()'.  Termination of the OCIThread context occurs by calling
-    'OCIThreadTerm()'.
-
-    The OCIThread context is a private data structure.  Clients must NEVER
-    attempt to examine the contents of the context.
-
-1.1.2  OCIThreadProcessInit
-
-  OCIThreadProcessInit - OCIThread Process INITialization
-  --------------------------------------------------------
-
-    Description
-
-      This function should be called to perform OCIThread process
-      initialization.
-
-    Prototype
-
-      void OCIThreadProcessInit();
-
-    Returns
-
-      Nothing.
-
-    Notes
-
-      Whether or not this function needs to be called depends on how OCI
-      Thread is going to be used.
-
-        * In a single-threaded application, calling this function is optional.
-          If it is called at all, the first call to it must occur before calls
-          to any other OCIThread functions.  Subsequent calls can be made
-          without restriction; they will not have any effect.
-
-        * In a multi-threaded application, this function MUST be called.  The
-          first call to it MUST occur 'strictly before' any other OCIThread
-          calls; i.e., no other calls to OCIThread functions (including other
-          calls to this one) can be concurrent with the first call.
-          Subsequent calls to this function can be made without restriction;
-          they will not have any effect.
-
-
-1.1.3 OCIThreadInit
-
-  OCIThreadInit - OCIThread INITialize
-  -------------------------------------
-
-    Description
-
-      This initializes OCIThread context.
-
-    Prototype
-
-      sword OCIThreadInit(dvoid *hndl, OCIError *err);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal for OCIThread clients to try an examine the memory
-      pointed to by the returned pointer.
-
-      It is safe to make concurrent calls to 'OCIThreadInit()'.  Unlike
-      'OCIThreadProcessInit()',  there is no need to have a first call
-      that occurs before all the others.
-
-      The first time 'OCIThreadInit()' is called, it initilaizes the OCI
-      Thread context.  It also saves a pointer to the context in some system
-      dependent manner.  Subsequent calls to 'OCIThreadInit()' will return
-      the same context.
-
-      Each call to 'OCIThreadInit()' must eventually be matched by a call to
-      'OCIThreadTerm()'.
-
-  OCIThreadTerm - OCIThread TERMinate
-  ------------------------------------
-
-    Description
-
-      This should be called to release the OCIThread context.  It should be
-      called exactly once for each call made to 'OCIThreadInit()'.
-
-    Prototype
-
-      sword OCIThreadTerm(dvoid *hndl, OCIError *err);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is safe to make concurrent calls to 'OCIThreadTerm()'.
-
-      'OCIThreadTerm()' will not do anything until it has been called as
-      many times as 'OCIThreadInit()' has been called.  When that happens,
-      it terminates the OCIThread layer and frees the memory allocated for
-      the context.  Once this happens, the context should not be re-used.
-      It will be necessary to obtain a new one by calling 'OCIThreadInit()'.
-
-
-  OCIThreadIsMulti - OCIThread Is Multi-Threaded?
-  ------------------------------------------------
-
-    Description
-
-      This tells the caller whether the application is running in a
-      multi-threaded environment or a single-threaded environment.
-
-    Prototype
-      boolean OCIThreadIsMulti(void);
-
-    Returns
-
-      TRUE if the environment is multi-threaded;
-      FALSE if the environment is single-threaded.
-
-
-1.2 Passive Threading Primitives
-==================================
-
-1.2.1 Types
-
-The passive threading primitives deal with the manipulation of mutex, 
-thread ID's, and thread-specific data.  Since the specifications of these 
-primitives do not require the existence of multiple threads, they can be 
-used both on multithreaded and single-threaded platforms.
-
-1.2.1.1  OCIThreadMutex - OCIThread Mutual Exclusion Lock
------------------------------------------------------------
-
-  The type 'OCIThreadMutex' is used to represent a mutual exclusion lock
-  (mutex).  A mutex is typically used for one of two purposes: (i) to
-  ensure that only one thread accesses a given set of data at a time, or
-  (ii) to ensure that only one thread executes a given critical section of
-  code at a time.
-
-  Mutexes pointer can be declared as parts of client structures or as 
-  stand-alone variables.  Before they can be used, they must be initialized 
-  using 'OCIThreadMutexInit()'.  Once they are no longer needed, they must be
-  destroyed using 'OCIThreadMutexDestroy()'.  A mutex pointer must NOT be 
-  used after it is destroyed.
-
-  A thread can acquire a mutex by using either 'OCIThreadMutexAcquire()' or
-  'OCIThreadMutexTry()'.  They both ensure that only one thread at a time is
-  allowed to hold a given mutex.  A thread that holds a mutex can release it
-  by calling 'OCIThreadMutexRelease()'.
-
-
-1.2.1.2  OCIThreadKey - OCIThread Key for Thread-Specific Data
-----------------------------------------------------------------
-
-  A key can be thought of as a process-wide variable that has a
-  thread-specific value.  What this means is that all the threads in a
-  process can use any given key.  However, each thread can examine or modify
-  that key independently of the other threads.  The value that a thread sees
-  when it examines the key will always be the same as the value that it last
-  set for the key.  It will not see any values set for the key by the other
-  threads.
-
-  The type of the value held by a key is a 'dvoid *' generic pointer.
-
-  Keys can be created using 'OCIThreadKeyInit()'.  When a key is created, its
-  value is initialized to 'NULL' for all threads.
-
-  A thread can set a key's value using 'OCIThreadKeySet()'.  A thread can
-  get a key's value using 'OCIThreadKeyGet()'.
-
-  The OCIThread key functions will save and retrieve data SPECIFIC TO THE
-  THREAD.  When clients maintain a pool of threads and assign the threads to
-  different tasks, it *may not* be appropriate for a task to use OCIThread
-  key functions to save data associated with it.  Here is a scenario of how
-  things can fail: A thread is assigned to execute the initialization of a
-  task.  During the initialization, the task stored some data related to it
-  in the thread using OCIThread key functions.  After the initialization,
-  the thread is returned back to the threads pool.  Later, the threads pool
-  manager assigned another thread to perform some operations on the task,
-  and the task needs to retrieve those data it stored earlier in
-  initialization.  Since the task is running in another thread, it will not
-  be able to retrieve the same data back!  Applications that use thread
-  pools should be aware of this and be cautious when using OCIThread key
-  functions.
-
-
-1.2.1.3  OCIThreadKeyDestFunc - OCIThread Key Destructor Function Type
-------------------------------------------------------------------------
-
-  This is the type of a pointer to a key's destructor routine.  Keys can be
-  associated with a destructor routine when they are created (see
-  'OCIThreadKeyInit()').
-
-  A key's destructor routine will be called whenever a thread that has a
-  non-NULL value for the key terminates.
-
-  The destructor routine returns nothing and takes one parameter.  The
-  parameter will be the value that was set for key when the thread
-  terminated.
-
-  The destructor routine is guaranteed to be called on a thread's value
-  in the key after the termination of the thread and before process
-  termination.  No more precise guarantee can be made about the timing
-  of the destructor routine call; thus no code in the process may assume
-  any post-condition of the destructor routine.  In particular, the
-  destructor is not guaranteed to execute before a join call on the
-  terminated thread returns.
-
-
-1.2.1.4  OCIThreadId - OCIThread Thread ID
---------------------------------------------
-
-  Type 'OCIThreadId' is the type that will be used to identify a thread.
-  At any given time, no two threads will ever have the same 'OCIThreadId'.
-  However, 'OCIThreadId' values can be recycled; i.e., once a thread dies,
-  a new thread may be created that has the same 'OCIThreadId' as the one
-  that died.  In particular, the thread ID must uniquely identify a thread
-  T within a process, and it must be consistent and valid in all threads U
-  of the process for which it can be guaranteed that T is running
-  concurrently with U.  The thread ID for a thread T must be retrievable
-  within thread T.  This will be done via OCIThreadIdGet().
-
-  The 'OCIThreadId' type supports the concept of a NULL thread ID: the NULL
-  thread ID will never be the same as the ID of an actual thread.
-
-
-
-1.2.2 Function prototypes for passive primitives
---------------------------------------------------
-
-1.2.2.1 Mutex functions
--------------------------
-
-  OCIThreadMutexInit - OCIThread MuteX Initialize
-  -----------------------------------------------
-
-    Description
-
-      This allocate and initializes a mutex.  All mutexes must be 
-      initialized prior to use.
-
-    Prototype
-
-      sword OCIThreadMutexInit(dvoid *hndl, OCIError *err, 
-                               OCIThreadMutex **mutex);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        mutex(OUT):  The mutex to initialize.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      Multiple threads must not initialize the same mutex simultaneously.
-      Also, a mutex must not be reinitialized until it has been destroyed (see
-      'OCIThreadMutexDestroy()').
-
-  OCIThreadMutexDestroy - OCIThread MuteX Destroy
-  -----------------------------------------------
-
-    Description
-
-      This destroys and deallocate a mutex.  Each mutex must be destroyed 
-      once it is no longer needed.
-
-    Prototype
-
-      sword OCIThreadMutexDestroy(dvoid *hndl, OCIError *err,
-                                  OCIThreadMutex **mutex);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        mutex(IN/OUT):   The mutex to destroy.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is not legal to destroy a mutex that is uninitialized or is currently
-      held by a thread.  The destruction of a mutex must not occur concurrently
-      with any other operations on the mutex.  A mutex must not be used after
-      it has been destroyed.
-
-
-  OCIThreadMutexAcquire - OCIThread MuteX Acquire
-  -----------------------------------------------
-
-    Description
-
-      This acquires a mutex for the thread in which it is called.  If the mutex
-      is held by another thread, the calling thread is blocked until it can
-      acquire the mutex.
-
-    Prototype
-
-     sword OCIThreadMutexAcquire(dvoid *hndl, OCIError *err,
-                                 OCIThreadMutex *mutex);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error, it is 
-                     recorded in err and this function returns OCI_ERROR.  
-                     Diagnostic information can be obtained by calling 
-                     OCIErrorGet().
-
-        mutex(IN/OUT):   The mutex to acquire.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal to attempt to acquire an uninitialized mutex.
-
-      This function's behavior is undefined if it is used by a thread to
-      acquire a mutex that is already held by that thread.
-
-
-
-  OCIThreadMutexRelease - OCIThread MuteX Release
-  -----------------------------------------------
-
-    Description
-
-      This releases a mutex.  If there are any threads blocked on the mutex,
-      one of them will acquire it and become unblocked.
-
-    Prototype
-
-      sword OCIThreadMutexRelease(dvoid *hndl, OCIError *err,
-                                  OCIThreadMutex *mutex);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        mutex(IN/OUT):   The mutex to release.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal to attempt to release an uninitialized mutex.  It is also
-      illegal for a thread to release a mutex that it does not hold.
-
-
-  OCIThreadKeyInit - OCIThread KeY Initialize
-  -------------------------------------------
-
-    Description
-
-      This creates a key.  Each call to this routine allocate and generates 
-      a new key that is distinct from all other keys.
-
-    Prototype
-
-      sword OCIThreadKeyInit(dvoid *hndl, OCIError *err, OCIThreadKey **key,
-                             OCIThreadKeyDestFunc destFn);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        key(OUT):    The 'OCIThreadKey' in which to create the new key.
-
-        destFn(IN):  The destructor for the key.  NULL is permitted.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      Once this function executes successfully, a pointer to an allocated and 
-      initialized key is return.  That key can be used with 'OCIThreadKeyGet()'
-      and 'OCIThreadKeySet()'.  The initial value of the key will be 'NULL' for
-      all threads.
-
-      It is illegal for this function to be called more than once to create the
-      same key (i.e., to be called more than once with the same value for the
-      'key' parameter).
-
-      If the 'destFn' parameter is not NULL, the routine pointed to by 'destFn'
-      will be called whenever a thread that has a non-NULL value for the key
-      terminates.  The routine will be called with one parameter.  The
-      parameter will be the key's value for the thread at the time at which the
-      thread terminated.
-      If the key does not need a destructor function, pass NULL for 'destFn'.
-
-
-  OCIThreadKeyDestroy - OCIThread KeY DESTROY
-  -------------------------------------------
-
-   Description
-
-     Destroy and deallocate the key pointed to by 'key'.
-
-    Prototype
-
-      sword OCIThreadKeyDestroy(dvoid *hndl, OCIError *err, 
-                                OCIThreadKey **key);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        key(IN/OUT):  The 'OCIThreadKey' in which to destroy the key.
- 
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      This is different from the destructor function callback passed to the
-      key create routine.  This new destroy function 'OCIThreadKeyDestroy' is 
-      used to terminate any resources OCI THREAD acquired when it created 
-      'key'.  [The 'OCIThreadKeyDestFunc' callback type is a key VALUE 
-      destructor; it does in no way operate on the key itself.]
-
-      This must be called once the user has finished using the key.  Not
-      calling the key destroy function may result in memory leaks.
-
-
-
-
-1.2.2.2 Thread Key operations
--------------------------------
-
-  OCIThreadKeyGet - OCIThread KeY Get value
-  -----------------------------------------
-
-    Description
-
-      This gets the calling thread's current value for a key.
-
-    Prototype
-
-      sword OCIThreadKeyGet(dvoid *hndl, OCIError *err, OCIThreadKey *key,
-                            dvoid **pValue);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        key(IN):          The key.
-
-        pValue(IN/OUT):   The location in which to place the thread-specific
-                          key value.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal to use this function on a key that has not been created
-      using 'OCIThreadKeyInit()'.
-
-      If the calling thread has not yet assigned a value to the key, 'NULL' is
-      placed in the location pointed to by 'pValue'.
-
-
-  OCIThreadKeySet - OCIThread KeY Set value
-  -----------------------------------------
-
-    Description
-
-      This sets the calling thread's value for a key.
-
-    Prototype
-
-      sword OCIThreadKeySet(dvoid *hndl, OCIError *err, OCIThreadKey *key,
-                            dvoid *value);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        key(IN/OUT): The key.
-
-        value(IN):   The thread-specific value to set in the key.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal to use this function on a key that has not been created
-      using 'OCIThreadKeyInit()'.
-
-1.2.2.3  Thread Id
---------------------
-
-  OCIThreadIdInit - OCIThread Thread Id INITialize
-  --------------------------------------------------
-
-    Description
-
-      Allocate and initialize the thread id 'tid'.
-
-    Prototype
-
-      sword OCIThreadIdInit(dvoid *hndl, OCIError *err, OCIThreadId **tid);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid (OUT):   Pointer to the thread ID to initialize.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-
-  OCIThreadIdDestroy - OCIThread Thread Id DESTROY
-  --------------------------------------------------
-
-    Description
-
-      Destroy and deallocate the thread id 'tid'.
-
-    Prototype
-
-      sword OCIThreadIdDestroy(dvoid *hndl, OCIError *err, OCIThreadId **tid);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid(IN/OUT):        Pointer to the thread ID to destroy.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Note
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-
-  OCIThreadIdSet - OCIThread Thread Id Set
-  -----------------------------------------
-
-    Description
-
-      This sets one 'OCIThreadId' to another.
-
-    Prototype
-
-      sword OCIThreadIdSet(dvoid *hndl, OCIError *err, 
-                           OCIThreadId *tidDest,
-                           OCIThreadId *tidSrc);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tidDest(OUT):   This should point to the location of the 'OCIThreadId'
-                        to be set to.
-
-        tidSrc(IN):     This should point to the 'OCIThreadId' to set from.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-
-  OCIThreadIdSetNull - OCIThread Thread Id Set Null
-  ---------------------------------------------------------
-
-    Description
-
-      This sets the NULL thread ID to a given 'OCIThreadId'.
-
-    Prototype
-
-      sword OCIThreadIdSetNull(dvoid *hndl, OCIError *err,
-                               OCIThreadId *tid);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error, it is 
-                     recorded in err and this function returns OCI_ERROR.  
-                     Diagnostic information can be obtained by calling 
-                     OCIErrorGet().
-
-        tid(OUT):    This should point to the 'OCIThreadId' in which to put
-                     the NULL thread ID.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-
-  OCIThreadIdGet - OCIThread Thread Id Get
-  ------------------------------------------
-
-    Description
-
-      This retrieves the 'OCIThreadId' of the thread in which it is called.
-
-    Prototype
-
-      sword OCIThreadIdGet(dvoid *hndl, OCIError *err,
-                           OCIThreadId *tid);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid(OUT):    This should point to the location in which to place the
-                     ID of the calling thread.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-      When OCIThread is used in a single-threaded environment,
-      OCIThreadIdGet() will always place the same value in the location
-      pointed to by 'tid'.  The exact value itself is not important.  The
-      important thing is that it is not the same as the NULL thread ID and
-      that it is always the same value.
-
-
-  OCIThreadIdSame - OCIThread Thread Ids Same?
-  ----------------------------------------------
-
-    Description
-
-      This determines whether or not two 'OCIThreadId's represent the same
-      thread.
-
-    Prototype
-
-      sword OCIThreadIdSame(dvoid *hndl, OCIError *err,
-                            OCIThreadId *tid1, OCIThreadId *tid2,
-                            boolean *result);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid1(IN):   Pointer to the first 'OCIThreadId'.
-
-        tid2(IN):   Pointer to the second 'OCIThreadId'.
-        
-        result(IN/OUT): Pointer to the result.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      If 'tid1' and 'tid2' represent the same thread, 'result' is set to TRUE.
-      Otherwise, 'result' is set to FALSE.
-
-      'result' is set to TRUE if both 'tid1' and 'tid2' are the NULL thread ID.
-
-      'ti1d' and 'tid2' should be initialized by OCIThreadIdInit().
-
-
-  OCIThreadIdNull - OCIThread Thread Id NULL?
-  ---------------------------------------------
-
-    Description
-
-      This determines whether or not a given 'OCIThreadId' is the NULL thread
-      ID.
-
-    Prototype
-
-      sword OCIThreadIdNull(dvoid *hndl, OCIError *err,
-                            OCIThreadId *tid,
-                            boolean *result);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid(IN):    Pointer to the 'OCIThreadId' to check.
-
-        result(IN/OUT): Pointer to the result.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      If 'tid' is the NULL thread ID, 'result' is set to TRUE.  Otherwise, 
-      'result' is set to FALSE.
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-
-1.3 Active Threading Primitives
-=================================
-
-The active threading primitives deal with the manipulation of actual
-threads.  Because the specifications of most of these primitives require
-that it be possible to have multiple threads, they work correctly only in
-the enabled OCIThread; In the disabled OCIThread, they always return
-failure.  The exception is OCIThreadHandleGet(); it may be called in a 
-single-threaded environment, in which case it will have no effect.
-
-Active primitives should only be called by code running in a multi-threaded
-environment.  You can call OCIThreadIsMulti() to determine whether the 
-environment is multi-threaded or single-threaded.
-
-
-1.3.1  Types
---------------
-
-1.3.1.1    OCIThreadHandle - OCIThread Thread Handle
-------------------------------------------------------
-
-  Type 'OCIThreadHandle' is used to manipulate a thread in the active
-  primitives:  OCIThreadJoin()and OCIThreadClose().  A thread handle opened by
-  OCIThreadCreate() must be closed in a matching call to
-  OCIThreadClose().  A thread handle is invalid after the call to
-  OCIThreadClose().
-
-  The distinction between a thread ID and a thread handle in OCIThread usage
-  follows the distinction between the thread ID and the thread handle on
-  Windows NT.  On many platforms, the underlying native types are the same.
-
-
-1.3.2  Functions
-------------------
-
-  OCIThreadHndInit - OCIThread HaNDle Initialize
-  ----------------------------------------------
-
-    Description
-
-      Allocate and initialize the thread handle.
-
-    Prototype
-
-      sword OCIThreadHndInit(dvoid *hndl, OCIError *err, 
-                             OCIThreadHandle **thnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        thnd(OUT):   The address of pointer to the thread handle to initialize.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-
-  OCIThreadHndDestroy - OCIThread HaNDle Destroy
-  ----------------------------------------------
-
-    Description
-
-      Destroy and deallocate the thread handle.
-
-    Prototype
-
-      sword OCIThreadHndDestroy(dvoid *hndl, OCIError *err, 
-                                OCIThreadHandle **thnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        thnd(IN/OUT):  The address of pointer to the thread handle to destroy.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'thnd' should be initialized by OCIThreadHndInit().
-
-
-  OCIThreadCreate - OCIThread Thread Create
-  -----------------------------------------
-
-    Description
-
-      This creates a new thread.
-
-    Prototype
-
-      sword OCIThreadCreate(dvoid *hndl, OCIError *err,
-                            void (*start)(dvoid *), dvoid *arg,
-                            OCIThreadId *tid, OCIThreadHandle *tHnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        start(IN):    The function in which the new thread should begin
-                      execution.
-
-        arg(IN):      The argument to give the function pointed to by 'start'.
-
-        tid(IN/OUT):  If not NULL, gets the ID for the new thread.
-
-        tHnd(IN/OUT): If not NULL, gets the handle for the new thread.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      The new thread will start by executing a call to the function pointed
-      to by 'start' with the argument given by 'arg'.  When that function
-      returns, the new thread will terminate.  The function should not
-      return a value and should accept one parameter, a 'dvoid *'.
-
-      The call to OCIThreadCreate() must be matched by a call to
-      OCIThreadClose() if and only if tHnd is non-NULL.
-
-      If tHnd is NULL, a thread ID placed in *tid will not be valid in the
-      calling thread because the timing of the spawned thread's termination
-      is unknown.
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-      'thnd' should be initialized by OCIThreadHndInit().
-
-
-
-  OCIThreadJoin - OCIThread Thread Join
-  -------------------------------------
-
-    Description
-
-      This function allows the calling thread to 'join' with another thread.
-      It blocks the caller until the specified thread terminates.
-
-    Prototype
-
-      sword OCIThreadJoin(dvoid *hndl, OCIError *err, OCIThreadHandle *tHnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tHnd(IN):    The 'OCIThreadHandle' of the thread to join with.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'thnd' should be initialized by OCIThreadHndInit().
-
-      The result of multiple threads all trying to join with the same thread is
-      undefined.
-
-
-  OCIThreadClose - OCIThread Thread Close
-  ---------------------------------------
-
-   Description
-
-     This function should be called to close a thread handle.
-
-   Prototype
-
-     sword OCIThreadClose(dvoid *hndl, OCIError *err, OCIThreadHandle *tHnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tHnd(IN/OUT):    The OCIThread thread handle to close.
-
-   Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-   Notes
-
-      'thnd' should be initialized by OCIThreadHndInit().
-
-      Both thread handle and the thread ID that was returned by the same call
-      to OCIThreadCreate() are invalid after the call to OCIThreadClose().
-
-
-
-  OCIThreadHandleGet - OCIThread Thread Get Handle
-  ------------------------------------------------
-
-    Description
-
-      Retrieve the 'OCIThreadHandle' of the thread in which it is called.
-
-    Prototype
-
-      sword OCIThreadHandleGet(dvoid *hndl, OCIError *err,
-                               OCIThreadHandle *tHnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tHnd(IN/OUT):      If not NULL, the location to place the thread
-                           handle for the thread.
-
-     Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'thnd' should be initialized by OCIThreadHndInit().   
-
-      The thread handle 'tHnd' retrieved by this function must be closed 
-      with OCIThreadClose() and destroyed by OCIThreadHndDestroy() after it
-      is used.
-
-
-
-
-1.4 Using OCIThread
-=====================
-
-This section summarizes some of the more important details relating to the use
-of OCIThread.
-
-  * Process initialization
-
-    OCIThread only requires that the process initialization function
-    ('OCIThreadProcessInit()') be called when OCIThread is being used in a
-    multi-threaded application.  Failing to call 'OCIThreadProcessInit()' in
-    a single-threaded application is not an error.
-
-  * OCIThread initialization
-
-    Separate calls to 'OCIThreadInit()' will all return the same OCIThread
-    context.
-
-    Also, remember that each call to 'OCIThreadInit()' must eventually be
-    matched by a call to 'OCIThreadTerm()'.
-
-  * Active vs. Passive Threading primitives
-
-    OCIThread client code written without using any active primitives can be
-    compiled and used without change on both single-threaded and
-    multi-threaded platforms.
-
-    OCIThread client code written using active primitives will only work
-    correctly on multi-threaded platforms.  In order to write a version of the
-    same application to run on single-threaded platform, it is necessary to 
-    branch the your code, whether by branching versions of the source file or 
-    by branching at runtime with the OCIThreadIsMulti() call.
-
-******************************************************************************/
-
-/*****************************************************************************
-                         ACTUAL PROTOTYPE DECLARATIONS
-******************************************************************************/
-
-void OCIThreadProcessInit();
-
-sword OCIThreadInit(dvoid *hndl, OCIError *err);
-
-sword OCIThreadTerm(dvoid *hndl, OCIError *err);
-
-boolean OCIThreadIsMulti();
-
-sword OCIThreadMutexInit(dvoid *hndl, OCIError *err,  
-                         OCIThreadMutex **mutex); 
-
-sword OCIThreadMutexDestroy(dvoid *hndl, OCIError *err, 
-                            OCIThreadMutex **mutex);
-
-sword OCIThreadMutexAcquire(dvoid *hndl, OCIError *err,
-                            OCIThreadMutex *mutex);
-
-sword OCIThreadMutexRelease(dvoid *hndl, OCIError *err,
-                            OCIThreadMutex *mutex);
-
-sword OCIThreadKeyInit(dvoid *hndl, OCIError *err, OCIThreadKey **key,
-                       OCIThreadKeyDestFunc destFn);
-
-sword OCIThreadKeyDestroy(dvoid *hndl, OCIError *err, 
-                          OCIThreadKey **key);
-
-sword OCIThreadKeyGet(dvoid *hndl, OCIError *err, OCIThreadKey *key,
-                      dvoid **pValue);
-
-sword OCIThreadKeySet(dvoid *hndl, OCIError *err, OCIThreadKey *key,
-                      dvoid *value);
-
-sword OCIThreadIdInit(dvoid *hndl, OCIError *err, OCIThreadId **tid);
-
-sword OCIThreadIdDestroy(dvoid *hndl, OCIError *err, OCIThreadId **tid);
-
-sword OCIThreadIdSet(dvoid *hndl, OCIError *err, 
-                     OCIThreadId *tidDest, OCIThreadId *tidSrc);
-
-sword OCIThreadIdSetNull(dvoid *hndl, OCIError *err, OCIThreadId *tid);
-
-sword OCIThreadIdGet(dvoid *hndl, OCIError *err, OCIThreadId *tid);
-
-sword OCIThreadIdSame(dvoid *hndl, OCIError *err,
-                      OCIThreadId *tid1, OCIThreadId *tid2,
-                      boolean *result);
-
-sword OCIThreadIdNull(dvoid *hndl, OCIError *err,
-                      OCIThreadId *tid, boolean *result);
-
-sword OCIThreadHndInit(dvoid *hndl, OCIError *err, OCIThreadHandle **thnd);
-
-sword OCIThreadHndDestroy(dvoid *hndl, OCIError *err, OCIThreadHandle **thnd);
-
-sword OCIThreadCreate(dvoid *hndl, OCIError *err,
-                      void (*start)(dvoid *), dvoid *arg,
-                      OCIThreadId *tid, OCIThreadHandle *tHnd);
-
-sword OCIThreadJoin(dvoid *hndl, OCIError *err, OCIThreadHandle *tHnd);
-
-sword OCIThreadClose(dvoid *hndl, OCIError *err, OCIThreadHandle *tHnd);
-
-sword OCIThreadHandleGet(dvoid *hndl, OCIError *err, OCIThreadHandle *tHnd);
-/*----------------- End OCI Thread interface Extensions ---------------------*/
-
-/*------------------ Begin OCI Row Callback Interfaces ----------------------*/
-
-typedef sword (*OCIBindRowCallback)(dvoid *ctx);
-typedef sword (*OCIFetchRowCallback)(dvoid *ctx);
-
-/*------------------ Begin OCI Row Callback Interfaces ----------------------*/
-
-/*--------------- Begin OCI Client Notification Interfaces ------------------*/
-
-typedef ub4 (*OCISubscriptionNotify)(dvoid *ctx, OCISubscription *subscrhp, 
-                                     dvoid *pay, ub4 payl, 
-                                     dvoid *desc, ub4 mode);
-
-sword OCISubscriptionRegister(OCISvcCtx *svchp, OCISubscription **subscrhpp, 
-                              ub2 count, OCIError *errhp, ub4 mode);
-
-
-sword OCISubscriptionPost(OCISvcCtx *svchp, OCISubscription **subscrhpp, 
-                              ub2 count, OCIError *errhp, ub4 mode);
-
-sword OCISubscriptionUnRegister(OCISvcCtx *svchp, OCISubscription *subscrhp, 
-                              OCIError *errhp, ub4 mode);
-
-sword OCISubscriptionDisable(OCISubscription *subscrhp, 
-                           OCIError *errhp, ub4 mode);
-
-sword OCISubscriptionEnable(OCISubscription *subscrhp, 
-                          OCIError *errhp, ub4 mode);
-
-/*------------------- End OCI Publish/Subscribe Interfaces ------------------*/
-
-/*----------------- Extensions to Datetime interfaces -----------------------*/
-/*--------------------- Actual Prototypes -----------------------------------*/
-sword OCIDateTimeGetTime(dvoid *hndl, OCIError *err, OCIDateTime *datetime, 
-                         ub1 *hr, ub1 *mm, ub1 *ss, ub4 *fsec);
-
-sword OCIDateTimeGetDate(dvoid *hndl, OCIError *err,  CONST OCIDateTime *date, 
-                 sb2 *yr, ub1 *mnth, ub1 *dy );
-
-sword OCIDateTimeGetTimeZoneOffset(dvoid *hndl,OCIError *err,
-                                   CONST OCIDateTime *datetime,
-                                   sb1 *hr,sb1 *mm);
-
-sword OCIDateTimeConstruct(dvoid  *hndl,OCIError *err,OCIDateTime *datetime,
-               sb2 yr,ub1 mnth,ub1 dy,ub1 hr,ub1 mm,ub1 ss,ub4 fsec,
-               OraText  *timezone,size_t timezone_length);
-
-sword OCIDateTimeSysTimeStamp(dvoid *hndl, OCIError *err, 
-                              OCIDateTime *sys_date );
-
-sword OCIDateTimeAssign(dvoid *hndl, OCIError *err, CONST OCIDateTime *from, 
-                       OCIDateTime *to);
-
-sword OCIDateTimeToText(dvoid *hndl, OCIError *err, CONST OCIDateTime *date, 
-                        CONST OraText *fmt, ub1 fmt_length, ub1 fsprec, 
-                        CONST OraText *lang_name, size_t lang_length, 
-                        ub4 *buf_size, OraText *buf );
-
-sword OCIDateTimeFromText(dvoid *hndl, OCIError *err, CONST OraText *date_str, 
-             size_t dstr_length, CONST OraText *fmt, ub1 fmt_length,
-             CONST OraText *lang_name, size_t lang_length, OCIDateTime *date );
-
-sword OCIDateTimeCompare(dvoid *hndl, OCIError *err, CONST OCIDateTime *date1, 
-                     CONST OCIDateTime *date2,  sword *result );
-
-sword OCIDateTimeCheck(dvoid *hndl, OCIError *err, CONST OCIDateTime *date, 
-                 ub4 *valid );
-
-sword OCIDateTimeConvert(dvoid *hndl, OCIError *err, OCIDateTime *indate,
-                                OCIDateTime *outdate);
-
-sword OCIDateTimeSubtract(dvoid *hndl, OCIError *err, OCIDateTime *indate1, 
-                OCIDateTime *indate2,    OCIInterval *inter);
-
-sword OCIDateTimeIntervalAdd(dvoid *hndl, OCIError *err, OCIDateTime *datetime,
-         OCIInterval *inter, OCIDateTime *outdatetime);
-
-sword OCIDateTimeIntervalSub(dvoid *hndl, OCIError *err, OCIDateTime *datetime,
-         OCIInterval *inter, OCIDateTime *outdatetime);
-
-sword OCIIntervalSubtract(dvoid *hndl, OCIError *err, OCIInterval *minuend, 
-                            OCIInterval *subtrahend, OCIInterval *result );
-
-sword OCIIntervalAdd(dvoid *hndl, OCIError *err, OCIInterval *addend1, 
-                        OCIInterval *addend2, OCIInterval *result );
-
-sword OCIIntervalMultiply(dvoid *hndl, OCIError *err, CONST OCIInterval *inter,
-                        OCINumber *nfactor, OCIInterval *result );
-
-sword OCIIntervalDivide(dvoid *hndl, OCIError *err, OCIInterval *dividend, 
-                OCINumber *divisor, OCIInterval *result );
-
-sword OCIIntervalCompare(dvoid *hndl, OCIError *err, OCIInterval *inter1, 
-                        OCIInterval *inter2, sword *result );
-
-sword OCIIntervalFromNumber(dvoid *hndl, OCIError *err, OCIInterval *inter, 
-                        OCINumber *number);
-
-sword OCIIntervalFromText( dvoid *hndl, OCIError *err, CONST OraText *inpstr, 
-                size_t str_len, OCIInterval *result );
-
-sword OCIIntervalToText( dvoid *hndl, OCIError *err, CONST OCIInterval *inter,
-                         ub1 lfprec, ub1 fsprec, 
-                        OraText *buffer, size_t buflen, size_t *resultlen );
-
-sword OCIIntervalToNumber(dvoid *hndl, OCIError *err,CONST OCIInterval *inter, 
-                        OCINumber *number);
-
-sword OCIIntervalCheck(dvoid *hndl, OCIError *err, CONST OCIInterval *interval,
-                         ub4 *valid );
-
-sword OCIIntervalAssign(dvoid *hndl, OCIError *err, CONST OCIInterval *ininter,
-                        OCIInterval *outinter );
-
-sword OCIIntervalSetYearMonth(dvoid *hndl, OCIError *err, sb4 yr, sb4 mnth,
-                        OCIInterval *result );
-
-sword OCIIntervalGetYearMonth(dvoid *hndl, OCIError *err, sb4 *yr, sb4 *mnth,
-                        CONST OCIInterval *result );
-
-sword OCIIntervalSetDaySecond(dvoid *hndl, OCIError *err, sb4 dy, sb4 hr,
-                        sb4 mm, sb4 ss, sb4 fsec, OCIInterval *result );
-
-sword OCIIntervalGetDaySecond(dvoid *hndl, OCIError *err, sb4 *dy, sb4 *hr,
-                     sb4 *mm, sb4 *ss, sb4 *fsec, CONST OCIInterval *result );
-
-sword OCIDateTimeToArray(dvoid *hndl, OCIError *err,
-                         CONST OCIDateTime *datetime, CONST OCIInterval *reftz,
-                         ub1 *outarray, ub4 *len, ub1 fsprec);
-
-sword OCIDateTimeFromArray(dvoid *hndl, OCIError *err, ub1 *inarray, ub4 len,
-                           ub1 type, OCIDateTime *datetime,
-                           CONST OCIInterval *reftz, ub1 fsprec);
-
-sword OCIDateTimeGetTimeZoneName(dvoid *hndl, OCIError *err,
-                                 CONST OCIDateTime *datetime, 
-                                 ub1 *buf, ub4 *buflen);
-
-sword OCIIntervalFromTZ(dvoid *hndl, OCIError *err, CONST oratext *inpstring,
-                        size_t str_len, OCIInterval *result);
-
-/*----------------- End Datetime interface Extensions -----------------------*/
-
-/*----------------- Connection Pooling prototypes ---------------------------*/
-sword OCIConnectionPoolCreate(OCIEnv *envhp, OCIError *errhp, OCICPool *poolhp,
-                              OraText **poolName, sb4 *poolNameLen,  
-                              CONST OraText *dblink, sb4 dblinkLen,
-                              ub4 connMin, ub4 connMax, ub4 connIncr,
-                              CONST OraText *poolUserName, sb4 poolUserLen,
-                              CONST OraText *poolPassword, sb4 poolPassLen,
-                              ub4 mode);
-
-sword OCIConnectionPoolDestroy(OCICPool *poolhp,
-                               OCIError *errhp, ub4 mode);
-
-/*----------------- End Connection Pooling prototypes -----------------------*/
-
-/*-------------------- Session Pooling prototypes ---------------------------*/
-
-sword OCISessionPoolCreate (OCIEnv *envhp, OCIError *errhp, OCISPool *spoolhp, 
-                            OraText **poolName, ub4 *poolNameLen, 
-                            CONST OraText *connStr, ub4 connStrLen,
-                            ub4 sessMin, ub4 sessMax, ub4 sessIncr,
-                            OraText *userid, ub4 useridLen,
-                            OraText *password, ub4 passwordLen,
-                            ub4 mode);
-                                                  
-sword OCISessionPoolDestroy (OCISPool *spoolhp,
-                             OCIError *errhp,
-                             ub4 mode);
-                             
-sword OCISessionGet (OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp,
-                     OCIAuthInfo *authhp,
-                     OraText *poolName, ub4 poolName_len, 
-                     CONST OraText *tagInfo, ub4 tagInfo_len,
-                     OraText **retTagInfo, ub4 *retTagInfo_len,
-                     boolean *found, ub4 mode);
-
-sword OCISessionRelease (OCISvcCtx *svchp, OCIError *errhp,
-                         OraText *tag, ub4 tag_len,
-                         ub4 mode);
-
-/*-------------------- End Session Pooling prototypes -----------------------*/
-
-/*-------------------------------- OCIPing ----------------------------------*/
-sword OCIPing (OCISvcCtx *svchp, OCIError *errhp);
-
-
-/*----------------- Kerberos Authentication prototypes ----------------------*/
-
-sword OCIKerbAttrSet(OCISession *trgthndlp, ub4 cred_use, ub1 *ftgt_ticket, 
-                     ub4 ticket_len, ub1 *session_key, ub4 skey_len, 
-                     ub2 ftgt_keytype, ub4 ftgt_ticket_flags, 
-                     sb4 ftgt_auth_time, sb4 ftgt_start_time, 
-                     sb4 ftgt_end_time, sb4 ftgt_renew_time, 
-                     text *ftgt_client_principal, 
-                     ub4 ftgt_client_principal_len, text *ftgt_client_realm,
-                     ub4 ftgt_client_realm_len, OCIError *errhp);
-
-/*------------------- End Kerberos Authentication prototypes ----------------*/
-
-/*---------------------------------------------------------------------------
-                          PRIVATE FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-            /* the following functions are depracated and should not be used */
-#ifdef NEVER
-sword   OCIStmtBindByPos  (OCIStmt *stmtp, OCIBind *bindp, OCIError *errhp,
-                  ub4 position, dvoid *valuep, sb4 value_sz,
-                  ub2 dty, dvoid *indp, ub2 *alenp, ub2 *rcodep,
-                  ub4 maxarr_len, ub4 *curelep, ub4 mode);
-
-
-sword   OCIStmtBindByName  (OCIStmt *stmtp, OCIBind *bindp, OCIError *errhp,
-                  CONST OraText *placeholder, sb4 placeh_len, dvoid *valuep, 
-                  sb4 value_sz, ub2 dty, dvoid *indp, ub2 *alenp, 
-                  ub2 *rcodep, ub4 maxarr_len, ub4 *curelep, ub4 mode);
-
-sword   ocidefn  (OCIStmt *stmtp, OCIDefine *defnp, OCIError *errhp,
-                  ub4 position, dvoid *valuep, sb4 value_sz, ub2 dty,
-                  dvoid *indp, ub2 *rlenp, ub2 *rcodep, ub4 mode);
-#endif /* NEVER */
-
-#endif                                                       /* OCIAP_ORACLE */
diff --git a/src/terralib/drivers/Oracle/OCI/include/ociapr.h b/src/terralib/drivers/Oracle/OCI/include/ociapr.h
deleted file mode 100644
index 147f4dc..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/ociapr.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * $Header$ 
- */
-
-/* Copyright (c) 1991, 1996, 1998, 2000 by Oracle Corporation */
-/*
-   NAME
-     ociapr.h
-   MODIFIED   (MM/DD/YY)
-    dsaha      05/19/00 -  Fix lint
-    sgollapu   05/19/98 -  Change text to OraText
-    dchatter   11/10/95 -  add ognfd() - get native fd
-    lchidamb   04/06/95 -  drop maxdsz from obindps/odefinps
-    slari      04/07/95 -  add opinit
-    dchatter   03/08/95 -  osetpi and ogetpi
-    lchidamb   12/09/94 -  add obindps() and odefinps()
-    dchatter   03/06/95 -  merge changes from branch 1.1.720.2
-    dchatter   11/14/94 -  merge changes from branch 1.1.720.1
-    dchatter   02/08/95 -  olog call; drop onblon
-    dchatter   10/31/94 -  new functions for non-blocking oci
-    rkooi2     11/27/92 -  Changing datatypes to agree with ocidef.h 
-    rkooi2     10/26/92 -  More portability mods 
-    rkooi2     10/18/92 -  Changed to agree with oci.c 
-    sjain      03/16/92 -  Creation 
-*/
-/*
- *  Declare the OCI functions.
- *  Prototype information is included.
- *  Use this header for ANSI C compilers.
- */
-
-#ifndef OCIAPR
-#define OCIAPR
-
-#ifndef ORATYPES
-#include <oratypes.h>
-#endif 
-
-#ifndef OCIDFN
-#include <ocidfn.h>
-#endif 
-
-/*
- * Oci BIND (Piecewise or with Skips) 
- */
-sword  obindps(struct cda_def *cursor, ub1 opcode, OraText *sqlvar, 
-	       sb4 sqlvl, ub1 *pvctx, sb4 progvl, 
-	       sword ftype, sword scale,
-	       sb2 *indp, ub2 *alen, ub2 *arcode, 
-	       sb4 pv_skip, sb4 ind_skip, sb4 alen_skip, sb4 rc_skip,
-	       ub4 maxsiz, ub4 *cursiz,
-	       OraText *fmt, sb4 fmtl, sword fmtt);
-sword  obreak(struct cda_def *lda);
-sword  ocan  (struct cda_def *cursor);
-sword  oclose(struct cda_def *cursor);
-sword  ocof  (struct cda_def *lda);
-sword  ocom  (struct cda_def *lda);
-sword  ocon  (struct cda_def *lda);
-
-
-/*
- * Oci DEFINe (Piecewise or with Skips) 
- */
-sword  odefinps(struct cda_def *cursor, ub1 opcode, sword pos,ub1 *bufctx,
-		sb4 bufl, sword ftype, sword scale, 
-		sb2 *indp, OraText *fmt, sb4 fmtl, sword fmtt, 
-		ub2 *rlen, ub2 *rcode,
-		sb4 pv_skip, sb4 ind_skip, sb4 alen_skip, sb4 rc_skip);
-sword  odessp(struct cda_def *cursor, OraText *objnam, size_t onlen,
-              ub1 *rsv1, size_t rsv1ln, ub1 *rsv2, size_t rsv2ln,
-              ub2 *ovrld, ub2 *pos, ub2 *level, OraText **argnam,
-              ub2 *arnlen, ub2 *dtype, ub1 *defsup, ub1* mode,
-              ub4 *dtsiz, sb2 *prec, sb2 *scale, ub1 *radix,
-              ub4 *spare, ub4 *arrsiz);
-sword  odescr(struct cda_def *cursor, sword pos, sb4 *dbsize,
-                 sb2 *dbtype, sb1 *cbuf, sb4 *cbufl, sb4 *dsize,
-                 sb2 *prec, sb2 *scale, sb2 *nullok);
-sword  oerhms   (struct cda_def *lda, sb2 rcode, OraText *buf,
-                 sword bufsiz);
-sword  oermsg   (sb2 rcode, OraText *buf);
-sword  oexec    (struct cda_def *cursor);
-sword  oexfet   (struct cda_def *cursor, ub4 nrows,
-                 sword cancel, sword exact);
-sword  oexn     (struct cda_def *cursor, sword iters, sword rowoff);
-sword  ofen     (struct cda_def *cursor, sword nrows);
-sword  ofetch   (struct cda_def *cursor);
-sword  oflng    (struct cda_def *cursor, sword pos, ub1 *buf,
-                 sb4 bufl, sword dtype, ub4 *retl, sb4 offset);
-sword  ogetpi   (struct cda_def *cursor, ub1 *piecep, dvoid **ctxpp, 
-                 ub4 *iterp, ub4 *indexp);
-sword  oopt     (struct cda_def *cursor, sword rbopt, sword waitopt);
-sword  opinit   (ub4 mode);
-sword  olog     (struct cda_def *lda, ub1* hda,
-                 OraText *uid, sword uidl,
-                 OraText *pswd, sword pswdl, 
-                 OraText *conn, sword connl, 
-                 ub4 mode);
-sword  ologof   (struct cda_def *lda);
-sword  oopen    (struct cda_def *cursor, struct cda_def *lda,
-                 OraText *dbn, sword dbnl, sword arsize,
-                 OraText *uid, sword uidl);
-sword  oparse   (struct cda_def *cursor, OraText *sqlstm, sb4 sqllen,
-                 sword defflg, ub4 lngflg);
-sword  orol     (struct cda_def *lda);
-sword  osetpi   (struct cda_def *cursor, ub1 piece, dvoid *bufp, ub4 *lenp);
-
-void sqlld2     (struct cda_def *lda, OraText *cname, sb4 *cnlen);
-void sqllda     (struct cda_def *lda);
-
-/* non-blocking functions */
-sword onbset    (struct cda_def *lda ); 
-sword onbtst    (struct cda_def *lda ); 
-sword onbclr    (struct cda_def *lda ); 
-sword ognfd     (struct cda_def *lda, dvoid *fdp);
-
-
-/* 
- * OBSOLETE CALLS 
- */
-
-/* 
- * OBSOLETE BIND CALLS
- */
-sword  obndra(struct cda_def *cursor, OraText *sqlvar, sword sqlvl,
-                 ub1 *progv, sword progvl, sword ftype, sword scale,
-                 sb2 *indp, ub2 *alen, ub2 *arcode, ub4 maxsiz,
-                 ub4 *cursiz, OraText *fmt, sword fmtl, sword fmtt);
-sword  obndrn(struct cda_def *cursor, sword sqlvn, ub1 *progv,
-                 sword progvl, sword ftype, sword scale, sb2 *indp,
-                 OraText *fmt, sword fmtl, sword fmtt);
-sword  obndrv(struct cda_def *cursor, OraText *sqlvar, sword sqlvl,
-                 ub1 *progv, sword progvl, sword ftype, sword scale,
-                 sb2 *indp, OraText *fmt, sword fmtl, sword fmtt);
-
-/*
- * OBSOLETE DEFINE CALLS
- */
-sword  odefin(struct cda_def *cursor, sword pos, ub1 *buf,
-	      sword bufl, sword ftype, sword scale, sb2 *indp,
-	      OraText *fmt, sword fmtl, sword fmtt, ub2 *rlen, ub2 *rcode);
-
-/* older calls ; preferred equivalent calls above */
-
-sword  oname    (struct cda_def *cursor, sword pos, sb1 *tbuf,
-                 sb2 *tbufl, sb1 *buf, sb2 *bufl);
-sword  orlon    (struct cda_def *lda, ub1 *hda, 
-                 OraText *uid, sword uidl, 
-                 OraText *pswd, sword pswdl, 
-                 sword audit);
-sword  olon     (struct cda_def *lda, OraText *uid, sword uidl,
-                 OraText *pswd, sword pswdl, sword audit);
-sword  osql3    (struct cda_def *cda, OraText *sqlstm, sword sqllen);
-sword  odsc     (struct cda_def *cursor, sword pos, sb2 *dbsize,
-                 sb2 *fsize, sb2 *rcode, sb2 *dtype, sb1 *buf,
-                 sb2 *bufl, sb2 *dsize);
-
-#endif /* OCIAPR */
diff --git a/src/terralib/drivers/Oracle/OCI/include/ocidef.h b/src/terralib/drivers/Oracle/OCI/include/ocidef.h
deleted file mode 100644
index ac467ed..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/ocidef.h
+++ /dev/null
@@ -1,888 +0,0 @@
-/*
- * $Header$ ocidef.h 
- */
-
-/* Copyright (c) 1981, 2003, Oracle Corporation.  All rights reserved.  */
-/* Copyright (c) 1984, 2003, Oracle Corporation.  All rights reserved.  */
- 
-/*
-NAME
-  ocidef
-CONTENTS
-  Oracle Call Interface cursor area and LDA definitions
-NOTES
-  none
-OWNER
-  Oates
-DATE
-  09/07/82
-MODIFIED
-    srseshad   03/25/03  - convert oci public api to ansi
-    csteinba   11/05/02  - bug 2521931: redefine OTYACL
-    aahluwal   06/03/02  - bug 2360115
-    bpalaval   02/08/01  - Change text to oratext.
-    chliang    02/01/01  - fix olint error.
-    bpalaval   11/16/00  - Bug 1244685 : Fix ALTER CLUSTER issue..
-    slari      11/08/00  - remove functions duplicated in ociapr.h
-    whe        09/01/99 -  976457:check __cplusplus for C++ code
-    skmishra   04/23/97 -  Provide C++ compatibility
-    lchidamb   06/26/96 -  put upidef.h, riddef.h within #ifndef
-    slari      06/12/96 -  add ocigft_getFcnType
-    dchatter   11/10/95 -  ocignfd - oci get native file descriptor
-    slari      05/11/95 -  change OCIEVDEF/OCIEVTSF to UPIEVDEF/UPIEVTSF
-    dchatter   04/06/95 -  add ifdef flags around OCI_flags
-    lchidamb   04/06/95 -  drop maxdsz from ocibndps/ocidfnps
-    slari      04/07/95 -  rename opinit to ocipin
-    slari      03/13/95 -  thread safety changes
-    dchatter   03/08/95 -  piece definitions OCI_*_PIECE
-    lchidamb   12/06/94 -  add support for binding/defining with skips
-    dchatter   03/06/95 -  merge changes from branch 1.12.720.1
-    dchatter   02/06/95 -  add defines for login mode parameters
-    dchatter   07/06/94 -  Deleting CRSCHK, with refcursor, no way to set this
-    dchatter   06/13/94 -  add a new LDA flag LDANBL
-    rkooi      11/18/92 -  update ocidpr interface 
-    mmoore     10/31/92 -  add ocidpr 
-    gpongrac   11/17/92 -  fix oexfet prototype 
-    sjain      01/03/92 -  Add ocibra 
-    rjenkins   11/04/91 -  adding prototypes for oparse and oexfet 
-    sjain      04/15/91 -         Change ocistf proto 
-    sjain      04/01/91 -         Rearrange oty codes. Add new ones 
-    Jain       12/03/90 - Add #define for new describe call
-    Jain       11/29/90 - Add new function code for the new oci calls
-    Mendels    01/20/89 - fix 19170: make ocitbl CONST_DATA
-    Kabcene    01/27/88 - change interfaces to match V5
-    Navab      12/09/87 - add a parameter to ocierr call
-    Navab      11/30/87 - add ocierr, rename ocioer
-    Navab      10/08/87 - add prototypes for procedure declarations
-    Howard     09/07/87 - endif blah
-    Howard     05/11/87 - Add OTY types
-    Howard     04/27/87 - move ocldef defines here
-    Oates      10/15/85 - Add OCANCEL
-    Oates      09/30/85 - Implement ORA*Net
-    Oates      06/27/85 - Make datatype compatible with upidef.h
-    Andy       05/07/85 - delete CSRFBPIC
-*/
-
-#ifndef UPIDEF 
-#include <upidef.h>
-#endif
-
-#ifndef RIDDEF
-#include <riddef.h>
-#endif
-
-#include <ociapr.h>
-
-#ifndef OCIDEF
-#define OCIDEF
- 
- 
-#define CSRCHECK 172                                   /* csrdef is a cursor */
-#define LDACHECK 202                          /* csrdef is a login data area */
-struct csrdef
-{
-   b2      csrrc;                /* return code: v2 codes, v4 codes negative */
-   ub2     csrft;                                           /* function type */
-   ub4     csrrpc;                                   /* rows processed count */
-   ub2     csrpeo;                                     /* parse error offset */
-   ub1     csrfc;                                           /* function code */
-   ub1     csrlfl;                     /* lda flag to indicate type of login */
-   ub2     csrarc;                        /* actual untranslated return code */
-   ub1     csrwrn;                                          /* warning flags */
-   ub1     csrflg;                                           /* error action */
-   word    csrcn;                                           /* cursor number */
-   riddef  csrrid;                                        /* rowid structure */
-   word    csrose;                                /* os dependent error code */
-   ub1     csrchk;                      /* check byte = CSRCHECK - in cursor */
-                                        /* check byte = LDACHECK - in    LDA */
-   struct hstdef *csrhst;                              /* pointer to the hst */
-};
-typedef struct csrdef csrdef;
-typedef struct csrdef ldadef;                    /* lda is the same as a csr */
- 
- 
-/* values for csrlfl */
-#define LDAFLG 1                                            /* ...via ologon */
-#define LDAFLO 2                                     /* ...via olon or orlon */
-#define LDANBL 3                                  /* ...nb logon in progress */
- 
-/* valuses for crsfc */
-#define csrfpa 2                                                  /* ...OSQL */
-#define csrfex 4                                                 /* ...OEXEC */
-#define csrfbi 6                                                 /* ...OBIND */
-#define csrfdb 8                                                /* ...ODFINN */
-#define csrfdi 10                                               /* ...ODSRBN */
-#define csrffe 12                                               /* ...OFETCH */
-#define csrfop 14                                                /* ...OOPEN */
-#define csrfcl 16                                               /* ...OCLOSE */
-#define csrfds 22                                                 /* ...ODSC */
-#define csrfnm 24                                                /* ...ONAME */
-#define csrfp3 26                                                /* ...OSQL3 */
-#define csrfbr 28                                               /* ...OBNDRV */
-#define csrfbx 30                                               /* ...OBNDRN */
-/*#defe csrfdf 32*/                                                  /* ???? */
-#define csrfso 34                                                 /* ...OOPT */
-#define csrfre 36                                               /* ...ORESUM */
-#define csrfbn 50                                               /* ...OBINDN */
-#define csrfca 52                                               /* ..OCANCEL */
-#define csrfsd 54                                                 /* ..OSQLD */
-#define csrfef 56                                                /* ..OEXFEN */
-#define csrfln 58                                                 /* ..OFLNG */
-#define csrfdp 60                                                /* ..ODSCSP */
-#define csrfba 62                                                /* ..OBNDRA */
-#define csrfbps 63                                               /*..OBINDPS */
-#define csrfdps 64                                              /*..ODEFINPS */
-#define csrfgpi 65                                              /* ...OGETPI */
-#define csrfspi 66                                              /* ...OSETPI */
-
-/* values for csrwrn */
-#define CSRWANY  0x01                         /* there is a warning flag set */
-#define CSRWTRUN 0x02                           /* a data item was truncated */
-#define CSRWNVIC 0x04      /* NULL values were used in an aggregate function */
-#define CSRWITCE 0x08           /* column count not equal to into list count */
-#define CSRWUDNW 0x10               /* update or delete without where clause */
-#define CSRWRSV0 0x20
-#define CSRWROLL 0x40                                   /* rollback required */
-#define CSRWRCHG 0x80       /* change after query start on select for update */
- 
-/* values fro csrflg */
-#define CSRFSPND 0x01                         /* current operation suspended */
-#define CSRFATAL 0x02            /* fatal operation: transaction rolled back */
-#define CSRFBROW 0x04                              /* current row backed out */
-#define CSRFREFC 0x08     /* ref cursor type CRSCHK disabled for this cursor */
-#define CSRFNOAR 0x10     /* ref cursor type binds, so no array bind/execute */
- 
-/* define function codes; in order of octdef.h */
-#define OTYCTB 1                                             /* CREATE TABLE */
-#define OTYSER 2                                                 /* set role */
-#define OTYINS 3                                                   /* INSERT */
-#define OTYSEL 4                                                   /* SELECT */
-#define OTYUPD 5                                                   /* UPDATE */
-#define OTYDRO 6                                                /* drop role */
-#define OTYDVW 7                                                /* DROP VIEW */
-                                                  /* once was validate index */
-                                                /* once was create partition */
-                                                 /* once was alter partition */
-#define OTYDTB 8                                               /* DROP TABLE */
-                                                     /* once was alter space */
-                                                      /* once was drop space */
-#define OTYDEL 9                                                   /* DELETE */
-#define OTYCVW 10                                             /* create view */
-#define OTYDUS 11                                               /* drop user */
-#define OTYCRO 12                                             /* create role */
-#define OTYCSQ 13                                         /* create sequence */
-#define OTYASQ 14                                          /* alter sequence */
-#define OTYACL 15                                           /* alter cluster */
-#define OTYDSQ 16                                           /* drop sequence */
-#define OTYCSC 17                                           /* create schema */
-#define OTYCCL 18                                          /* CREATE CLUSTER */
-                                                   /* once was alter cluster */
-#define OTYCUS 19                                             /* create user */
-#define OTYCIX 20                                            /* CREATE INDEX */
-#define OTYDIX 21                                              /* DROP INDEX */
-#define OTYDCL 22                                            /* DROP CLUSTER */
-#define OTYVIX 23                                          /* validate index */
-#define OTYCPR 24                                        /* create procedure */
-#define OTYAPR 25                                         /* alter procedure */
-#define OTYATB 26                                             /* alter table */
-                                                        /* once was evaluate */
-#define OTYXPL 27                                                 /* explain */
-#define OTYGRA 28                                                   /* grant */
-#define OTYREV 29                                                  /* revoke */
-#define OTYCSY 30                                          /* create synonym */
-#define OTYDSY 31                                            /* drop synonym */
-#define OTYASY 32                                 /* alter system switch log */
-#define OTYSET 33                                         /* set transaction */
-#define OTYPLS 34                                          /* pl/sql execute */
-#define OTYLTB 35                                                    /* lock */
-#define OTYNOP 36                                                    /* noop */
-#define OTYRNM 37                                                  /* rename */
-#define OTYCMT 38                                                 /* comment */
-#define OTYAUD 39                                                   /* audit */
-#define OTYNOA 40                                                /* no audit */
-#define OTYAIX 41                                             /* ALTER INDEX */
-#define OTYCED 42                                /* create external database */
-#define OTYDED 43                                  /* drop external database */
-#define OTYCDB 44                                         /* create database */
-#define OTYADB 45                                          /* alter database */
-#define OTYCRS 46                                 /* create rollback segment */
-#define OTYARS 47                                  /* alter rollback segment */
-#define OTYDRS 48                                   /* drop rollback segment */
-#define OTYCTS 49                                       /* create tablespace */
-#define OTYATS 50                                        /* alter tablespace */
-#define OTYDTS 51                                         /* drop tablespace */
-#define OTYASE 52                                           /* alter session */
-#define OTYAUR 53                                              /* alter user */
-#define OTYCWK 54                                           /* commit (work) */
-#define OTYROL 55                                                /* rollback */
-#define OTYSPT 56                                               /* savepoint */
- 
-/* For number greater than 56 the the type is the same as defined in 
-** octdef.h for that number. So for completion look at octdef.h 
-*/
-
-#define OTYDEV OTYCVW                       /* old DEFINE VIEW = create view */
- 
-/* FUNCTION CODES */
-#define OCLFPA  2                                            /* parse - OSQL */
-#define OCLFEX  4                                         /* execute - OEXEC */
-#define OCLFBI  6                                    /* BIND by name - OBIND */
-#define OCLFDB  8                                 /* define buffer -  ODEFIN */
-#define OCLFDI  10                                   /* describe item - ODSC */
-#define OCLFFE  12                                         /* fetch - OFETCH */
-#define OCLFOC  14                                    /* open cursor - OOPEN */
-#       define OCLFLI  OCLFOC            /* old name for open cursor - OOPEN */
-#define OCLFCC  16                                  /* close cursor - OCLOSE */
-#       define OCLFLO  OCLFCC          /* old name for close cursor - OCLOSE */
-#define OCLFDS  22                                        /* describe - ODSC */
-#define OCLFON  24                     /* get table and column names - ONAME */
-#define OCLFP3  26                                          /* parse - OSQL3 */
-#define OCLFBR  28                        /* bind reference by name - OBNDRV */
-#define OCLFBX  30                        /* bind referecne numeric - OBNDRN */
-#define OCLFSO  34                                /* special function - OOPT */
-#define OCLFRE  36                                        /* resume - ORESUM */
-#define OCLFBN  50                                                  /* bindn */
-#define OCLFMX  52                                /* maximum function number */
-
-#ifdef NEVER                                                 /* unused codes */
-# define OCLFLK  18                           /* open  for kernel operations */
-# define OCLFEK  20                             /* execute kernel operations */
-# define OCLFOK  22                                          /* kernel close */
-# define OCLFIN  28                                       /* logon to oracle */
-# define OCLFOF  30                                    /* logoff from oracle */
-# define OCLFAX  32                               /* allocate a context area */
-# define OCLFPI  34                                  /* page in context area */
-# define OCLFIS  36                                  /* special system logon */
-# define OCLFCO  38                          /* cancel the current operation */
-# define OCLFGI  40                                       /* get database id */
-# define OCLFJN  42                                     /* journal operation */
-# define OCLFCL  44                       /* cleanup prior execute operation */
-# define OCLFMC  46                                     /* map a cursor area */
-# define OCLFUC  48                  /* unmap cursor and restore user maping */
-#endif /*NEVER                                           *//* obsolete codes */
- 
-
-/* values for ocimode in ocipin call */
-
-#define OCIEVDEF UPIEVDEF           /* default : non-thread safe enivronment */
-#define OCIEVTSF UPIEVTSF                         /* thread-safe environment */
-
-
-/* OCIL* flags used to determine the mode of login, using ocilog().
-** Currently defined only for non-blocking and thread-safe logins.
-*/
-
-#define OCILMDEF        UPILMDEF                   /* default, regular login */
-#define OCILMNBL        UPILMNBL                       /* non-blocking logon */
-#define OCILMESY        UPILMESY            /* thread safe but external sync */
-#define OCILMISY        UPILMISY                  /* internal sync, we do it */
-#define OCILMTRY        UPILMTRY        /* try to, but do not block on mutex */
-
-
-/* 
- * since sqllib uses both ocidef and ocidfn the following defines
- * need to be guarded
- */
-#ifndef OCI_FLAGS 
-#define OCI_FLAGS
-
-/* OCI_*_PIECE defines the piece types that are returned or set
-*/
-
-#define OCI_ONE_PIECE   UPI_ONE_PIECE     /* there or this is the only piece */
-#define OCI_FIRST_PIECE UPI_FIRST_PIECE          /* the first of many pieces */
-#define OCI_NEXT_PIECE  UPI_NEXT_PIECE            /* the next of many pieces */
-#define OCI_LAST_PIECE  UPI_LAST_PIECE      /* the last piece of this column */
-#endif
-
-/*
-**  OCITAB: define return code pairs for version 2 to 3 conversions
-*/
-struct  ocitab
-{
-   b2   ocitv3;                                   /* Version 3/4 return code */
-   b2   ocitv2;                          /* Version 2 equivalent return code */
-};
-typedef struct ocitab ocitab;
- 
-externref CONST_DATA ocitab ocitbl[];
- 
-/* macros to check cursors and LDA's.  */
-/* macros to set error codes           */
-
-# define CRSCHK(c)     if ((c->csrchk != CSRCHECK)\
-                            && !bit(c->csrflg, CSRFREFC))\
-                          return(ocir32(c, OER(1001)))
-# define ldaerr(l, e)  ( l->csrrc = (b2)(-( l->csrarc = (ub2)(e)) ) )
-# define LDACHK(l)     if (l->csrchk != LDACHECK) \
-                          return(ldaerr(l, OER(1001)))
- 
-
-/************************************************/
-/*         OCI PROCEDURE DECLARATIONS           */
-/************************************************/ 
-
-
-
-
-/*****************************/
-/*  Database logon/logout    */
-/*****************************/
-sword ocilog( /*_ ldadef *lda, struct hstdef *hst, oratext *uid, sword uidl, 
-                  oratext *psw, sword pswl, oratext* conn, sword connl,
-                  ub4 mode _*/);
-sword ocilon( /*_ ldadef *lda, oratext *uid, word uidl, oratext *psw, 
-                  word pswl, word audit _*/);
-sword  ocilgi( /*_ ldadef *lda, b2 areacount _*/ );
-sword ocirlo( /*_ ldadef *lda, struct hstdef *hst, oratext *uid, word uidl,
-            oratext *psw, word pswl, word audit _*/ );
-     /* ocilon - logon to oracle
-     ** ocilgi - version 2 compatible ORACLE logon call.
-     **          no login to ORACLE is performed: the LDA is initialized
-     ** ocirlo - version 5 compatible ORACLE Remote Login call,
-     **          oracle login is executed.
-     **   lda     - pointer to ldadef
-     **   uid     - user id [USER[/PASSWORD]]
-     **   uidl    - length of uid, if -1 strlen(uid) is used
-     **   psw     - password string; ignored if specified in uid
-     **   pswl    - length of psw, if -1 strlen(psw) is used
-     **   audit   - is not supported; the only permissible value is 0
-     **   areacount - unused
-     */
-
-sword ocilof( /*_ ldadef *lda _*/ );
-     /*
-     ** ocilof - disconnect from ORACLE
-     **   lda     - pointer to ldadef
-     */
-
-
-/*********************/
-/*   Error Messages  */
-/*********************/
-sword ocierr( /*_ ldadef *lda, b2 rcode, oratext *buffer, word bufl _*/ );
-sword ocidhe( /*_ b2 rcode, oratext *buffer _*/ );
-    /* 
-    ** Move the text explanation for an ORACLE error to a user defined buffer
-    **  ocierr - will return the message associated with the hstdef stored 
-    **           in the lda.
-    **  ocidhe - will return the message associated with the default host.
-    **    lda    - lda associated with the login session
-    **    rcode  - error code as returned by V3 call interface
-    **    buffer - address of a user buffer of at least 132 characters
-    */
-
-
-/***********************/
-/*  Cursor Open/Close  */
-/***********************/
-sword ociope( /*_ struct csrdef *cursor, ldadef *lda, oratext *dbn, word dbnl, 
-                 word areasize, oratext *uid, word uidl _*/ );
-
-sword ociclo( /*_ struct csrdef *cursor _*/ );
-   /* 
-   ** open or close a cursor.
-   **   cursor - pointer to csrdef
-   **   ldadef - pointer to ldadef
-   **   dbn    - unused
-   **   dbnl   - unused
-   **   areasize - if (areasize == -1)  areasize <- system default initial size
-   **              else if (areasize IN [1..256]) areasize <- areasize * 1024;
-   **              most applications should use the default size since context
-   **              areas are extended as needed until memory is exhausted.
-   **   uid    - user id
-   **   uidl   - userid length
-   */
-
-/***********************************/
-/*      CONTROL AND OPTIONS        */
-/***********************************/
-sword ocibre( /*_ ldadef *lda _*/ );
-   /*
-   **  ocibrk - Oracle Call Interface send BReaK Sends a break to
-   **  oracle.  If oracle is  active,  the  current  operation  is
-   **  cancelled.  May be called  asynchronously.   DOES  NOT  SET
-   **  OERRCD in the hst.  This is because ocibrk  may  be  called
-   **  asynchronously.  Callers must test the return code.
-   **    lda  - pointer to a ldadef 
-   */
-
-sword ocican( /*_ struct csrdef *cursor _*/ );
-   /*
-   **  cancel the operation on the cursor, no additional OFETCH calls
-   **  will be issued for the existing cursor without an intervening 
-   **  OEXEC call.
-   **   cursor  - pointer to csrdef
-   */
-
-sword ocisfe( /*_ struct csrdef *cursor, word erropt, word waitopt _*/ );
-   /* 
-   ** ocisfe - user interface set error options
-   ** set the error and cursor options.
-   ** allows user to set the options for dealing with fatal dml errors
-   ** and other cursor related options
-   ** see oerdef for valid settings
-   **   cursor  - pointer to csrdef
-   **   erropt  - error optionsn
-   **   waitopr - wait options
-   */
-
-
-/***************************************/
-/* COMMIT/ROLLBACK/AUTOCOMMIT          */
-/***************************************/
-sword   ocicom( /*_ ldadef *lda _*/ );
-sword   ocirol( /*_ ldadef *lda _*/ );
-   /*
-   ** ocicom - commit the current transaction
-   ** ocirol - roll back the current transaction
-   */
- 
-sword   ocicon( /*_ ldadef *lda _*/ );
-sword   ocicof( /*_ ldadef *lda _*/ );
-   /*
-   ** ocicon - auto Commit ON
-   ** ocicof - auto Commit OFf
-   */
-
-
- 
-/************************/
-/*     parsing          */
-/************************/
-sword    ocisq3( /*_ struct csrdef *cursor, oratext *sqlstm, word sqllen _*/ );
-   /*
-   ** ocisq3 - user interface parse sql statement
-   **   cursor - pointer to csrdef
-   **   sqlstm - pointer to SQL statement
-   **   sqllen - length of SQL statement.  if -1, strlen(sqlstm) is used
-   */
-
-
-
-/***************************/
-/*      BINDING            */
-/***************************/
-/* these are for the opcode in ocibndps, ocidfnps */
-#define OCI_PCWS 0
-#define OCI_SKIP 1
-
-sword ocibin( /*_ struct csrdef *cursor, oratext *sqlvar, word sqlvl, 
-                  ub1 *progv, word progvl, word ftype, word scale, 
-                  oratext *fmt, word fmtl, word fmtt _*/ );
-sword  ocibrv( /*_ struct csrdef *cursor, oratext *sqlvar, word sqlvl, 
-                   ub1 *progv, word progvl, word ftype, word scale, b2 *indp,
-                   oratext *fmt, word fmtl, word fmtt _*/ );
-sword  ocibra( /*_ struct csrdef *cursor, oratext *sqlvar, word sqlvl, 
-                   ub1 *progv, word progvl, word ftype, word scale, 
-                   b2 *indp, ub2 *aln, ub2 *rcp, ub4 mal, ub4 *cal, 
-                   oratext *fmt, word fmtl, word fmtt _*/ );
-sword  ocibndps( /*_ struct csrdef *cursor, ub1 opcode, oratext *sqlvar, 
-                     sb4 sqlvl, ub1 *progv, sb4 progvl, word ftype, 
-                     word scale, b2 *indp, ub2 *aln, ub2 *rcp, sb4 pv_skip, 
-                     sb4 ind_skip, sb4 len_skip, sb4 rc_skip, ub4 mal, 
-                     ub4 *cal, oratext *fmt, sb4 fmtl, word fmtt _*/ );
-sword ocibnn ( /*_ struct csrdef *cursor, ub2 sqlvn, ub1 *progv, word progvl,
-                   word ftype, word scale, oratext *fmt, word fmtl, 
-                   word fmtt _*/ );
-sword  ocibrn( /*_ struct csrdef *cursor, word sqlvn, ub1 *progv, word progvl,
-                  word ftype, word scale, b2 *indp, oratext *fmt, word fmtl, 
-                  word fmtt _*/ );
-    /*
-    ** ocibin - bind by value by name
-    ** ocibrv - bind by reference by name
-    ** ocibra - bind by reference by name (array)
-    ** ocibndps - bind by reference by name (array) piecewise or with skips
-    ** ocibnn - bind by value numeric
-    ** ocibrn - bind by reference numeric
-    **
-    ** the contents of storage specified in bind-by-value calls are
-    ** evaluated immediately.
-    ** the addresses of storage specified in bind-by-reference calls are
-    ** remembered, and the contents are examined at every execute.
-    **
-    **  cursor  - pointer to csrdef
-    **  sqlvn   - the number represented by the name of the bind variables
-    **            for variables of the form :n or &n for n in [1..256)
-    **            (i.e. &1, :234).  unnecessarily using larger numbers
-    **            in the range wastes space.
-    **  sqlvar  - the name of the bind variable (:name or &name)
-    **  sqlval  - the length of the name;
-    **            in bindif -1, strlen(bvname) is used
-    **  progv   - pointer to the object to bind.
-    **  progvl  - length of object to bind.
-    **            in bind-by-value if specified as -1 then strlen(bfa) is
-    **              used (really only makes sends with character types)
-    **            in bind-by-value, if specified as -1 then UB2MAXVAL
-    **              is used.  Again this really makes sense only with
-    **              SQLT_STR.
-    **  ftype   - datatype of object
-    **  indp    - pointer to indicator variable.
-    **              -1     means to ignore bfa/bfl and bind NULL;
-    **              not -1 means to bind the contents of bfa/bfl
-    **              bind the contents pointed to by bfa
-    **  aln     - Alternate length pointer
-    **  rcp     - Return code pointer
-    **  mal     - Maximum array length
-    **  cal     - Current array length pointer
-    **  fmt     - format string
-    **  fmtl    - length of format string; if -1, strlen(fmt) is used
-    **  fmtt    - desired output type after applying forat mask. Not
-    **            really yet implemented
-    **  scale   - number of decimal digits in a cobol packed decimal (type 7)
-    **
-    ** Note that the length of bfa when bound as SQLT_STR is reduced
-    ** to strlen(bfa).
-    ** Note that trailing blanks are stripped of storage of SQLT_STR.
-    */
-    
-/***************************/
-/*        DESCRIBING       */
-/***************************/
-sword ocidsc ( /*_ struct csrdef *cursor, word pos, b2 *dbsize, b2 *fsize,
-             b2 *rcode, b2 *dtype, b1 *buf, b2 *bufl, b2 *dsize _*/ );
-sword ocidsr( /*_ struct csrdef *cursor, word pos, b2 *dbsize, b2 *dtype, 
-            b2 *fsize _*/ );
-sword   ocinam( /*_ struct csrdef *cursor, word pos, b1 *tbuf, b2 *tbufl,
-                b1 *buf, b2 *bufl _*/);
-    /*
-    **  ocidsc, ocidsr: Obtain information about a column
-    **  ocinam : get the name of a column
-    **   cursor  - pointer to csrdef
-    **   pos     - position in select list from [1..N]
-    **   dbsize  - place to store the database size
-    **   fsize   - place to store the fetched size
-    **   rcode   - place to store the fetched column returned code
-    **   dtype   - place to store the data type
-    **   buf     - array to store the column name
-    **   bufl    - place to store the column name length
-    **   dsize   - maximum display size
-    **   tbuf    - place to store the table name
-    **   tbufl   - place to store the table name length
-    */
-
-sword ocidsp ( /*_ struct csrdef *cursor, word pos, sb4 *dbsize, sb2 *dbtype,
-                   sb1 *cbuf, sb4 *cbufl, sb4 *dsize, sb2 *pre, sb2 *scl,
-                   sb2 *nul _*/);
-
-sword ocidpr(/*_ ldadef *lda, oratext *object_name, size_t object_length,
-                ptr_t reserved1, size_t reserved1_length, ptr_t reserved2,
-                size_t reserved2_length, ub2 *overload, ub2 *position,
-                ub2 *level, oratext **argument_name, ub2 *argument_length, 
-                ub2 *datatype, ub1 *default_supplied, ub1 *in_out, 
-                ub4 *length, sb2 *precision, sb2 *scale, ub1 *radix, 
-                ub4 *spare, ub4 *total_elements _*/);
-   /*
-   ** OCIDPR - User Program Interface: Describe Stored Procedure
-   **
-   ** This routine is used to obtain information about the calling
-   ** arguments of a stored procedure.  The client provides the 
-   ** name of the procedure using "object_name" and "database_name"
-   ** (database name is optional).  The client also supplies the 
-   ** arrays for OCIDPR to return the values and indicates the 
-   ** length of array via the "total_elements" parameter.  Upon return
-   ** the number of elements used in the arrays is returned in the 
-   ** "total_elements" parameter.  If the array is too small then 
-   ** an error will be returned and the contents of the return arrays 
-   ** are invalid.
-   **
-   **
-   **   EXAMPLE :
-   **
-   **   Client provides -
-   **
-   **   object_name    - SCOTT.ACCOUNT_UPDATE at BOSTON
-   **   total_elements - 100
-   **   
-   **
-   **   ACCOUNT_UPDATE is an overloaded function with specification :
-   **
-   **     type number_table is table of number index by binary_integer;
-   **     table account (account_no number, person_id number,
-   **                    balance number(7,2))
-   **     table person  (person_id number(4), person_nm varchar2(10))
-   **
-   **      function ACCOUNT_UPDATE (account number, 
-   **         person person%rowtype, amounts number_table,
-   **         trans_date date) return accounts.balance%type;
-   **
-   **      function ACCOUNT_UPDATE (account number, 
-   **         person person%rowtype, amounts number_table,
-   **         trans_no number) return accounts.balance%type;
-   **
-   **
-   **   Values returned -
-   **
-   **   overload position   argument  level  datatype length prec scale rad
-   **   -------------------------------------------------------------------
-   **          0        0                0   NUMBER     22    7     2   10
-   **          0        1   ACCOUNT      0   NUMBER     22    0     0    0
-   **          0        2   PERSON       0   RECORD      0    0     0    0
-   **          0        2     PERSON_ID  1   NUMBER     22    4     0   10
-   **          0        2     PERSON_NM  1   VARCHAR2   10    0     0    0
-   **          0        3   AMOUNTS      0   TABLE       0    0     0    0
-   **          0        3                1   NUMBER     22    0     0    0
-   **          0        4   TRANS_NO     0   NUMBER     22    0     0    0
-   **
-   **          1        0                0   NUMBER     22    7     2   10
-   **          1        1   ACCOUNT      0   NUMBER     22    0     0    0
-   **          1        2   PERSON       0   RECORD      0    0     0    0
-   **          1        2    PERSON_ID   1   NUMBER     22    4     0   10
-   **          1        2    PERSON_NM   1   VARCHAR2   10    0     0    0
-   **          1        3   AMOUNTS      0   TABLE       0    0     0    0
-   **          1        3                1   NUMBER     22    0     0    0
-   **          1        4   TRANS_DATE   0   NUMBER     22    0     0    0
-   **
-   **
-   **  OCIDPR Argument Descriptions -
-   **
-   **  ldadef           - pointer to ldadef
-   **  object_name      - object name, synonyms are also accepted and will 
-   **                     be translate, currently only procedure and function
-   **                     names are accepted, also NLS names are accepted.
-   **                     Currently, the accepted format of a name is 
-   **                     [[part1.]part2.]part3[@dblink] (required)
-   **  object_length    - object name length (required)
-   **  reserved1        - reserved for future use
-   **  reserved1_length - reserved for future use
-   **  reserved2        - reserved for future use
-   **  reserved2_length - reserved for future use
-   **  overload         - array indicating overloaded procedure # (returned)
-   **  position         - array of argument positions, position 0 is a 
-   **                     function return argument (returned)
-   **  level            - array of argument type levels, used to describe
-   **                     sub-datatypes of data structures like records
-   **                     and arrays (returned)
-   **  argument_name    - array of argument names, only returns first 
-   **                     30 characters of argument names, note storage
-   **                     for 30 characters is allocated by client (returned)
-   **  argument_length  - array of argument name lengths (returned)
-   **  datatype         - array of oracle datatypes (returned)
-   **  default_supplied - array indicating parameter has default (returned)
-   **                     0 = no default, 1 = default supplied
-   **  in_out           - array indicating if argument is IN or OUT (returned
-   **                     0 = IN param, 1 = OUT param, 2 = IN/OUT param
-   **  length           - array of argument lengths (returned)
-   **  precision        - array of precisions (if number type)(returned)
-   **  scale            - array of scales (if number type)(returned)
-   **  radix            - array of radix (if number type)(returned)
-   **  spare            - array of spares.
-   **  total_elements   - size of arrays supplied by client (required),
-   **                     total number of elements filled (returned)
-   */
-
-/*************************************/
-/* DEFINING                          */
-/*************************************/
-sword ocidfi( /*_ struct csrdef *cursor, word pos, ub1 *buf, word bufl,
-                  word ftype, b2 *rc, word scale _*/ );
-sword ocidfn( /*_ struct csrdef *cursor, word pos, ub1 *buf, word bufl,
-                 word ftype, word scale, b2 *indp, oratext *fmt, word fmtl,
-                 word fmtt, ub2 *rl, ub2 *rc _*/ );
-sword ocidfnps( /*_ struct csrdef *cursor, ub1 opcode, word pos, ub1 *buf, 
-                    sb4 bufl, word ftype, word scale,  
-                    b2 *indp, oratext *fmt, sb4 fmtl,
-                    word fmtt, ub2 *rl, ub2 *rc,
-                    sb4 pv_skip, sb4 ind_skip, sb4 len_skip, 
-                    sb4 rc_skip _*/ );
-
-
-   /*  Define a user data buffer using upidfn
-   **   cursor  - pointer to csrdef
-   **   pos     - position of a field or exp in the select list of a query
-   **   bfa/bfl - address and length of client-supplied storage
-                  to receive data
-   **   ftype   - user datatype
-   **   scale   - number of fractional digits for cobol packed decimals
-   **   indp    - place to store the length of the returned value. If returned
-   **             value is:
-   **             negative, the field fetched was NULL
-   **             zero    , the field fetched was same length or shorter than
-   **               the buffer provided
-   **             positive, the field fetched was truncated
-   **   fmt    - format string
-   **   fmtl   - length of format string, if -1 strlent(fmt) used
-   **   rl     - place to store column length after each fetch
-   **   rc     - place to store column error code after each fetch
-   **   fmtt   - fomat type
-   */
- 
-/********************************/
-/*    PIECE INFORMATION GET/SET */
-/********************************/
-sword           ocigetpi( /*_ struct csrdef *cursor, ub1 *piecep,
-                              dvoid **ctxpp, ub4 *iterp, ub4 *indexp _*/ );
-sword           ocisetpi( /*_ struct csrdef *cursor, ub1 piece,
-                              dvoid *bufp, ub4 *lenp _*/ );
-
-
-/********************************/
-/*   EXECUTE                    */
-/********************************/
-sword ociexe( /*_ struct csrdef *cursor _*/ );
-sword ociexn( /*_ struct csrdef *cursor, word iters, word roff _*/ );
-sword ociefn( /*_ struct csrdef *cursor, ub4 nrows, word can, word exact _*/);
-    /* 
-    ** ociexe  - execute a cursor
-    ** ociexn  - execute a cursosr N times
-    **  cursor   - pointer to a csrdef
-    **  iters    - number of times to execute cursor
-    **  roff     - offset within the bind variable array at which to begin 
-    **             operations.
-    */
-
-
-/*********************************/
-/*     FETCHING                  */
-/*********************************/
-sword ocifet( /*_ struct csrdef *cursor _*/ );
-sword ocifen( /*_ struct csrdef *cursor, word nrows _*/ );
-    /* ocifet - fetch the next row
-    ** ocifen - fetch n rows 
-    ** cursor   - pointer to csrdef
-    ** nrows    - number of rows to be fetched
-    */
-
-sword ocilng(/*_ struct csrdef *cursor, word posit, ub1 *bfa, sb4 bfl,
-                 word dty, ub4 *rln, sb4 off _*/);
-
-/*********************************/
-/*         CONVERSION            */
-/*********************************/
-sword ocic32( /*_ struct csrdef *cursor _*/ );
-    /*
-    **   Convert selected version 3 return codes to the equivalent
-    **   version 2 code.
-    **   csrdef->csrrc is set to the converted code
-    **   csrdef->csrft is set to v2 oracle statment type
-    **   csrdef->csrrpc is set to the rows processed count
-    **   csrdef->csrpeo is set to error postion
-    ** 
-    **     cursor - pointer to csrdef
-    */
-
-
-sword ocir32( /*_ struct csrdef *cursor, word retcode _*/ );
-   /*   
-   ** Convert selected version 3 return codes to the equivalent version 2 
-   ** code.
-   **
-   **    cursor - pointer to csrdef
-   **    retcode - place to store the return code
-   */
-
-
-VOID ociscn( /*_ word **arglst, char *mask_addr, word **newlst _*/ );
-   /*
-   ** Convert call-by-ref to call-by-value:
-   ** takes an arg list and a mask address, determines which args need 
-   ** conversion to a value, and creates a new list begging at the address
-   ** of newlst.
-   **
-   **    arglst    - list of arguments
-   **    mast_addr _ mask address determines args needing conversion
-   **    newlst    - new list of args
-   */
-
-word     ocistf ( /*_ word typ, word bufl, word rdig, oratext *fmt, 
-                      struct csrdef *cursor, sword *err _*/ );
-/*  Convert a packed  decimal buffer  length  (bytes) and scale to a format
-**  string of the form mm.+/-nn, where  mm is the number of packed 
-**  decimal digits, and nn is the scaling factor.   A positive scale name 
-**  nn digits to the rights of the decimal; a negative scale means nn zeros 
-**  should be supplied to the left of the decimal.
-**     bufl   - length of the packed decimal buffer
-**     rdig   - number of fractional digits
-**     fmt    - pointer to a string holding the conversion format
-**     cursor - pointer to csrdef 
-**     err    - pointer to word storing error code
-*/ 
-
-
-/******************************************/
-/*         Non-blocking operations        */
-/******************************************/
-sword ocinbs( /*_ ldadef *lda _*/ );  /* set a connection to non-blocking   */
-sword ocinbt( /*_ ldadef *lda _*/ );  /* test if connection is non-blocking */
-sword ocinbc( /*_ ldadef *lda _*/ );  /* clear a connection to blocking     */
-sword ocinlo( /*_ ldadef *lda, struct hstdef *hst, oratext *conn,
-                  sword connl, oratext *uid, sword uidl,
-                  oratext *psw, sword pswl, sword audit _*/ );  
-              /* logon in non-blocking fashion */
-/* ocinlo allows an application to logon in non-blocking fashion.
-**   lda     - pointer to ldadef
-**   hst     - pointer to a 256 byte area, must be cleared to zero before call
-**   conn    - the database link (if specified @LINK in uid will be ignored)
-**   connl   - length of conn; if -1 strlen(conn) is used   
-**   uid     - user id [USER[/PASSWORD][@LINK]]
-**   uidl    - length of uid, if -1 strlen(uid) is used
-**   psw     - password string; ignored if specified in uid
-**   pswl    - length of psw, if -1 strlen(psw) is used
-**   audit   - is not supported; the only permissible value is 0
-*/
-
-/***************************************************/
-/*         Procedure Declaration for Pro*C         */
-/***************************************************/
-/* Note: The following routines are used in Pro*C and have the
-   same interface as their couterpart in OCI. 
-   Althought the interface follows for more details please refer 
-   to the above routines */
-
-/******************************************/
-/*         initialization/logon/logof     */
-/******************************************/
-sword ocipin( /*_ ub4 mode _*/ );
-
-sword ologin( /*_ ldadef *lda, b2 areacount _*/ );
-sword ologon( /*_ ldadef *lda, b2 areacount _*/ );
-
-/*****************************************/
-/*        Open/Close/Parse Cursor        */
-/*****************************************/
-
-/* 
-** ocisqd - oci delayed parse (Should be used only with deferred upi/oci)
-** FUNCTION: Call upidpr to delay the parse of the sql statement till the
-**           time that a call needs to be made to the kernel (execution or
-**           describe time )
-** RETURNS: Oracle return code.
-*/ 
-sword ocisq7(/*_ struct csrdef *cursor, oratext *sqlstm, sb4 sqllen,
-                 word defflg, ub4 sqlt _*/);
-
-/*****************************************/
-/*            Bind                       */
-/*****************************************/
-sword obind( /*_ struct csrdef *cursor, oratext *sqlvar, word sqlvl, 
-                 ub1 *progv, word progvl, word ftype, word scale, 
-                 oratext *fmt, word fmtl, word fmtt _*/ );
-sword obindn( /*_ struct csrdef *cursor, ub2 sqlvn, ub1 *progv, word progvl,
-                  word ftype, word scale, oratext *fmt, word fmtl, 
-                  word fmtt _*/ );
-
-/**********************************************/
-/*                 Define                     */
-/**********************************************/
-sword odfinn( /*_ struct csrdef *cursor, word pos, ub1 *buf, word bufl,
-                  word ftype, b2 *rc, word scale _*/ );
-
-/**********************************************/
-/*                 Describe                   */
-/**********************************************/
-sword odsrbn( /*_ struct csrdef *cursor, word pos, b2 *dbsize, b2 *dtype, 
-            b2 *fsize _*/ );
-
-
-/******************************************/
-/*         Non-blocking operations        */
-/******************************************/
-sword onblon( /*_ ldadef *lda, struct hstdef *hst, oratext *conn,
-                  sword connl, oratext *uid, sword uidl,
-                  oratext *psw, sword pswl, sword audit _*/ );  
-              /* logon in non-blocking fashion */
-sword ocignfd( /*_ ldadef *lda, dvoid *nfdp _*/);           /* get native fd */
-
-ub2   ocigft_getFcnType( /*_ ub2 oertyp _*/ );      /* get sql function code */
-
-#endif
diff --git a/src/terralib/drivers/Oracle/OCI/include/ocidem.h b/src/terralib/drivers/Oracle/OCI/include/ocidem.h
deleted file mode 100644
index 9122360..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/ocidem.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * $Header$ 
- */
-
-/* Copyright (c) 1991, 1996, 1997, 1999 by Oracle Corporation */
-/* Copyright (c) 1991, 1997, 1999 by Oracle Corporation */
-/*
-   NAME
-     ocidem.h - OCI demo header
-   MODIFIED   (MM/DD/YY)
-    whe        04/07/99 -  bug#810071
-    whe        03/19/99 -  lrg 32079 etc.: putting static back for oci_func_tab
-    nmacnaug   02/02/99 -  static declarations should not be in header files
-    mygopala   09/22/97 -  Fix for bug 550351
-    surman     03/14/97 -  Merge 413362 to 8.0.3
-    surman     11/08/96 -  413362: Add SS_64BIT_SERVER macro
-    emendez    04/07/94 -  merge changes from branch 1.6.710.1
-    emendez    02/02/94 -  Fix for bug 157576
-    jnlee      01/05/93 -  include oratypes.h once, make oci_func_tab static
-    rkooi2     10/26/92 -  More portability mods 
-    rkooi2     10/22/92 -  Change text back to char to avoid casts 
-    rkooi2     10/20/92 -  Changes to make it portable 
-    sjain      03/16/92 -  Creation 
-*/
-
-/*
- *  ocidem.h
- *
- *  Declares additional functions and data structures
- *  used in the OCI C sample programs.
- */
-
-
-#ifndef ORATYPES
-#include <oratypes.h>
-#endif /* ORATYPES */
-
-#ifndef OCIDFN
-#include <ocidfn.h>
-#endif /* OCIDFN */
-
-#ifndef OCIDEM
-#define OCIDEM
-
-
-/*  internal/external datatype codes */
-#define VARCHAR2_TYPE            1
-#define NUMBER_TYPE              2
-#define INT_TYPE		 3
-#define FLOAT_TYPE               4
-#define STRING_TYPE              5
-#define ROWID_TYPE              11
-#define DATE_TYPE               12
-
-/*  ORACLE error codes used in demonstration programs */
-#define VAR_NOT_IN_LIST       1007
-#ifndef NO_DATA_FOUND
-#  define NO_DATA_FOUND         1403
-#endif
-#define NULL_VALUE_RETURNED   1405
-
-/*  some SQL and OCI function codes */
-#define FT_INSERT                3
-#define FT_SELECT                4
-#define FT_UPDATE                5
-#define FT_DELETE                9
-
-#define FC_OOPEN                14
-
-/*
- *  OCI function code labels,
- *  corresponding to the fc numbers
- *  in the cursor data area.
- */
-static CONST text  *oci_func_tab[] =  {(text *) "not used",
-/* 1-2 */       (text *) "not used", (text *) "OSQL",
-/* 3-4 */       (text *) "not used", (text *) "OEXEC, OEXN",
-/* 5-6 */       (text *) "not used", (text *) "OBIND",
-/* 7-8 */       (text *) "not used", (text *) "ODEFIN",
-/* 9-10 */      (text *) "not used", (text *) "ODSRBN",
-/* 11-12 */     (text *) "not used", (text *) "OFETCH, OFEN",
-/* 13-14 */     (text *) "not used", (text *) "OOPEN",
-/* 15-16 */     (text *) "not used", (text *) "OCLOSE",
-/* 17-18 */     (text *) "not used", (text *) "not used",
-/* 19-20 */     (text *) "not used", (text *) "not used",
-/* 21-22 */     (text *) "not used", (text *) "ODSC",
-/* 23-24 */     (text *) "not used", (text *) "ONAME",
-/* 25-26 */     (text *) "not used", (text *) "OSQL3",
-/* 27-28 */     (text *) "not used", (text *) "OBNDRV",
-/* 29-30 */     (text *) "not used", (text *) "OBNDRN",
-/* 31-32 */     (text *) "not used", (text *) "not used",
-/* 33-34 */     (text *) "not used", (text *) "OOPT",
-/* 35-36 */     (text *) "not used", (text *) "not used",
-/* 37-38 */     (text *) "not used", (text *) "not used",
-/* 39-40 */     (text *) "not used", (text *) "not used",
-/* 41-42 */     (text *) "not used", (text *) "not used",
-/* 43-44 */     (text *) "not used", (text *) "not used",
-/* 45-46 */     (text *) "not used", (text *) "not used",
-/* 47-48 */     (text *) "not used", (text *) "not used",
-/* 49-50 */     (text *) "not used", (text *) "not used",
-/* 51-52 */     (text *) "not used", (text *) "OCAN",
-/* 53-54 */     (text *) "not used", (text *) "OPARSE",
-/* 55-56 */     (text *) "not used", (text *) "OEXFET",
-/* 57-58 */     (text *) "not used", (text *) "OFLNG",
-/* 59-60 */     (text *) "not used", (text *) "ODESCR",
-/* 61-62 */     (text *) "not used", (text *) "OBNDRA",
-/* 63-64 */     (text *) "OBINDPS",  (text *) "ODEFINPS",
-/* 65-66 */     (text *) "OGETPI",   (text *) "OSETPI"
-};
-
-#endif      /* OCIDEM */
-
diff --git a/src/terralib/drivers/Oracle/OCI/include/ocidfn.h b/src/terralib/drivers/Oracle/OCI/include/ocidfn.h
deleted file mode 100644
index 8ccb3f5..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/ocidfn.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * $Header$ 
- */
-
-/* Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.  */
-/* Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.  */
-/*
-   NAME
-     ocidfn.h - OCI Definations
-   NOTES
-     Shipped to users.
-   MODIFIED   (MM/DD/YY)
-    srseshad   11/25/02 - change binary float/double codes
-    srseshad   11/14/02 - Add SQLT_IBFLOAT, SQLT_IBDOUBLE
-    mxyang     09/17/02 - grabtrans 'mmorsi_obj_float'
-    srseshad   09/06/02 - Add binary float/double
-    aahluwal   06/04/02 - bug 2360115
-    kmuthukk   05/02/00 - add SQLT_PNTY
-    amangal    07/30/99 - Merge into 8.1.6 : Bug 879031
-    tnbui      07/28/99 - Remove SQLT_TIMESTAMP_ITZ                            
-    tnbui      07/21/99 - SQLT_TIMESTAMP_LTZ                                   
-    tnbui      06/16/99 - TIMESTAMP WITH IMPLICIT TIME ZONE                    
-    whe        04/07/99 - bug#810075
-    whe        03/19/99 - lrg 32079 etc.: move HDA def from ocidem.h to ocidfn.
-    skmishra   05/10/98 -
-    vyanaman   04/16/98 - update sql92 datatypes
-    khnguyen   01/16/98 -
-    khnguyen   12/23/97 - SQLT* for datetimes and intervals
-    tanguyen   08/19/97 -
-    dchatter   03/18/97 -  porting exception 390897
-    dchatter   05/02/97 -   merge porting exception
-    dalpern    12/04/96 -   SQLCS_LIT_NULL added
-    cxcheng    11/14/96 -   add SQLT_BFILE/SQLT_CFILE to fix compile prob
-    cxcheng    11/12/96 -   add SQLT_NCO for named collection
-    lchidamb   10/17/96 -   add SQLT_VST and SQLT_ODT
-    sgollapu   10/14/96 -   Mutual exclusion of ocidfn and sqldef
-    sgollapu   10/07/96 -   OCI Simplification
-    aroy       09/09/96 -   add SQLCS* definitions
-    slari      08/07/96 -  add SQLT_RDD, rowid descriptor
-    slari      06/12/96 -  remove SQLT_TTBL
-    dchatter   04/21/96 -  prepare for merge into main
-    slari      08/24/95 -  b299432, define CDA_SIZE
-    zwalcott   02/28/96 -  add SQLT_BFILEE and SQLT_CFILEE.
-    lchidamb   02/22/96 -  make dtys consistent with dtydef.h
-    lchidamb   02/16/96 -  add SQLT_BFILEE and SQLT_CFILEE
-    lchidamb   01/30/96 -  rename new datatypes for v8
-    lchidamb   09/06/95 -  add new datatypes
-    slari      05/11/95 -  add OCI_EV_DEF and OCI_EV_TSF
-    dchatter   04/06/95 -  add ifdef flags around OCI_flags
-    dchatter   03/08/95 -  piece values
-    dchatter   03/06/95 -  merge changes from branch 1.2.720.3
-    jfbrown    02/17/95 -  merge changes from branch 1.2.720.2
-    dchatter   02/08/95 -  olog call modes
-    jfbrown    02/03/95 -  remove non-printable characters
-    lchidamb   12/06/94 -  merge changes from branch 1.2.720.1
-    lchidamb   10/04/94 -  added field chk to cda_head, cda_def
-    dchatter   07/05/94 -  SQLT_CUR added
-    rkooi2     11/27/92 -  Changing e* datatypes to s* 
-    rkooi2     10/26/92 -  More portability mods 
-    rkooi2     10/22/92 -  Added #ifndef ORATYPES ... 
-    rkooi2     10/18/92 -  Changes to make it portable. 
-    sjain      03/16/92 -  Creation 
-*/
-
-/*
- *  ocidfn.h
- *
- *  Common header file for OCI C sample programs.
- *  This header declares the cursor and logon data area structure.
- *  The types used are defined in <oratypes.h>.
- *
- */
- 
-#ifndef OCIDFN
-#define OCIDFN
-
-#ifndef ORATYPES 
-#include <oratypes.h>
-#endif
-
-/* The cda_head struct is strictly PRIVATE.  It is used
-   internally only. Do not use this struct in OCI programs. */
-
-struct cda_head {
-    sb2          v2_rc;
-    ub2          ft;
-    ub4          rpc;
-    ub2          peo;
-    ub1          fc;
-    ub1          rcs1;
-    ub2          rc;
-    ub1          wrn;
-    ub1          rcs2;
-    sword        rcs3;
-    struct {
-        struct {
-           ub4    rcs4;
-           ub2    rcs5;
-           ub1    rcs6;
-        } rd;
-        ub4    rcs7;
-        ub2    rcs8;
-    } rid;
-    sword        ose;
-    ub1           chk;
-    dvoid        *rcsp;
-};
-
-/*
-** Size of HDA area:
-** 512 for 64 bit arquitectures
-** 256 for 32 bit arquitectures
-*/
-
-#if defined(SS_64BIT_SERVER) || defined(__64BIT__)
-# define HDA_SIZE 512
-#else
-# define HDA_SIZE 256
-#endif
-
-#if defined(SS_64BIT_SERVER) || defined(__64BIT__)
-#define CDA_SIZE 88
-#else
-# define CDA_SIZE 64
-#endif
-
-/* the real CDA, padded to CDA_SIZE bytes in size */
-struct cda_def {
-    sb2          v2_rc;                                    /* V2 return code */
-    ub2          ft;                                    /* SQL function type */
-    ub4          rpc;                                /* rows processed count */
-    ub2          peo;                                  /* parse error offset */
-    ub1          fc;                                    /* OCI function code */
-    ub1          rcs1;                                        /* filler area */
-    ub2          rc;                                       /* V7 return code */
-    ub1          wrn;                                       /* warning flags */
-    ub1          rcs2;                                           /* reserved */
-    sword        rcs3;                                           /* reserved */
-    struct {                                              /* rowid structure */
-        struct {
-           ub4    rcs4;
-           ub2    rcs5;
-           ub1    rcs6;
-        } rd;
-        ub4    rcs7;
-        ub2    rcs8;
-    } rid;
-    sword        ose;                                 /* OSD dependent error */
-    ub1           chk;
-    dvoid        *rcsp;                          /* pointer to reserved area */
-    ub1          rcs9[CDA_SIZE - sizeof (struct cda_head)];        /* filler */
-};
-
-typedef struct cda_def Cda_Def;
-
-/* the logon data area (LDA)
-   is the same shape as the CDA */
-typedef struct cda_def Lda_Def;
-
-/* OCI Environment Modes for opinit call */
-#define OCI_EV_DEF 0                  /* default single-threaded environment */
-#define OCI_EV_TSF 1                              /* thread-safe environment */
-
-/* OCI Logon Modes for olog call */
-#define OCI_LM_DEF 0                                        /* default login */
-#define OCI_LM_NBL 1                                   /* non-blocking logon */
-
-/* 
- * since sqllib uses both ocidef and ocidfn the following defines
- * need to be guarded
- */
-#ifndef OCI_FLAGS 
-#define OCI_FLAGS
-
-/* OCI_*_PIECE defines the piece types that are returned or set
-*/
-#define OCI_ONE_PIECE   0                 /* there or this is the only piece */
-#define OCI_FIRST_PIECE 1                        /* the first of many pieces */
-#define OCI_NEXT_PIECE  2                         /* the next of many pieces */
-#define OCI_LAST_PIECE  3                   /* the last piece of this column */
-#endif
-
-#ifndef SQLDEF 
-
-/* input data types */
-#define SQLT_CHR  1                        /* (ORANET TYPE) character string */
-#define SQLT_NUM  2                          /* (ORANET TYPE) oracle numeric */
-#define SQLT_INT  3                                 /* (ORANET TYPE) integer */
-#define SQLT_FLT  4                   /* (ORANET TYPE) Floating point number */
-#define SQLT_STR  5                                /* zero terminated string */
-#define SQLT_VNU  6                        /* NUM with preceding length byte */
-#define SQLT_PDN  7                  /* (ORANET TYPE) Packed Decimal Numeric */
-#define SQLT_LNG  8                                                  /* long */
-#define SQLT_VCS  9                             /* Variable character string */
-#define SQLT_NON  10                      /* Null/empty PCC Descriptor entry */
-#define SQLT_RID  11                                                /* rowid */
-#define SQLT_DAT  12                                /* date in oracle format */
-#define SQLT_VBI  15                                 /* binary in VCS format */
-#define SQLT_BFLOAT 21                                /* Native Binary float*/
-#define SQLT_BDOUBLE 22                             /* NAtive binary double */
-#define SQLT_BIN  23                                  /* binary data(DTYBIN) */
-#define SQLT_LBI  24                                          /* long binary */
-#define SQLT_UIN  68                                     /* unsigned integer */
-#define SQLT_SLS  91                        /* Display sign leading separate */
-#define SQLT_LVC  94                                  /* Longer longs (char) */
-#define SQLT_LVB  95                                   /* Longer long binary */
-#define SQLT_AFC  96                                      /* Ansi fixed char */
-#define SQLT_AVC  97                                        /* Ansi Var char */
-#define SQLT_IBFLOAT  100                           /* binary float canonical */
-#define SQLT_IBDOUBLE 101                          /* binary double canonical */
-#define SQLT_CUR  102                                        /* cursor  type */
-#define SQLT_RDD  104                                    /* rowid descriptor */
-#define SQLT_LAB  105                                          /* label type */
-#define SQLT_OSL  106                                        /* oslabel type */
-
-#define SQLT_NTY  108                                   /* named object type */
-#define SQLT_REF  110                                            /* ref type */
-#define SQLT_CLOB 112                                       /* character lob */
-#define SQLT_BLOB 113                                          /* binary lob */
-#define SQLT_BFILEE 114                                   /* binary file lob */
-#define SQLT_CFILEE 115                                /* character file lob */
-#define SQLT_RSET 116                                     /* result set type */
-#define SQLT_NCO  122      /* named collection type (varray or nested table) */
-#define SQLT_VST  155                                      /* OCIString type */
-#define SQLT_ODT  156                                        /* OCIDate type */
-
-/* datetimes and intervals */
-#define SQLT_DATE                      184                      /* ANSI Date */
-#define SQLT_TIME                      185                           /* TIME */
-#define SQLT_TIME_TZ                   186            /* TIME WITH TIME ZONE */
-#define SQLT_TIMESTAMP                 187                      /* TIMESTAMP */
-#define SQLT_TIMESTAMP_TZ              188       /* TIMESTAMP WITH TIME ZONE */
-#define SQLT_INTERVAL_YM               189         /* INTERVAL YEAR TO MONTH */
-#define SQLT_INTERVAL_DS               190         /* INTERVAL DAY TO SECOND */
-#define SQLT_TIMESTAMP_LTZ             232        /* TIMESTAMP WITH LOCAL TZ */
-
-#define SQLT_PNTY   241              /* pl/sql representation of named types */
-
-/* cxcheng: this has been added for backward compatibility -
-   it needs to be here because ocidfn.h can get included ahead of sqldef.h */
-#define SQLT_FILE SQLT_BFILEE                             /* binary file lob */
-#define SQLT_CFILE SQLT_CFILEE
-#define SQLT_BFILE SQLT_BFILEE
- 
-/* CHAR/NCHAR/VARCHAR2/NVARCHAR2/CLOB/NCLOB char set "form" information */
-#define SQLCS_IMPLICIT 1     /* for CHAR, VARCHAR2, CLOB w/o a specified set */
-#define SQLCS_NCHAR    2                  /* for NCHAR, NCHAR VARYING, NCLOB */
-#define SQLCS_EXPLICIT 3   /* for CHAR, etc, with "CHARACTER SET ..." syntax */
-#define SQLCS_FLEXIBLE 4                 /* for PL/SQL "flexible" parameters */
-#define SQLCS_LIT_NULL 5      /* for typecheck of NULL and empty_clob() lits */
-
-#endif  /* SQLDEF */
-#endif  /* OCIDFN */
diff --git a/src/terralib/drivers/Oracle/OCI/include/ociextp.h b/src/terralib/drivers/Oracle/OCI/include/ociextp.h
deleted file mode 100644
index eab9684..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/ociextp.h
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * $Header$
- */
-
-/* Copyright (c) 1996, 2003, Oracle Corporation.  All rights reserved.  */
- 
-/* 
-   NAME 
-     ociextp.h - Interface Definitions for PL/SQL External Procedures
-
-   DESCRIPTION 
-     This header file contains C language callable interface from 
-     PL/SQL External Procedures.
-
-   PUBLIC FUNCTION(S) 
-     OCIExtProcAllocCallMemory  - Allocate Call memory
-     OCIExtProcRaiseExcp        - Raise Exception
-     OCIExtProcRaiseExcpWithMsg - Raise Exception with message
-     OCIExtProcGetEnv           - Get OCI Environment
-
-   PRIVATE FUNCTION(S)
-     <list of static functions defined in .c file - with one-line descriptions>
-
-   EXAMPLES
-
-   NOTES
-     <other useful comments, qualifications, etc.>
-
-   MODIFIED   (MM/DD/YY)
-   srseshad    03/12/03 - convert oci public api to ansi
-   rdecker     01/10/02 - change 32k to MAX_OEN for error numbers
-   sagrawal    07/20/01 - Statement Handle to safe cal outs
-   abrumm      04/19/01 - move include of oci.h after defines/typedef
-   rdecker     02/22/01 - lint fix
-   bpalaval    02/08/01 - Change text to oratext.
-   sagrawal    06/16/00 - ref cursor in callouts
-   whe         09/01/99 - 976457:check __cplusplus for C++ code
-   asethi      04/15/99 - Created (by moving ociextp.h from /vobs/plsql/public)
-   rhari       03/25/97 - Use ifndef
-   rhari       12/18/96 - Include oratypes.h
-   rhari       12/11/96 - #416977, Flip values of return codes
-   rhari       12/02/96 - Define Return Code Macros
-   rhari       11/18/96 - Error number is int
-   rhari       10/30/96 - Fix OCIExtProcRaiseExcpWithMsg
-   rhari       10/30/96 - Get rid of warnings
-   rhari       10/04/96 - Fix OCIExtProcRaiseExcpWithMsg
-   rhari       09/23/96 - Creation
-
-*/
-
- 
-#ifndef OCIEXTP_ORACLE
-# define OCIEXTP_ORACLE
-
-# ifndef ORATYPES 
-#  include <oratypes.h> 
-# endif
-
-
-/*---------------------------------------------------------------------------
-                     PUBLIC TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-
-/* ----------------------------- Return Codes ----------------------------- */
-/* Success and Error return codes for certain external procedure interface 
- * functions. If a particular interface function returns OCIEXTPROC_SUCCESS
- * or OCIEXTPROC_ERROR, then applications must use these macros to check
- * for return values.
- *
- *     OCIEXTPROC_SUCCESS  -- External Procedure Success Return Code 
- *     OCIEXTPROC_ERROR    -- External Procedure Failure Return Code 
- */
-#define OCIEXTPROC_SUCCESS 0
-#define OCIEXTPROC_ERROR   1
-
-
-/* --------------------------- With-Context Type --------------------------- */
-/*
- * The C callable interface to PL/SQL External Procedures require the 
- * With-Context parameter to be passed. The type of this structure is 
- * OCIExtProcContext is is opaque to the user.
- *
- * The user can declare the With-Context parameter in the application as
- *
- *    OCIExtProcContext *with_context;
- */
-typedef struct OCIExtProcContext OCIExtProcContext;
-
-/* NOTE: OCIExtProcContext must be visible prior to including <oci.h> */
-
-# ifndef OCI_ORACLE
-#  include <oci.h>
-# endif
-
-
-/* ----------------------- OCIExtProcAllocCallMemory ----------------------- */
-/* OCIExtProcAllocCallMemory
- *    Allocate N bytes of memory for the duration of the External Procedure.
- *
- *    Memory thus allocated will be freed by PL/SQL upon return from the
- *    External Procedure. You must not use any kind of 'free' function on 
- *    memory allocated by OCIExtProcAllocCallMemory.
- *    Use this function to allocate memory for function returns.
- * 
- * PARAMETERS
- * Input : 
- *    with_context - The with_context pointer that is passed to the C 
- *                   External Procedure.
- *                  Type of with_context : OCIExtProcContext *
- *    amount       - The number of bytes to allocate.
- *                   Type of amount : size_t
- *
- * Output :
- *    Nothing
- *
- * Return :
- *    An untyped (opaque) Pointer to the allocated memory. 
- *
- * Errors :
- *    A 0 return value should be treated as an error
- *
- * EXAMPLE 
- *  text *ptr = (text *)OCIExtProcAllocCallMemory(wctx, 1024)
- *
- */
-#define OCIExtProcAllocCallMemory(with_context, amount) \
-ociepacm(with_context, (size_t)amount)
-
-
-
-
-/* -------------------------- OCIExtProcRaiseExcp -------------------------- */
-/* OCIExtProcRaiseExcp
- *    Raise an Exception to PL/SQL.
- *
- *  Calling this function signalls an exception back to PL/SQL. After a
- *  successful return from this function, the External Procedure must start 
- *  its exit handling and return back to PL/SQL. Once an exception is 
- *  signalled to PL/SQL, INOUT and OUT arguments, if any, are not processed 
- *  at all.
- * 
- * PARAMETERS
- * Input :
- *   with_context - The with_context pointer that is passed to the C
- *                  External Procedure. 
- *                  Type of with_context : OCIExtProcContext *
- *   errnum       - Oracle Error number to signal to PL/SQL. errnum
- *                  must be a positive number and in the range 1 to MAX_OEN
- *                  Type of errnum : int
- * Output :
- *   Nothing
- *
- * Return :
- *   OCIEXTPROC_SUCCESS - If the call was successful.
- *   OCIEXTPROC_ERROR   - If the call failed.
- *
- */
-#define OCIExtProcRaiseExcp(with_context, errnum) \
-ocieperr(with_context, (int)errnum)
-
-
-
-
-
-/* ---------------------- OCIExtProcRaiseExcpWithMsg ---------------------- */
-/* OCIExtProcRaiseExcpWithMsg
- *    Raise an exception to PL/SQL. In addition, substitute the
- *    following error message string within the standard Oracle error 
- *    message string. See note for OCIExtProcRaiseExcp
- * 
- * PARAMETERS
- * Input :
- *   with_context  - The with_context pointer that is passed to the C
- *                   External Procedure.
- *                   Type of with_context : OCIExtProcContext *
- *   errnum        - Oracle Error number to signal to PL/SQL. errnum
- *                   must be a positive number and in the range 1 to MAX_OEN
- *                   Type of errnum : int
- *   errmsg        - The error message associated with the errnum.
- *                   Type of errmsg : char *
- *   len           - The length of the error message. 0 if errmsg is
- *                   null terminated string.
- *                   Type of len : size_t
- * Output :
- *   Nothing
- *
- * Return :
- *  OCIEXTPROC_SUCCESS - If the call was successful.
- *  OCIEXTPROC_ERROR   - If the call failed.
- *
- */
-#define OCIExtProcRaiseExcpWithMsg(with_context, errnum, errmsg, msglen) \
-ociepmsg(with_context, (int)errnum, errmsg, (size_t)msglen)
-
-
-
-/* --------------------------- OCIExtProcGetEnv --------------------------- */
-/* OCIExtProcGetEnv
- *    Get OCI Environment
- * 
- * PARAMETERS
- * Input :
- *    with_context - The with_context pointer that is passed to the C
- *                   External Procedure.
- *
- * Output :
- *    envh - The OCI Environment handle.
- *    svch - The OCI Service handle.
- *    errh - The OCI Error handle.
- *
- * Return :
- *  OCI_SUCCESS - Successful completion of the function.
- *  OCI_ERROR   - Error.
- *
- */
-#define OCIExtProcGetEnv(with_context, envh, svch, errh) \
-ociepgoe(with_context, envh, svch, errh)
-
-
-
-/* ------------------------ OCIInitializeStatementHandle ------------------- */
-/* OCIreateStatementHandle
- *    Initialize Statement Handle
- * 
- * PARAMETERS
- * Input :
- *    wctx     - The 
- *    cursorno - The cursor number for which we need to initialize
- *               the statement handle
- *    svch     - The OCI Service handle.
- *
- * Output :
- *    stmthp - The OCI Statement handle.
- *    errh   - The OCI Error handle.
- *
- * Return :
- *  OCI_SUCCESS - Successful completion of the function.
- *  OCI_ERROR   - Error.
- *
- */
-#define OCIInitializeStatementHandle(wctx, cursorno,  svch, stmthp, errh) \
-ociepish(wctx, cursor, svch, stmthp, errh)
-
-
-
-
-/*---------------------------------------------------------------------------
-                     PRIVATE TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                           PUBLIC FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                          PRIVATE FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-
-dvoid *ociepacm(OCIExtProcContext *with_context, size_t amount);
-
-
-
-size_t ocieperr(OCIExtProcContext *with_context, int error_number);
-
-
-
-size_t ociepmsg(OCIExtProcContext *with_context, int error_number,
-                oratext *error_message, size_t len );
-
-
-
-sword ociepgoe(OCIExtProcContext *with_context, OCIEnv **envh, 
-               OCISvcCtx **svch, OCIError **errh);
-
-
-#endif                                                     /* OCIEXTP_ORACLE */
diff --git a/src/terralib/drivers/Oracle/OCI/include/ocikp.h b/src/terralib/drivers/Oracle/OCI/include/ocikp.h
deleted file mode 100644
index 1c9f851..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/ocikp.h
+++ /dev/null
@@ -1,10223 +0,0 @@
-/*
- * $Header$
- */
-/* Copyright (c) 1996, 2002, Oracle Corporation.  All rights reserved.  */
- 
-/* NOTE:  See 'header_template.doc' in the 'doc' dve under the 'forms' 
-      directory for the header file template that includes instructions. 
-*/
- 
-/* 
-   NAME 
-     ocikp.h - Prototypes of V8 OCI functions in K&R style
-
-   DESCRIPTION 
-     defines the prototypes of V8 OCI functions in K&R style
-
-   RELATED DOCUMENTS 
- 
-   INSPECTION STATUS 
-     Inspection date: 
-     Inspection status: 
-     Estimated increasing cost defects per page: 
-     Rule sets: 
- 
-   ACCEPTANCE REVIEW STATUS 
-     Review date: 
-     Review status: 
-     Reviewers: 
- 
-   PUBLIC FUNCTION(S) 
-     <list of external functions declared/defined - with one-line descriptions>
-
-   PRIVATE FUNCTION(S) 
-     <list of static functions defined in .c file - with one-line descriptions>
- 
-   EXAMPLES 
- 
-   NOTES 
-     <other useful comments, qualifications, etc.> 
-
-   MODIFIED   (MM/DD/YY)
-   sichandr    02/12/02 - fix OCIXMLTypeExists
-   gayyappa    02/01/02 - fix 2210776 : change Dom to DOM 
-   sichandr    10/24/01 - OCISvcCtx for XMLType create routines
-   schandir    09/24/01 - Add prototypes for Stmt Caching
-   abande      09/04/01 - Add Prototypes for Session Pooling Methods
-   stakeda     09/24/01 - add OCINlsCharSetConvert and 
-                          OCINlsEnvironmentVariableGet.
-   whe         08/28/01 - add OCIEnvNlsCreate
-   wzhang      08/22/01 - Add OCINlsCharSetNameToId.
-   whe         10/05/01 - add prototype for OCIXMLType functions
-   mdmehta     04/06/01 - Bug 1683763, OCIDateTimeToText: buf_size to ub4*
-   schandir    12/12/00 - modify the ociconnectionpoolcreate() interface.
-   porangas    12/04/00 - Forward merge bug#974710 to 9i
-   gtarora     11/30/00 - fix comment for OCILobIsTemporary
-   akatti      11/07/00 - [1198379]:add OCIRowidToChar
-   bpalaval    10/15/00 - Forward merge 892654.
-   kmohan      09/18/00 - add OCILogon2
-   etucker     07/28/00 - add OCIIntervalFromTZ
-   vjayaram    07/18/00 - add connection pooling changes
-   etucker     07/13/00 - add dls apis for oci
-   hmasaki     07/05/00 - fix 1230846: forward merge into 8.2
-   mbastawa    06/05/00 - add OCIStmtFetch2
-   rxgovind    06/07/00 - update OCIAnyData interfaces
-   rxgovind    05/04/00 - add OCIAnyDataSet interfaces
-   rkasamse    05/01/00 - add ocianydata i/f
-   slari       09/01/99 - remove OCIEnvCallback
-   slari       08/23/99 - add OCIUcb in user callback functions
-   whe         09/01/99 - 976457:check __cplusplus for C++ code
-   dsaha       07/07/99 - Add OCIFEnvCreate for forms
-  vyanaman    06/21/99 - Change OCI DateTime/Interval APIs.
-   esoyleme    07/01/99 - expose MTS performance enhancements                  
-   whe         06/14/99 - bug727872:add CONST to match definitions
-   kkarun      02/23/99 - Fix OCIDateTime APIs
-   jiyang      12/07/98 - Add comments for OCI_NLS_DUAL_CURRENCY
-   aroy        12/01/98 - add OCIEnvCreate
-   slari       11/23/98 - use ORASTDARG
-   slari       11/22/98 - use arglist in OCIUserCallback
-   slari       11/21/98 - replace ellipsis by arglist in OCIUserCallback
-   thchang     10/20/98 - correct comment on OCILobCreateTemporary
-   sgollapu    09/30/98 - Fix bug 725473
-   slari       09/08/98 - allow envh to receive error info also in CallbackReg/
-   lchidamb    07/07/98 - change comments
-   aroy        08/04/98 - add OCITerminate calls                               
-   sgollapu    06/30/98 - Add OCISubscription* prototypes
-   nramakri    06/25/98 - remove CONST from some OCIPickler APIs
-   jiyang      06/22/98 - Fix a lint error
-   nmallava    06/08/98 - ociistemporary -> envhp
-   jhasenbe    05/27/98 - Remove definitions for U-Calls (Unicode)
-   nmallava    05/18/98 - correct comment
-   sgollapu    05/19/98 - Change text to OraText
-   aroy        04/20/98 - merge forward 8.0.5 -> 8.1.3
-   nbhatt      05/14/98 - aq listen call
-   vyanaman    04/19/98 - system timestamp
-   kkarun      04/17/98 - Add more Interval functions
-   vyanaman    04/16/98 - Add get/set TZ
-   kkarun      04/13/98 - add datetime prototypes
-   rkasamse    04/13/98 - change OCIEnv* to dvoid* for context/memory cart serv
-   rkasamse    04/15/98 - chage pickler cart interface
-   slari       03/20/98 - change proto of OCIUserCallback
-   slari       02/17/98 - add OCIEnvCallback
-   jiyang      04/02/98 - Accept both env and user handles for NLS
-   nmallava    04/09/98 - OCILobLocatorAssign
-   nmallava    04/07/98 - fix compiler warnings
-   jhasenbe    04/06/98 - Add new interfaces for Unicode support
-   skabraha    03/24/98 - fixing prototype mismatch
-   tsaulys     03/20/98 - use environment or session handle
-   rkasamse    03/20/98 - remove prototypes for OCIMemoryDuration* functions
-   nmallava    03/17/98 - add interfaces
-   nmallava    03/16/98 - add open/close apis
-   nmallava    03/10/98 - add temporary lobs apis
-   sgollapu    07/10/97 - Add OCIReset
-   sgollapu    02/09/98 - OCI non-blocking
-   nramakri    01/16/98 - remove #ifdef NEVER clause for OCIExtract
-   rmurthy     01/08/98 - OCIContextGenerateKey: change ub1 to ub4
-   ewaugh      01/02/98 - remove VAFP from OCIFormatString prototype
-   ewaugh      12/18/97 - Turn type wrappers into functions.
-   rtaranto    12/17/97 - Resolve merge conflicts
-   jiyang      11/13/97 - Add NLS service for cartridge
-   rhwu        12/02/97 - add OCI Thread
-   nramakri    12/15/97 - move to core4
-   nramakri    12/11/97 - modify OCIExtract prototype
-   ewaugh      12/10/97 - add OCIFormat prototypes
-   skabraha    12/02/97 - adding OCIFile functions
-   nramakri    11/12/97 - add OCIExtract prototypes
-   rkasamse    11/21/97 - add prototypes for memory cartridge services and cont
-   rkasamse    11/03/97 - Add pickler cartridge service interfaces
-   tanguyen    08/19/97 -
-   schandra    06/25/97 - AQ OCI interface
-   bnainani    07/21/97 - add prototypes for Oracle XA extensions
-   rtaranto    05/20/97 - remove OCILobLocatorSize (again)
-   esoyleme    05/13/97 - move failover callback prototype
-   skmishra    05/06/97 - stdc compiler fixes
-   skmishra    04/23/97 - Provide C++ compatibility
-   skotsovo    04/21/97 - make lob parameter names consistent
-   rwhitman    04/16/97 - Fix LOB prototypes - Olint OCI 8.0.3
-   ramkrish    04/15/97 - Add free flag to OCILobFlushBuffer
-   cxcheng     04/09/97 - change objnamp from CONST text* to dvoid*
-   cxcheng     04/08/97 - fix prototype for OCIDescribeAny
-   skotsovo    03/31/97 - remove OCILobLocatorSize
-   skotsovo    03/27/97 - add OCILobLoadFromFile
-   sgollapu    03/26/97 - Change OCIDescribeAny prototype
-   skotsovo    03/26/97 - add svchp to ocienablebuffering
-   skotsovo    03/26/97 - change OCILobFlushBuffers to OCILobFlushBuffer
-   skotsovo    03/18/97 - add interface for lob buffering.
-   dchatter    01/13/97 - fix comments on LOB calls
-   aroy        01/10/97 - remove ocilobfilecreate delete
-   sgollapu    12/27/96 - Correct OCILogon prototype
-   dchatter    01/04/97 - comments to describe the functions
-   sgollapu    11/25/96 - Change OCILobFileIsExistent
-   schandra    11/18/96 - Remove xa.h include
-   sgollapu    11/09/96 - Change prototype of OCIDescribeAny
-   dchatter    11/01/96 - lint error
-   dchatter    10/31/96 - delete CONST from lob write cb fn
-   dchatter    10/30/96 - more changes
-   dchatter    10/26/96 - lob/file long name corrections
-   slari       10/16/96 - delete unused calls
-   rwessman    10/29/96 - Fixed OCISecurityGetIdentity prototype
-   sgollapu    10/22/96 - Add OCILogon and OCILogoff prototypes
-   rwessman    10/16/96 - Added cryptographic and digital signature functions
-   rxgovind    10/07/96 - add oci file calls
-   skotsovo    09/20/96 - in OCILobGetLength(), remove the 'isnull' parameter.
-   skotsovo    10/01/96 - move orl lob fnts to oci
-   skotsovo    09/20/96 - in OCILobGetLength(), remove the 'isnull' parameter.
-   aroy        08/29/96 - change prototype for Nchar Lob support
-   dchatter    08/21/96 - OCIResultSetToStmt prototype change
-   sthakur     08/14/96 - add OCIParamSet
-   schandra    06/17/96 - Convert XA to use new OCI
-   aroy        07/17/96 - terminology change: OCILobLocator => OCILobLocator
-   dchatter    07/01/96 - drop prototypes not in beta1
-   dchatter    06/29/96 - OCIParamGet prototype change
-   dchatter    06/19/96 - add OCISvcCtxBreak, OCILdaToSvcCtx
-   slari       06/12/96 - inlcude oratypes.h instead of s.h
-   schandra    05/31/96 - remove client DBID parameters from OCITransStart
-   asurpur     06/05/96 - Changing the prototype for OCIPasswordChange
-   dchatter    05/30/96 - change OCIStmtGetBind prototype
-   schandra    05/29/96 - Add timeout parameter to OCITransDetach
-   slari       05/30/96 - add OCIBindDynamic/OCIDefineDynamic
-   slari       05/28/96 - fix gpi/spi protos
-   slari       05/28/96 - change proto for OCIParamGet
-   jbellemo    05/23/96 - remove ociisc
-   schandra    05/15/96 - Remove ocitgti type
-   schandra    04/18/96 - OCITransCommitt -> OCITransCommit
-   schandra    03/27/96 - V8OCI - add transaction related calls
-   dchatter    04/01/96 - change return types to sword to be compatible with oo
-   dchatter    03/21/96 - add oci2lda conversion routines
-   aroy        03/12/96 - change parameter order for lob functions
-   dchatter    03/08/96 - minor parameter renaming for lob calls
-   slari       03/14/96 - change proto of OCITransRollback
-   slari       03/12/96 - remove ocidqry
-   slari       03/01/96 - change proto for OCIInitialize
-   slari       02/07/96 - update prototypes
-   slari       02/06/96 - add OCITransCommit()
-   slari       02/02/96 - ociisc: rm dblink info
-   dchatter    01/08/96 - V8 OCI K&R prototype file
-   dchatter    01/08/96 - Creation
-
-*/
- 
-#ifndef OCIKP_ORACLE
-# define OCIKP_ORACLE
- 
-# ifndef ORATYPES 
-#  include <oratypes.h> 
-# endif 
- 
-#ifndef ORASTDARG
-#include <stdarg.h>
-#define ORASTDARG
-#endif
- 
-#ifndef OCIDFN
-#include <ocidfn.h>
-#endif
-
-#ifndef NZT_ORACLE
-#include <nzt.h>
-#endif /* NZT_ORACLE */
-
-#ifndef OCI_ORACLE
-#include <oci.h>
-#endif
-
-#ifndef ORT_ORACLE
-#include <ort.h>
-#endif 
-
-/*--------------------------------------------------------------------------- 
-                     PUBLIC TYPES AND CONSTANTS 
-  ---------------------------------------------------------------------------*/
-
-/*--------------------------------------------------------------------------- 
-                     PRIVATE TYPES AND CONSTANTS 
-  ---------------------------------------------------------------------------*/
- 
- 
-/*--------------------------------------------------------------------------- 
-                           PUBLIC FUNCTIONS 
-  ---------------------------------------------------------------------------*/
-
-/*------------------Oracle Version 8 Call Interface--------------------------*/
-
-
-/*****************************************************************************
-                              DESCRIPTION
-******************************************************************************
-Note: the descriptions of the functions are alphabetically arranged. Please 
-maintain the arrangement when adding a new function description. The actual 
-prototypes are below this comment section and donot follow any alphabetical 
-ordering. 
-
-
---------------------------------OCIAttrGet------------------------------------
-
-OCIAttrGet()
-Name
-OCI Attribute Get
-Purpose
-This call is used to get a particular attribute of a handle. 
-Syntax
-sword OCIAttrGet ( CONST dvoid    *trgthndlp,
-                 ub4            trghndltyp,
-                 dvoid          *attributep,
-                 ub4            *sizep,
-                 ub4            attrtype,
-                 OCIError       *errhp );
-Comments
-This call is used to get a particular attribute of a handle.
-See Appendix B,  "Handle Attributes",  for a list of handle types and their 
-readable attributes.
-Parameters
-trgthndlp (IN) - is the pointer to a handle type. 
-trghndltyp (IN) - is the handle type. 
-attributep (OUT) - is a pointer to the storage for an attribute value. The 
-attribute value is filled in. 
-sizep (OUT) - is the size of the attribute value. 
-This can be passed in as NULL for most parameters as the size is well known. 
-For OraText* parameters, a pointer to a ub4 must be passed in to get the length 
-of the string. 
-attrtype (IN) - is the type of attribute.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-Related Functions
-OCIAttrSet()
-
---------------------------------OCIAttrSet------------------------------------
-
-
-OCIAttrSet()
-Name
-OCI Attribute Set
-Purpose
-This call is used to set a particular attribute of a handle or a descriptor. 
-Syntax
-sword OCIAttrSet ( dvoid       *trgthndlp,
-                 ub4         trghndltyp,
-                 dvoid       *attributep,
-                 ub4         size,
-                 ub4         attrtype,
-                 OCIError    *errhp );
-Comments
-This call is used to set a particular attribute of a handle or a descriptor. 
-See Appendix B for a list of handle types and their writeable attributes.
-Parameters
-trghndlp (IN/OUT) - the pointer to a handle type whose attribute gets 
-modified. 
-trghndltyp (IN/OUT) - is the handle type. 
-attributep (IN) - a pointer to an attribute value. 
-The attribute value is copied into the target handle. If the attribute value 
-is a pointer, then only the pointer is copied, not the contents of the pointer.
-size (IN) - is the size of an attribute value. This can be passed in as 0 for 
-most attributes as the size is already known by the OCI library. For OraText*
-attributes, a ub4 must be passed in set to the length of the string. 
-attrtype (IN) - the type of attribute being set.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-Related Functions
-OCIAttrGet()
-
-
-
---------------------------------OCIBindArrayOfStruct--------------------------
-
-
-
-OCIBindArrayOfStruct()
-Name
-OCI Bind for Array of Structures
-Purpose
-This call sets up the skip parameters for a static array bind.
-Syntax
-sword OCIBindArrayOfStruct ( OCIBind     *bindp,
-                           OCIError    *errhp,
-                           ub4         pvskip, 
-                           ub4         indskip, 
-                           ub4         alskip, 
-                           ub4         rcskip );
-Comments
-This call sets up the skip parameters necessary for a static array bind.
-This call follows a call to OCIBindByName() or OCIBindByPos(). The bind 
-handle returned by that initial bind call is used as a parameter for the 
-OCIBindArrayOfStruct() call.
-For information about skip parameters, see the section "Arrays of Structures" 
-on page 4-16.
-Parameters
-bindp (IN) - the handle to a bind structure. 
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-pvskip (IN) - skip parameter for the next data value. 
-indskip (IN) - skip parameter for the next indicator value or structure. 
-alskip (IN) - skip parameter for the next actual length value. 
-rcskip (IN) - skip parameter for the next column-level return code value. 
-Related Functions
-OCIAttrGet()
-
-
---------------------------------OCIBindByName---------------------------------
-
-
-OCIBindByName()
-Name
-OCI Bind by Name
-Purpose
-Creates an association between a program variable and a placeholder in a SQL 
-statement or PL/SQL block.
-Syntax
-sword OCIBindByName (
-              OCIStmt       *stmtp, 
-              OCIBind       **bindp,
-              OCIError      *errhp,
-              CONST OraText    *placeholder,
-              sb4           placeh_len,
-              dvoid         *valuep,
-              sb4           value_sz,
-              ub2           dty,
-              dvoid         *indp,
-              ub2           *alenp,
-              ub2           *rcodep,
-              ub4           maxarr_len,
-              ub4           *curelep, 
-              ub4           mode ); 
-Description
-This call is used to perform a basic bind operation. The bind creates an 
-association between the address of a program variable and a placeholder in a 
-SQL statement or PL/SQL block. The bind call also specifies the type of data 
-which is being bound, and may also indicate the method by which data will be 
-provided at runtime.
-This function also implicitly allocates the bind handle indicated by the bindp 
-parameter.
-Data in an OCI application can be bound to placeholders statically or 
-dynamically. Binding is static when all the IN bind data and the OUT bind 
-buffers are well-defined just before the execute. Binding is dynamic when the 
-IN bind data and the OUT bind buffers are provided by the application on 
-demand at execute time to the client library. Dynamic binding is indicated by 
-setting the mode parameter of this call to OCI_DATA_AT_EXEC.
-Related Functions: For more information about dynamic binding, see 
-the section "Runtime Data Allocation and Piecewise Operations" on 
-page 5-16.
-Both OCIBindByName() and OCIBindByPos() take as a parameter a bind handle, 
-which is implicitly allocated by the bind call A separate bind handle is 
-allocated for each placeholder the application is binding.
-Additional bind calls may be required to specify particular attributes 
-necessary when binding certain data types or handling input data in certain 
-ways:
-If arrays of structures are being utilized, OCIBindArrayOfStruct() must 
-be called to set up the necessary skip parameters.
-If data is being provided dynamically at runtime, and the application 
-will be using user-defined callback functions, OCIBindDynamic() must 
-be called to register the callbacks.
-If a named data type is being bound, OCIBindObject() must be called to 
-specify additional necessary information.
-Parameters
-stmth (IN/OUT) - the statement handle to the SQL or PL/SQL statement 
-being processed.
-bindp (IN/OUT) - a pointer to a pointer to a bind handle which is implicitly 
-allocated by this call.  The bind handle  maintains all the bind information for 
-this particular input value. The handle is feed implicitly when the statement 
-handle is deallocated.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-placeholder (IN) - the placeholder attributes are specified by name if ocibindn() 
-is being called.
-placeh_len (IN) - the length of the placeholder name specified in placeholder.
-valuep (IN/OUT) - a pointer to a data value or an array of data values of the 
-type specified in the dty parameter. An array of data values can be specified 
-for mapping into a PL/SQL table or for providing data for SQL multiple-row 
-operations. When an array of bind values is provided, this is called an array 
-bind in OCI terms. Additional attributes of the array bind (not bind to a 
-column of ARRAY type) are set up in OCIBindArrayOfStruct() call. 
-For a REF, named data type  bind, the valuep parameter is used only for IN 
-bind data. The pointers to OUT buffers are set in the pgvpp parameter 
-initialized by OCIBindObject(). For named data type and REF binds, the bind 
-values are unpickled into the Object Cache. The OCI object navigational calls 
-can then be used to navigate the objects and the refs in the Object Cache.
-If the OCI_DATA_AT_EXEC mode is specified in the mode parameter, valuep 
-is ignored for all data types. OCIBindArrayOfStruct() cannot be used and 
-OCIBindDynamic() must be invoked to provide callback functions if desired. 
-value_sz (IN) - the size of a data value. In the case of an array bind, this is the 
-maximum size of any element possible with the actual sizes being specified in 
-the alenp parameter. 
-If the OCI_DATA_AT_EXEC mode is specified, valuesz defines the maximum 
-size of the data that can be ever provided at runtime for data types other than 
-named data types or REFs. 
-dty (IN) - the data type of the value(s) being bound. Named data types 
-(SQLT_NTY) and REFs (SQLT_REF) are valid only if the application has been 
-initialized in object mode. For named data types, or REFs, additional calls 
-must be made with the bind handle to set up the datatype-specific attributes.
-indp (IN/OUT) - pointer to an indicator variable or array. For scalar data 
-types, this is a pointer to sb2 or an array of sb2s. For named data types, 
-this pointer is ignored and the actual pointer to the indicator structure or 
-an array of indicator structures is initialized by OCIBindObject(). 
-Ignored for dynamic binds.
-See the section "Indicator Variables" on page 2-43 for more information about 
-indicator variables.
-alenp (IN/OUT) - pointer to array of actual lengths of array elements. Each 
-element in alenp is the length of the data in the corresponding element in the 
-bind value array before and after the execute. This parameter is ignored for 
-dynamic binds.
-rcodep (OUT) - pointer to array of column level return codes. This parameter 
-is ignored for dynamic binds.
-maxarr_len (IN) - the maximum possible number of elements of type dty in a 
-PL/SQL binds. This parameter is not required for non-PL/SQL binds. If 
-maxarr_len is non-zero, then either OCIBindDynamic() or 
-OCIBindArrayOfStruct() can be invoked to set up additional bind attributes. 
-curelep(IN/OUT) - a pointer to the actual number of elements. This parameter 
-is only required for PL/SQL binds.
-mode (IN) - the valid modes for this parameter are:
-OCI_DEFAULT. This is default mode.
-OCI_DATA_AT_EXEC. When this mode is selected, the value_sz 
-parameter defines the maximum size of the data that can be ever 
-provided at runtime. The application must be ready to provide the OCI 
-library runtime IN data buffers at any time and any number of times. 
-Runtime data is provided in one of the two ways:
-callbacks using a user-defined function which must be registered 
-with a subsequent call to OCIBindDynamic(). 
-a polling mechanism using calls supplied by the OCI. This mode 
-is assumed if no callbacks are defined.
-For more information about using the OCI_DATA_AT_EXEC mode, see 
-the section "Runtime Data Allocation and Piecewise Operations" on 
-page 5-16.
-When the allocated buffers are not required any more, they should be 
-freed by the client. 
-Related Functions
-OCIBindDynamic(), OCIBindObject(), OCIBindArrayOfStruct(), OCIAttrGet()
-
-
--------------------------------OCIBindByPos----------------------------------
-
-
-OCIBindByPos()
-Name
-OCI Bind by Position
-Purpose
-Creates an association between a program variable and a placeholder in a SQL 
-statement or PL/SQL block.
-Syntax
-sword OCIBindByPos ( 
-              OCIStmt      *stmtp, 
-              OCIBind      **bindp,
-              OCIError     *errhp,
-              ub4          position,
-              dvoid        *valuep,
-              sb4          value_sz,
-              ub2          dty,
-              dvoid        *indp,
-              ub2          *alenp,
-              ub2          *rcodep,
-              ub4          maxarr_len,
-              ub4          *curelep, 
-              ub4          mode);
-
-Description
-This call is used to perform a basic bind operation. The bind creates an 
-association between the address of a program variable and a placeholder in a 
-SQL statement or PL/SQL block. The bind call also specifies the type of data 
-which is being bound, and may also indicate the method by which data will be 
-provided at runtime.
-This function also implicitly allocates the bind handle indicated by the bindp 
-parameter.
-Data in an OCI application can be bound to placeholders statically or 
-dynamically. Binding is static when all the IN bind data and the OUT bind 
-buffers are well-defined just before the execute. Binding is dynamic when the 
-IN bind data and the OUT bind buffers are provided by the application on 
-demand at execute time to the client library. Dynamic binding is indicated by 
-setting the mode parameter of this call to OCI_DATA_AT_EXEC.
-Related Functions: For more information about dynamic binding, see 
-the section "Runtime Data Allocation and Piecewise Operations" on 
-page 5-16
-Both OCIBindByName() and OCIBindByPos() take as a parameter a bind handle, 
-which is implicitly allocated by the bind call A separate bind handle is 
-allocated for each placeholder the application is binding.
-Additional bind calls may be required to specify particular attributes 
-necessary when binding certain data types or handling input data in certain 
-ways:
-If arrays of structures are being utilized, OCIBindArrayOfStruct() must 
-be called to set up the necessary skip parameters.
-If data is being provided dynamically at runtime, and the application 
-will be using user-defined callback functions, OCIBindDynamic() must 
-be called to register the callbacks.
-If a named data type is being bound, OCIBindObject() must be called to 
-specify additional necessary information.
-Parameters
-stmth (IN/OUT) - the statement handle to the SQL or PL/SQL statement 
-being processed.
-bindp (IN/OUT) - a pointer to a pointer to a bind handle which is implicitly 
-allocated by this call.  The bind handle  maintains all the bind information for 
-this particular input value. The handle is feed implicitly when the statement 
-handle is deallocated.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-position (IN) - the placeholder attributes are specified by position if ocibindp() 
-is being called.
-valuep (IN/OUT) - a pointer to a data value or an array of data values of the 
-type specified in the dty parameter. An array of data values can be specified 
-for mapping into a PL/SQL table or for providing data for SQL multiple-row 
-operations. When an array of bind values is provided, this is called an array 
-bind in OCI terms. Additional attributes of the array bind (not bind to a 
-column of ARRAY type) are set up in OCIBindArrayOfStruct() call. 
-For a REF, named data type  bind, the valuep parameter is used only for IN 
-bind data. The pointers to OUT buffers are set in the pgvpp parameter 
-initialized by OCIBindObject(). For named data type and REF binds, the bind 
-values are unpickled into the Object Cache. The OCI object navigational calls 
-can then be used to navigate the objects and the refs in the Object Cache.
-If the OCI_DATA_AT_EXEC mode is specified in the mode parameter, valuep 
-is ignored for all data types. OCIBindArrayOfStruct() cannot be used and 
-OCIBindDynamic() must be invoked to provide callback functions if desired. 
-value_sz (IN) - the size of a data value. In the case of an array bind, this is the 
-maximum size of any element possible with the actual sizes being specified in 
-the alenp parameter. 
-If the OCI_DATA_AT_EXEC mode is specified, valuesz defines the maximum 
-size of the data that can be ever provided at runtime for data types other than 
-named data types or REFs. 
-dty (IN) - the data type of the value(s) being bound. Named data types 
-(SQLT_NTY) and REFs (SQLT_REF) are valid only if the application has been 
-initialized in object mode. For named data types, or REFs, additional calls 
-must be made with the bind handle to set up the datatype-specific attributes.
-indp (IN/OUT) - pointer to an indicator variable or array. For scalar data 
-types, this is a pointer to sb2 or an array of sb2s. For named data types, 
-this pointer is ignored and the actual pointer to the indicator structure or 
-an array of indicator structures is initialized by OCIBindObject(). Ignored 
-for dynamic binds.
-See the section "Indicator Variables" on page 2-43 for more information about 
-indicator variables.
-alenp (IN/OUT) - pointer to array of actual lengths of array elements. Each 
-element in alenp is the length of the data in the corresponding element in the 
-bind value array before and after the execute. This parameter is ignored for 
-dynamic binds.
-rcodep (OUT) - pointer to array of column level return codes. This parameter 
-is ignored for dynamic binds.
-maxarr_len (IN) - the maximum possible number of elements of type dty in a 
-PL/SQL binds. This parameter is not required for non-PL/SQL binds. If 
-maxarr_len is non-zero, then either OCIBindDynamic() or 
-OCIBindArrayOfStruct() can be invoked to set up additional bind attributes. 
-curelep(IN/OUT) - a pointer to the actual number of elements. This parameter 
-is only required for PL/SQL binds.
-mode (IN) - the valid modes for this parameter are:
-OCI_DEFAULT. This is default mode.
-OCI_DATA_AT_EXEC. When this mode is selected, the value_sz 
-parameter defines the maximum size of the data that can be ever 
-provided at runtime. The application must be ready to provide the OCI 
-library runtime IN data buffers at any time and any number of times. 
-Runtime data is provided in one of the two ways:
-callbacks using a user-defined function which must be registered 
-with a subsequent call to OCIBindDynamic() . 
-a polling mechanism using calls supplied by the OCI. This mode 
-is assumed if no callbacks are defined.
-For more information about using the OCI_DATA_AT_EXEC mode, see 
-the section "Runtime Data Allocation and Piecewise Operations" on 
-page 5-16.
-When the allocated buffers are not required any more, they should be 
-freed by the client. 
-Related Functions
-OCIBindDynamic(), OCIBindObject(), OCIBindArrayOfStruct(), OCIAttrGet()
-
-
-
--------------------------------OCIBindDynamic---------------------------------
-
-
-OCIBindDynamic()
-Name
-OCI Bind Dynamic Attributes
-Purpose
-This call is used to register user callbacks for dynamic data allocation. 
-Syntax
-sword OCIBindDynamic( OCIBind     *bindp,
-                    OCIError    *errhp,
-                    dvoid       *ictxp, 
-                    OCICallbackInBind         (icbfp)(
-                                dvoid            *ictxp,
-                                OCIBind          *bindp,
-                                ub4              iter, 
-                                ub4              index, 
-                                dvoid            **bufpp,
-                                ub4              *alenp,
-                                ub1              *piecep, 
-                                dvoid            **indp ),
-                    dvoid       *octxp,
-                    OCICallbackOutBind         (ocbfp)(
-                                dvoid            *octxp,
-                                OCIBind          *bindp,
-                                ub4              iter, 
-                                ub4              index, 
-                                dvoid            **bufp, 
-                                ub4              **alenpp,
-                                ub1              *piecep,
-                                dvoid            **indpp, 
-                                ub2              **rcodepp)   );
-Comments
-This call is used to register user-defined callback functions for providing data 
-for an UPDATE or INSERT if OCI_DATA_AT_EXEC mode was specified in a 
-previous call to OCIBindByName() or OCIBindByPos(). 
-The callback function pointers must return OCI_CONTINUE if it the call is 
-successful. Any return code other than OCI_CONTINUE signals that the client 
-wishes to abort processing immediately.
-For more information about the OCI_DATA_AT_EXEC mode, see the section 
-"Runtime Data Allocation and Piecewise Operations" on page 5-16.
-Parameters
-bindp (IN/OUT) - a bind handle returned by a call to OCIBindByName() or 
-OCIBindByPos(). 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-ictxp (IN) - the context pointer required by the call back function icbfp. 
-icbfp (IN) - the callback function which returns a pointer to the IN bind 
-value or piece at run time. The callback takes in the following parameters. 
-ictxp (IN/OUT) - the context pointer for this callback function. 
-bindp (IN) - the bind handle passed in to uniquely identify this bind 
-variable. 
-iter (IN) - 1-based execute iteration value. 
-index (IN) - index of the current array, for an array bind. 1 based not 
-greater than curele parameter of the bind call. 
-index (IN) - index of the current array, for an array bind. This parameter 
-is 1-based, and may not be greater than curele parameter of the bind call. 
-bufpp (OUT) - the pointer to the buffer. 
-piecep (OUT) - which piece of the bind value. This can be one of the 
-following values - OCI_ONE_PIECE, OCI_FIRST_PIECE, 
-OCI_NEXT_PIECE and OCI_LAST_PIECE.
-indp (OUT) - contains the indicator value. This is apointer to either an 
-sb2 value or a pointer to an indicator structure for binding named data 
-types. 
-indszp (OUT) - contains the indicator value size. A pointer containing 
-the size of either an sb2 or an indicator structure pointer. 
-octxp (IN) - the context pointer required by the callback function ocbfp. 
-ocbfp (IN) - the callback function which returns a pointer to the OUT bind 
-value or piece at run time. The callback takes in the following parameters. 
-octxp (IN/OUT) - the context pointer for this call back function. 
-bindp (IN) - the bind handle passed in to uniquely identify this bind 
-variable. 
-iter (IN) - 1-based execute iteration value. 
-index (IN) - index of the current array, for an array bind. This parameter 
-is 1-based, and must not be greater than curele parameter of the bind call. 
-bufpp (OUT) - a pointer to a buffer to write the bind value/piece. 
-buflp (OUT) - returns the buffer size. 
-alenpp (OUT) - a pointer to a storage for OCI to fill in the size of the bind 
-value/piece after it has been read. 
-piecep (IN/OUT) - which piece of the bind value. It will be set by the 
-library to be one of the following values - OCI_ONE_PIECE or 
-OCI_NEXT_PIECE. The callback function can leave it unchanged or set 
-it to OCI_FIRST_PIECE or OCI_LAST_PIECE. By default - 
-OCI_ONE_PIECE. 
-indpp (OUT) - returns a pointer to contain the indicator value which 
-either an sb2 value or a pointer to an indicator structure for named data 
-types. 
-indszpp (OUT) - returns a pointer to return the size of the indicator 
-value which is either size of an sb2 or size of an indicator structure. 
-rcodepp (OUT) - returns a pointer to contains the return code. 
-Related Functions
-OCIAttrGet()
-
-
-
----------------------------------OCIBindObject--------------------------------
-
-
-OCIBindObject()
-Name
-OCI Bind Object
-Purpose
-This function sets up additional attributes which are required for a named 
-data type (object)  bind.
-Syntax
-sword OCIBindObject ( OCIBind          *bindp,
-                    OCIError         *errhp, 
-                    CONST OCIType    *type,
-                    dvoid            **pgvpp, 
-                    ub4              *pvszsp, 
-                    dvoid            **indpp, 
-                    ub4              *indszp, );
-Comments
-This function sets up additional attributes which binding a named data type 
-or a REF. An error will be returned if this function is called when the OCI 
-environment has been initialized in non-object mode. 
-This call takes as a paramter a type descriptor object (TDO) of datatype 
-OCIType for the named data type being defined.  The TDO can be retrieved 
-with a call to OCITypeByName().
-If the OCI_DATA_AT_EXEC mode was specified in ocibindn() or ocibindp(), the 
-pointers to the IN buffers are obtained either using the callback icbfp 
-registered in the OCIBindDynamic() call or by the OCIStmtSetPieceInfo() call. 
-The buffers are dynamically allocated for the OUT data and the pointers to 
-these buffers are returned either by calling ocbfp() registered by the 
-OCIBindDynamic() or by setting the pointer to the buffer in the buffer passed 
-in by OCIStmtSetPieceInfo() called when OCIStmtExecute() returned 
-OCI_NEED_DATA. The memory of these client library- allocated buffers must be 
-freed when not in use anymore by using the OCIObjectFreee() call.
-Parameters
-bindp ( IN/OUT) - the bind handle returned by the call to OCIBindByName() 
-or OCIBindByPos(). 
-errhp ( IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-type ( IN) - points to the TDO which describes the type of the program 
-variable being bound. Retrieved by calling OCITypeByName().
-pgvpp ( IN/OUT) - points to a pointer to the program variable buffer. For an 
-array, pgvpp points to an array of pointers. When the bind variable is also an 
-OUT variable, the OUT Named Data Type value or REF is allocated 
-(unpickled) in the Object Cache, and a pointer to the value or REF is returned,
-At the end of execute, when all OUT values have been received, pgvpp points 
-to an array of pointer(s) to these newly allocated named data types in the 
-object cache. 
-pgvpp is ignored if the OCI_DATA_AT_EXEC mode is set. Then the Named 
-Data Type buffers are requested at runtime. For static array binds, skip 
-factors may be specified using the OCIBindArrayOfStruct() call. The skip 
-factors are used to compute the address of the next pointer to the value, the 
-indicator structure and their sizes.
-pvszsp ( IN/OUT) - points to the size of the program variable. The size of the 
-named data type is not required on input. For an array, pvszsp is an array of 
-ub4s. On return, for OUT bind variables, this points to size(s) of the Named 
-Data Types and REFs received. pvszsp is ignored if the OCI_DATA_AT_EXEC 
-mode is set. Then the size of the buffer is taken at runtime.
-indpp ( IN/OUT) - points to a pointer to the program variable buffer 
-containing the parallel indicator structure. For an array, points to an array of 
-pointers. When the bind variable is also an OUT bind variable, memory is 
-allocated in the object cache, to store the unpickled OUT indicator values. At 
-the end of the execute when all OUT values have been received, indpp points 
-to the pointer(s) to these newly allocated indicator structure(s). 
-indpp is ignored if the OCI_DATA_AT_EXEC mode is set. Then the indicator 
-is requested at runtime.
-indszp ( IN/OUT) - points to the size of the IN indicator structure program 
-variable. For an array, it is an array of sb2s. On return for OUT bind variables, 
-this points to size(s) of the received OUT indicator structures.
-indszp is ignored if the OCI_DATA_AT_EXEC mode is set. Then the indicator 
-size is requested at runtime.
-Related Functions
-OCIAttrGet()
-
-
-
-----------------------------------OCIBreak------------------------------------
-
-
-
-OCIBreak()
-Name
-OCI Break
-Purpose
-This call performs an immediate (asynchronous) abort of any currently 
-executing OCI function that is associated with a server .
-Syntax
-sword OCIBreak ( dvoid      *hndlp,
-                 OCIError   *errhp);
-Comments
-This call performs an immediate (asynchronous) abort of any currently 
-executing OCI function that is associated with a server. It is normally used 
-to stop a long-running OCI call being processed on the server.
-This call can take either the service context handle or the server context 
-handle as a parameter to identify the function to be aborted.
-Parameters
-hndlp (IN) - the service context handle or the server context handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-Related Functions
-
------------------------------OCIConnectionPoolCreate --------------------------
-Name:
-OCIConnectionPoolCreate
-
-Purpose:
-Initializes the Connection Pool
-
-Syntax:
-OCIConnectionPoolCreate (OCIEnv *envhp, OCIError *errhp, OCICPool *poolhp,
-                         OraText **poolName, sb4 *poolNameLen,
-                         CONST Oratext *dblink, sb4 dblinkLen,
-                         ub4 connMin, ub4 connMax, ub4 connIncr,
-                         CONST OraText *poolUsername, sb4 poolUserLen,
-                         CONST OraText *poolPassword, sb4 poolPassLen, ub4 mode)
-Comments:
-This call is used to create a connection pool. conn_min connections
-to the database are started on calling OCIConnectionPoolCreate.
-
-Parameters:
-envhp (IN/OUT)  - A pointer to the environment where the Conencton Pool
-                  is to be created
-errhp (IN/OUT)  - An error handle which can be passed to OCIErrorGet().
-poolhp (IN/OUT) - An uninitialiazed pool handle.
-poolName (OUT) - The connection pool name. 
-poolNameLen (OUT) - The length of the connection pool name 
-dblink (IN/OUT) - Specifies the database(server) to connect. This will also
-                  be used as the default pool name.
-dblinkLen (IN)  - The length of the string pointed to by dblink.
-connMin (IN)    - Specifies the minimum number of connections in the
-                  Connection Pool at any instant.
-                  connMin number of connections are started when
-                  OCIConnectionPoolCreate() is called.
-connMax (IN)    - Specifies the maximum number of connections that can be
-                  opened to the database. Once this value is reached, no
-                  more connections are opened.
-connIncr (IN)   - Allows application to set the next increment for
-                  connections to be opened to the database if the current
-                  number of connections are less than conn_max.
-poolUsername (IN/OUT) - Connection pooling requires an implicit proxy
-                         session and this attribute provides a username
-                         for that session.
-poolUserLen (IN) - This represents the length of pool_username.
-poolPassword (IN/OUT) - The password for the parameter pool_username passed
-                        above.
-poolPassLen (IN) - This represents the length of pool_password.
-
-mode (IN) - The modes supported are OCI_DEFAULT and OCI_REINITIALIZE
-
-Related Functions
-OCIConnectionPoolDestroy()
----------------------------------------------------------------------------
-
-----------------------------OCIConnectionPoolDestroy-------------------------
-Name:
-OCIConnectionPoolDestroy
-
-Purpose:
-Destroys the Connection Pool.
-
-Syntax:
-OCIConnectionPoolDestroy (OCICPool *poolhp, OCIError *errhp, ub4 mode)
-
-Comments:
-On calling OCIConnectionPoolDestroy, all the open connections in the pool
-are closed and the pool is destroyed.
-
-Parameters:
-poolhp (IN/OUT) - An uninitialiazed pool handle.
-errhp (IN/OUT)  - An error handle which can be passed to OCIErrorGet().
-mode (IN)       - Currently, OCIConnectionPoolDestroy() will support only
-                  the OCI_DEFAULT mode.
-
-Related Functions:
-OCIConnectionPoolCreate()
-
------------------------------------------------------------------------------
-----------------------------OCISessionPoolCreate-----------------------------
-Name:
-OCISessionPoolCreate
-
-Purpose:
-Creates the sessions in the session pool.
-
-Syntax:
-sword OCISessionPoolCreate (OCIEnv *envhp, OCIError *errhp, OCISpool *spoolhp,
-                      OraText **poolName, ub4 *poolNameLen,
-                      CONST OraText *connStr, ub4 connStrLen,
-                      ub4 sessMin, ub4 sessMax, ub4 sessIncr,
-                      OraText *userid,  ub4 useridLen,
-                      OraText *password, ub4 passwordLen,
-                      ub4 mode)
-
-Comments:
-When OCISessionPoolCreate is called, a session pool is initialized for
-the associated environment and the database specified by the
-connStr parameter. This pool is named uniquely and the name
-is returned to the user in the poolname parameter.
-
-Parameters:
-envhp (IN/OUT) - A pointer to the environment handle in which the session
-                 pool needs to be created.
-errhp (IN/OUT) - An error handle which can be passed to OCIErrorGet().
-spoolhp (IN/OUT) - A pointer to the session pool handle that is created.
-poolName (OUT) - Session pool name returned to the user.
-poolNameLen (OUT) - Length of the PoolName
-connStr (IN) - The TNS alias of the database to connect to.
-connStrLen (IN) - Length of the connStr.
-sessMin (IN) - Specifies the minimum number of sessions in the Session Pool.
-               These are the number of sessions opened in the beginning, if
-               in Homogeneous mode. Else, the parameter is ignored.
-sessMax (IN) - Specifies the maximum number of sessions in the Session Pool.
-               Once this value is reached, no more sessions are opened,
-               unless the OCI_ATTR_SPOOL_FORCEGET is set.
-userid (IN) - Specifies the userid with which to start up the sessions.
-useridLen (IN) - Length of userid.
-password (IN) - Specifies the password for the corresponding userid.
-passwordLen (IN) - Specifies the length of the password
-mode(IN) - May be OCI_DEFAULT, OCI_SPC_SPOOL_REINITIALIZE, or
-           OCI_SPC_SPOOL_HOMOGENEOUS.
-
-Returns:
-SUCCESS - If pool could be allocated and created successfully.
-ERROR - If above conditions could not be met.
-
-Related Functions:
-OCISessionPoolDestroy()
------------------------------------------------------------------------------
------------------------------OCISessionPoolDestroy---------------------------
-Name:
-OCISessionPoolDestroy
-
-Purpose:
-Terminates all the sessions in the session pool.
-
-Syntax:
-sword OCISessionPoolDestroy (OCISPool *spoolhp, OCIError *errhp, ub4 mode)
-
-Comments:
-spoolhp (IN/OUT) - The pool handle of the session pool to be destroyed.
-errhp (IN/OUT) - An error handle which can be passed to OCIErrorGet().
-mode (IN) - Currently only OCI_DEFAULT mode is supported.
-
-Returns:
-SUCCESS - All the sessions could be closed.
-ERROR - If the above condition is not met.
-
-Related Functions:
-OCISessionPoolCreate()
------------------------------------------------------------------------------
--------------------------------OCISessionGet---------------------------------
-Name:
-OCISessionGet
-
-Purpose:
-Get a session. This could be from a session pool, connection pool or
-a new standalone session.
-
-Syntax:
-sword OCISessionGet(OCIenv *envhp, OCIError *errhp, OCISvcCtx **svchp,
-                    OCIAuthInfo *authhp,
-                    OraText *poolName, ub4 poolName_len,
-                    CONST OraText *tagInfo, ub4 tagInfo_len,
-                    OraText **retTagInfo, ub4 *retTagInfo_len,
-                    boolean *found,
-                    ub4 mode)
-
-Comments:
-envhp (IN/OUT) - OCI environment handle.
-errhp (IN/OUT) - OCI error handle to be passed to OCIErrorGet().
-svchp (IN/OUT) - Address of an OCI service context pointer. This will be
-                 filled with a server and session handle, attached to the
-                 pool.
-authhp (IN/OUT) - OCI Authentication Information handle.
-poolName (IN) - This indicates the session/connection pool to get the
-                session/connection from in the OCI_SPOOL/OCI_CPOOL mode.
-                In the OCI_DEFAULT mode it refers to the connect string.
-poolName_len (IN) - length of poolName.
-tagInfo (IN) - indicates the tag of the session that the user wants. If the
-                   user wants a default session, he must specify a NULL here.
-                   Only used for Session Pooling.
-tagInfo_len (IN) - the length of tagInfo.
-retTagInfo (OUT) - This indicates the type of session that is returned to
-                   the user. Only used for Session Pooling.
-retTagInfo_len (OUT) - the length of retTagInfo.
-found (OUT) - set to true if the user gets a session he had requested, else
-              set to false. Only used for Session Pooling.
-mode (IN) - The supported modes are OCI_DEFAULT, OCI_CRED_PROXY and
-            OCI_GET_SPOOL_MATCHANY, OCI_SPOOL and OCI_CPOOL. OCI_SPOOL and
-            OCI_CPOOL are mutually exclusive.
-
-Returns:
-SUCCESS -  if a session was successfully returned into svchp.
-SUCCESS_WITH_INFO - if a session was successfully returned into svchp and the
-                    total number of sessions > maxsessions. Only valid for
-                    Session Pooling.
-ERROR - If a session could not be retrieved.
-
-Related Functions:
-OCISessionRelease()
------------------------------------------------------------------------------
----------------------------OCISessionRelease---------------------------------
-Name:
-OCISessionRelease
-
-Purpose:
-Release the session.
-
-Syntax:
-sword OCISessionRelease ( OCISvcCtx *svchp, OCIError *errhp,
-                          OraText *tag, ub4 tag_len,
-                          ub4 mode);
-
-Comments:
-svchp (IN/OUT) - The service context associated with the session/connection.
-errhp (IN/OUT) - OCI error handle to be passed to OCIErrorGet().
-tag (IN) - Only used for Session Pooling.
-           This parameter will be ignored unless mode OCI_RLS_SPOOL_RETAG is
-           specified. In this case, the session is labelled with this tag and
-           returned to the pool. If this is NULL, then the session is untagged.
-tag_len (IN) - Length of the tag. This is ignored unless mode 
-               OCI_RLS_SPOOL_RETAG is set.
-mode (IN) - The supported modes are OCI_DEFAULT, OCI_RLS_SPOOL_DROPSESS,
-            OCI_RLS_SPOOL_RETAG. The last 2 are only valid for Session Pooling.
-            When OCI_RLS_SPOOL_DROPSESS is specified, the session
-            will be removed from the session pool. If OCI_RLS_SPOOL_RETAG is 
-            set, the tag on the session will be altered. If this mode is not 
-            set, the tag and tag_len parameters will be ignored.
-
-Returns:
-ERROR - If the session could not be released successfully.
-SUCCESS - In all other cases.
-
-Related Functions:
-OCISessionGet().
-
------------------------------------------------------------------------------
-------------------------------OCIDateTimeAssign --------------------------
-sword OCIDateTimeAssign(dvoid *hndl, OCIError *err, CONST OCIDateTime *from, 
-			 OCIDateTime *to);
-NAME: OCIDateTimeAssign - OCIDateTime Assignment
-PARAMETERS:
-hndl (IN) - Session/Env handle.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-from (IN) - datetime to be assigned
-to (OUT) - lhs of assignment
-DESCRIPTION:
-        Performs date assignment. The type of the output will be same as that
-	of input
-
-------------------------------OCIDateTimeCheck--------------------
-sword OCIDateTimeCheck(dvoid *hndl, OCIError *err, CONST OCIDateTime *date, 
-		 ub4 *valid );
-NAME: OCIDateTimeCheck - OCIDateTime CHecK if the given date is valid
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-date (IN) - date to be checked
-type (IN) - type of the input datetime(OCI_DATE, OCI_TIME, 
-				OCI_TIMESTAMP,	OCI_TZTIMESTAMP, OCI_TZTIME)
-valid (OUT) -  returns zero for a valid date, otherwise 
-  		the ORed combination of all error bits specified below:
-   Macro name                   Bit number      Error
-   ----------                   ----------      -----
-   OCI_DATE_INVALID_DAY         0x1             Bad day
-   OCI_DATE_DAY_BELOW_VALID     0x2             Bad DAy Low/high bit (1=low)
-   OCI_DATE_INVALID_MONTH       0x4             Bad MOnth
-   OCI_DATE_MONTH_BELOW_VALID   0x8             Bad MOnth Low/high bit (1=low)
-   OCI_DATE_INVALID_YEAR        0x10            Bad YeaR
-   OCI_DATE_YEAR_BELOW_VALID    0x20            Bad YeaR Low/high bit (1=low)
-   OCI_DATE_INVALID_HOUR        0x40            Bad HouR
-   OCI_DATE_HOUR_BELOW_VALID    0x80            Bad HouR Low/high bit (1=low)
-   OCI_DATE_INVALID_MINUTE      0x100           Bad MiNute
-   OCI_DATE_MINUTE_BELOW_VALID	0x200           Bad MiNute Low/high bit (1=low)
-   OCI_DATE_INVALID_SECOND      0x400           Bad SeCond
-   OCI_DATE_SECOND_BELOW_VALID  0x800           bad second Low/high bit (1=low)
-   OCI_DATE_DAY_MISSING_FROM_1582 0x1000        Day is one of those "missing"
-                                                from 1582
-   OCI_DATE_YEAR_ZERO           0x2000          Year may not equal zero
-   OCI_DATE_INVALID_TIMEZONE    0x4000          Bad Timezone
-   OCI_DATE_INVALID_FORMAT      0x8000          Bad date format input
-
-   So, for example, if the date passed in was 2/0/1990 25:61:10 in
-   (month/day/year hours:minutes:seconds format), the error returned
-   would be OCI_DATE_INVALID_DAY | OCI_DATE_DAY_BELOW_VALID |
-   OCI_DATE_INVALID_HOUR | OCI_DATE_INVALID_MINUTE
-
-DESCRIPTION:
-  	Check if the given date is valid.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-  	  'date' and 'valid' pointers are NULL pointers
-
-------------------------------- OCIDateTimeCompare-------------------------
-sword OCIDateTimeCompare(dvoid *hndl, OCIError *err, CONST OCIDateTime *date1, 
-                     CONST OCIDateTime *date2,  sword *result );
-NAME: OCIDateTimeCompare - OCIDateTime CoMPare dates
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-date1, date2 (IN) - dates to be compared
-type (IN)  - Type of datetime to be compared. Both input datetimes
-			should be of same type.(OCI_DATE, OCI_TIME, 
-				OCI_TIMESTAMP, OCI_TZTIMESTAMP, OCI_TZTIME)
-result (OUT) - comparison result, 0 if equal, -1 if date1 < date2, 
-  		1 if date1 > date2
-DESCRIPTION:
-The function OCIDateCompare compares two dates. It returns -1 if 
-date1 is smaller than date2, 0 if they are equal, and 1 if date1 is 
-greater than date2.
-RETURNS:
-       OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-  	  invalid date
-	  input dates are not mutually comparable
-
-------------------------------OCIDateTimeConvert----------------------
-sword OCIDateTimeConvert(dvoid *hndl, OCIError *err, OCIDateTime *indate, 
-				OCIDateTime *outdate);
-NAME: OCIDateTimeConvert - Conversion between different DATETIME types
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-indate (IN) - pointer to input date
-outdate (OUT) - pointer to output datetime 
-DESCRIPTION: Converts one datetime type to another. The result type is
-       the type of the 'outdate' descriptor.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-	OCI_ERROR if
-	    conversion not possible.
-   
----------------------------- OCIDateTimeFromText-----------------------
-sword OCIDateTimeFromText(dvoid *hndl, OCIError *err, CONST OraText *date_str, 
-                     size_t d_str_length, CONST OraText *fmt, ub1 fmt_length, 
-                     CONST OraText *lang_name, size_t lang_length, 
-                     OCIDateTime *date );
-NAME: OCIDateTimeFromText - OCIDateTime convert String FROM Date
-PARAMETERS:
-hndl (IN) - Session/Env handle. If Session Handle is passed, the 
-		    conversion takes place in session NLS_LANGUAGE and
-		    session NLS_CALENDAR, otherwise the default is used.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-date_str (IN) - input string to be converted to Oracle date
-d_str_length (IN) - size of the input string, if the length is -1
-  		then 'date_str' is treated as a null terminated  string
-fmt (IN) - conversion format; if 'fmt' is a null pointer, then
-                the string is expected to be in the default format for
-		the datetime type.
-fmt_length (IN) - length of the 'fmt' parameter
-lang_name (IN) - language in which the names and abbreviations of
-  	        days and months are specified, if null i.e. (OraText *)0,
-  		the default language of session is used, 
-lang_length (IN) - length of the 'lang_name' parameter
-date (OUT) - given string converted to date
-DESCRIPTION:
-  	Converts the given string to Oracle datetime type set in the 
-        OCIDateTime descriptor according to the specified format. Refer to 
-        "TO_DATE" conversion function described in "Oracle SQL Language 
-        Reference Manual" for a description of format.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-  	  invalid format
-  	  unknown language
-  	  invalid input string
-
---------------------------- OCIDateTimeGetDate-------------------------
-void OCIDateTimeGetDate(dvoid *hndl, OCIError *err,  CONST OCIDateTime *date, 
-		 sb2 *year, ub1 *month, ub1 *day );
-NAME: OCIDateTimeGetDate - OCIDateTime Get Date (year, month, day)  
-				portion of DATETIME. 
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - Pointer to OCIDateTime 
-year      (OUT) - year value
-month     (OUT) - month value
-day       (OUT) - day value
-
---------------------------- OCIDateTimeGetTime ------------------------
-void OCIDateTimeGetTime(dvoid *hndl, OCIError *err, OCIDateTime *datetime, 
-		 ub1 *hour, ub1 *min, ub1 *sec, ub4 *fsec);
-NAME: OCIDateTimeGetTime - OCIDateTime Get Time (hour, min, second, 
-			fractional second)  of DATETIME. 
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - Pointer to OCIDateTime 
-hour      (OUT) - hour value
-min       (OUT) - minute value
-sec       (OUT) - second value
-fsec      (OUT) - Fractional Second value
-
---------------------------- OCIDateTimeGetTimeZoneOffset ----------------------
-sword OCIDateTimeGetTimeZoneOffset(dvoid *hndl,OCIError *err,CONST 
-              OCIDateTime *datetime,sb1 *hour,sb1  *minute);
- 
-NAME: OCIDateTimeGetTimeZoneOffset - OCIDateTime Get TimeZone (hour, minute)  
-                         portion of DATETIME. 
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - Pointer to OCIDateTime 
-hour      (OUT) - TimeZone Hour value
-minute     (OUT) - TimeZone Minute value
- 
-
-------------------------------OCIDateTimeIntervalAdd----------------------
-sword OCIDateTimeIntervalAdd(dvoid *hndl, OCIError *err, OCIDateTime *datetime,
-	 OCIInterval *inter, OCIDateTime *outdatetime);
-NAME: OCIDateTimeIntervalAdd - Adds an interval to datetime
-PARAMETERS:
-hndl (IN) - Session/Env handle.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - pointer to input datetime
-inter    (IN) - pointer to interval 
-outdatetime (IN) - pointer to output datetime. The output datetime 
-				will be of same type as input datetime
-DESCRIPTION: 
-	Adds an interval to a datetime to produce a resulting datetime
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-	OCI_ERROR if:
-		resulting date is before Jan 1, -4713
-		resulting date is after Dec 31, 9999
-
-------------------------------OCIDateTimeIntervalSub----------------------
-sword OCIDateTimeIntervalSub(dvoid *hndl, OCIError *err, OCIDateTime *datetime,
-	 OCIInterval *inter, OCIDateTime *outdatetime);
-NAME: OCIDateTimeIntervalSub - Subtracts an interval from a datetime
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - pointer to input datetime
-inter    (IN) - pointer to interval 
-outdatetime (IN) - pointer to output datetime. The output datetime 
-				will be of same type as input datetime
-DESCRIPTION: 
- 	Subtracts an interval from a datetime and stores the result in a
-     	datetime
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-	OCI_ERROR if:
-		resulting date is before Jan 1, -4713
-		resulting date is after Dec 31, 9999
-
---------------------------- OCIDateTimeConstruct-------------------------
-sword OCIDateTimeConstruct(dvoid  *hndl,OCIError *err,OCIDateTime *datetime,
-               sb2 year,ub1 month,ub1 day,ub1 hour,ub1 min,ub1 sec,ub4 fsec,
-               OraText  *timezone,size_t timezone_length);
-
-   NAME: OCIDateTimeConstruct - Construct an OCIDateTime. Only the relevant
-       fields for the OCIDateTime descriptor types are used.
-   PARAMETERS:
-        hndl (IN) - Session/Env handle. 
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        datetime (IN) - Pointer to OCIDateTime 
-        year      (IN) - year value
-        month     (IN) - month value
-        day       (IN) - day value        
-        hour      (IN) - hour value
-        min       (IN) - minute value
-        sec       (IN) - second value
-        fsec      (IN) - Fractional Second value
-        timezone  (IN) - Timezone string
-        timezone_length(IN) - Length of timezone string
-DESCRIPTION:
-       Constructs a DateTime descriptor. The type of the datetime is the
-       type of the OCIDateTime descriptor. Only the relevant fields based
-       on the type are used. For Types with timezone, the date and time
-       fields are assumed to be in the local time of the specified timezone.
-       If timezone is not specified, then session default timezone is
-       assumed.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_ERROR if datetime is not valid.
---------------------------- OCIDateTimeSysTimeStamp---------------------
-sword OCIDateTimeSysTimeStamp(dvoid *hndl, OCIError *err, 
-              OCIDateTime *sys_date );
- 
-NAME: OCIDateTimeSysTimeStamp - Returns system date/time as a TimeStamp with 
-                      timezone
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-sys_date (OUT) - Pointer to output timestamp
- 
-DESCRIPTION: 
-        Gets the system current date and time as a timestamp with timezone
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
- 
-
-------------------------------OCIDateTimeSubtract-----------------------
-sword OCIDateTimeSubtract(dvoid *hndl, OCIError *err, OCIDateTime *indate1, 
-		OCIDateTime *indate2,	OCIInterval *inter);
-NAME: OCIDateTimeSubtract - subtracts two datetimes to return an interval
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-indate1(IN) - pointer to subtrahend
-indate2(IN) - pointer to minuend
-inter  (OUT) - pointer to output interval
-DESCRIPTION: 
-	Takes two datetimes as input and stores their difference in an 
-        interval. The type of the result interval is the type of the 
-        'inter' descriptor.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-	OCI_ERROR if
-	   datetimes are not comparable.
-
---------------------------- OCIDateTimeToText--------------------------
-sword OCIDateTimeToText(dvoid *hndl, OCIError *err, CONST OCIDateTime *date, 
-                        CONST OraText *fmt, ub1 fmt_length, ub1 fsprec,
-                        CONST OraText *lang_name, size_t lang_length, 
-                        ub4 *buf_size, OraText *buf );
-NAME: OCIDateTimeToText - OCIDateTime convert date TO String 
-PARAMETERS:
-hndl (IN) - Session/Env handle. If Session Handle is passed, the 
-		    conversion takes place in session NLS_LANGUAGE and
-		    session NLS_CALENDAR, otherwise the default is used.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-date (IN) - Oracle datetime to be converted
-fmt (IN) - conversion format, if null string pointer (OraText*)0, then
-                the date is converted to a character string in the
-                default format for that type.
-fmt_length (IN) - length of the 'fmt' parameter
-fsprec (IN) - specifies the fractional second precision in which the
-               fractional seconds is returned.
-lang_name (IN) - specifies the language in which the names and 
-  	        abbreviations of months and days are returned;
-  	        default language of session is used if 'lang_name' 
-  		is null i.e. (OraText *)0
-lang_length (IN) - length of the 'nls_params' parameter
-buf_size (IN/OUT) - size of the buffer; size of the resulting string
-                is returned via this parameter
-buf (OUT) - buffer into which the converted string is placed
-DESCRIPTION:
-        Converts the given date to a string according to the specified format.
-        Refer to "TO_DATE" conversion function described in
-        "Oracle SQL Language Reference Manual" for a description of format
-        and NLS arguments. The converted null-terminated date string is
-        stored in the buffer 'buf'.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-  	  buffer too small
-  	  invalid format
-  	  unknown language
-          overflow error
-
-----------------------------OCIDateTimeGetTimeZoneName------------------------
-sword OCIDateTimeGetTimeZoneName(dvoid *hndl, 
-                                 OCIError *err,
-                                 CONST OCIDateTime *datetime,
-                                 ub1 *buf,
-                                 ub4 *buflen);
-NAME OCIDateTimeGetTimeZoneName - OCI DateTime Get the Time Zone Name
-PARAMETERS:
-hndl (IN)      - Session/Env handle.
-err (IN/OUT)   - error handle. If there is an error, it is
-                 recorded in 'err' and this function returns OCI_ERROR.
-                 The error recorded in 'err' can be retrieved by calling
-                 OCIErrorGet().
-datetime (IN)   - Pointer to an OCIDateTime.
-buf (OUT)       - User allocated storage for name string.
-buflen (IN/OUT) - length of buf on input, length of name on out
-DESCRIPTION:
-        Returns either the timezone region name or the absolute hour and minute
-        offset. If the DateTime was created with a region id then the region 
-        name will be returned in the buf.  If the region id is zero, then the 
-        hour and minute offset is returned as "[-]HH:MM".
-RETURNS:
-       OCI_SUCCESS if the function completes successfully.
-       OCI_INVALID_HANDLE if 'err' is NULL.
-       OCI_ERROR if
-         buffer too small
-         error retrieving timezone data
-         invalid region 
-         invalid LdiDateTime type
-
-----------------------------OCIDateTimeFromArray-------------------------------
-sword OCIDateTimeFromArray(dvoid *hndl, 
-                         OCIError *err,
-                         ub1 *inarray,
-                         ub4 len
-                         ub1 type
-                         OCIDateTime *datetime,
-                         OCIInterval *reftz,
-                         ub1 fsprec);
-NAME OCIDateTimeFromArray - OCI DateTime convert From Array format
-PARAMETERS:
-hndl (IN)      - Session/Env handle.
-err (IN/OUT)   - error handle. If there is an error, it is
-                 recorded in 'err' and this function returns OCI_ERROR.
-                 The error recorded in 'err' can be retrieved by calling
-                 OCIErrorGet().
-inarray (IN)   - Pointer to input array representtion of DateTime
-len (IN)       - len of inarray.
-type (IN)      - One of SQLT_DATE, SQLT_TIME, SQLT_TIME_TZ, SQLT_TIMESTAMP,
-                 SQLT_TIMESTAMP_TZ, or SQLT_TIMESTAMP_LTZ.
-datetime (OUT) - Pointer to the result OCIDateTime.
-reftz (IN)     - timezone interval used with SQLT_TIMESTAMP_LTZ.
-fsprec (IN)    - fractionl seconds digits of precision (0-9).
-DESCRIPTION:
-        Returns a pointer to an OCIDateTime of type type converted from 
-        the inarray.
-RETURNS:
-       OCI_SUCCESS if the function completes successfully.
-       OCI_INVALID_HANDLE if 'err' is NULL.
-       OCI_ERROR if
-         buffer too small
-         error retrieving timezone data
-         invalid region 
-         invalid LdiDateTime type
-
------------------------------OCIDateTimeToArray------------------------------
-sword OCIDateTimeToArray(dvoid *hndl, 
-                         OCIError *err,
-                         CONST OCIDateTime *datetime,
-                         CONST OCIInterval *reftz,
-                         ub1 *outarray,
-                         ub4 len,
-                         ub1 fsprec);
-NAME OCIDateTimeToArray - OCI DateTime convert To Array format
-PARAMETERS:
-hndl (IN)      - Session/Env handle.
-err (IN/OUT)   - error handle. If there is an error, it is
-                 recorded in 'err' and this function returns OCI_ERROR.
-                 The error recorded in 'err' can be retrieved by calling
-                 OCIErrorGet().
-datetime (IN)  - Pointer to the OCIDateTime to convert.
-reftz (IN)     - Interval defining the timezone for SQLT_TIMESTAMP_LTZ.
-outarray (OUT) - result array.
-len (IN)       - length of outarray.
-fsprec (IN)    - number of fractional seconds digits. 
-DESCRIPTION:
-        Returns an array representing the input DateTime descriptor.
-RETURNS:
-       OCI_SUCCESS if the function completes successfully.
-       OCI_INVALID_HANDLE if 'err' is NULL.
-       OCI_ERROR if
-         buffer too small
-         error retrieving timezone data
-         invalid region 
-         invalid LdiDateTime type
-
-----------------------------------OCIRowidToChar-----------------------------
-Name
-OCIRowidToChar
-
-Purpose
-Converts physical/logical (universal) ROWID to chracter extended (Base 64)
-representation into user provided buffer outbfp of length outbflp. After
-execution outbflp contains amount of bytes converted.In case of truncation
-error, outbflp contains required size to make this conversion successful
-and returns ORA-1405.
-
-Syntax
-sword OCIRowidToChar( OCIRowid *rowidDesc,
-                      OraText *outbfp,
-                      ub2 *outbflp,
-                      OCIError *errhp)
-
-Comments
-After this conversion, ROWID in character format can be bound using
-OCIBindByPos or OCIBindByName call and used to query a row at a
-desired ROWID.
-
-Parameters
-rowidDesc (IN)   - rowid DESCriptor which is allocated from OCIDescritorAlloc
-                   and populated by a prior SQL statement execution
-outbfp (OUT)     - pointer to the buffer where converted rowid in character
-                   representation is stored after successful execution.
-outbflp (IN/OUT) - pointer to output buffer length variable.
-                   Before execution (IN mode) *outbflp contains the size of
-                   outbfp, after execution (OUT mode) *outbflp contains amount
-                   of bytes converted. In an event of truncation during
-                   conversion *outbflp contains the required length to make
-                   conversion successful.
-errhp (IN/OUT)   - an error handle which can be passed to OCIErrorGet() for
-                   diagnostic information in the event of an error.
-
-------------------------------OCIDefineArrayOfStruct--------------------------
-
-
-OCIDefineArrayOfStruct()
-Name
-OCI Define for Array of Structures
-Purpose
-This call specifies additional attributes necessary for a static array define.
-Syntax
-sword OCIDefineArrayOfStruct ( OCIDefine   *defnp,
-                             OCIError    *errhp,
-                             ub4         pvskip, 
-                             ub4         indskip, 
-                             ub4         rlskip,
-                             ub4         rcskip );
-Comments
-This call specifies additional attributes necessary for an array define, used in 
-an array of structures (multi-row, multi-column) fetch.
-For more information about skip parameters, see the section "Skip Parameters" 
-on page 4-17.
-Parameters
-defnp (IN) - the handle to the define structure which was returned by a call 
-to OCIDefineByPos().
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-pvskip (IN) - skip parameter for the next data value.
-indskip (IN) - skip parameter for the next indicator location. 
-rlskip (IN) - skip parameter for the next return length value.
-rcskip (IN) - skip parameter for the next return code.
-Related Functions
-OCIAttrGet()
-
-
-
-
-
-OCIDefineByPos()
-Name
-OCI Define By Position
-Purpose
-Associates an item in a select-list with the type and output data buffer. 
-Syntax
-sb4 OCIDefineByPos ( 
-              OCIStmt     *stmtp, 
-              OCIDefine   **defnp,
-              OCIError    *errhp,
-              ub4         position,
-              dvoid       *valuep,
-              sb4         value_sz,
-              ub2         dty,
-              dvoid       *indp,
-              ub2         *rlenp,
-              ub2         *rcodep,
-              ub4         mode );
-Comments
-This call defines an output buffer which will receive data retreived from 
-Oracle. The define is a local step which is necessary when a SELECT statement 
-returns data to your OCI application.
-This call also implicitly allocates the define handle for the select-list item.
-Defining attributes of a column for a fetch is done in one or more calls. The 
-first call is to OCIDefineByPos(), which defines the minimal attributes 
-required to specify the fetch. 
-This call takes as a parameter a define handle, which must have been 
-previously allocated with a call to OCIHandleAlloc().
-Following the call to OCIDefineByPos() additional define calls may be 
-necessary for certain data types or fetch modes:
-A call to OCIDefineArrayOfStruct() is necessary to set up skip parameters 
-for an array fetch of multiple columns.
-A call to OCIDefineObject() is necessary to set up the appropriate 
-attributes of a named data type fetch. In this case the data buffer pointer 
-in ocidefn() is ignored.
-Both OCIDefineArrayOfStruct() and OCIDefineObject() must be called 
-after ocidefn() in order to fetch multiple rows with a column of named 
-data types.
-For a LOB define, the buffer pointer must be a lob locator of type 
-OCILobLocator , allocated by the OCIDescAlloc() call. LOB locators, and not 
-LOB values, are always returned for a LOB column. LOB values can then be 
-fetched using OCI LOB calls on the fetched locator.
-For NCHAR (fixed and varying length), the buffer pointer must point to an 
-array of bytes sufficient for holding the required NCHAR characters. 
-Nested table columns are defined and fetched like any other named data type. 
-If the mode parameter is this call is set to OCI_DYNAMIC_FETCH, the client 
-application can fetch data dynamically at runtime.
-Runtime data can be provided in one of two ways:
-callbacks using a user-defined function which must be registered with a 
-subsequent call to OCIDefineDynamic(). When the client library needs a 
-buffer to return the fetched data, the callback will be invoked and the 
-runtime buffers provided will return a piece or the whole data. 
-a polling mechanism using calls supplied by the OCI. This mode is 
-assumed if no callbacks are defined. In this case, the fetch call returns the 
-OCI_NEED_DATA error code, and a piecewise polling method is used 
-to provide the data.
-Related Functions: For more information about using the 
-OCI_DYNAMIC_FETCH mode, see the section "Runtime Data 
-Allocation and Piecewise Operations" on page 5-16 of Volume 1..
-For more information about the define step, see the section "Defining" 
-on page 2-30.
-Parameters
-stmtp (IN) - a handle to the requested SQL query operation.
-defnp (IN/OUT) - a pointer to a pointer to a define handle which is implicitly 
-allocated by this call.  This handle is used to  store the define information 
-for this column.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-position (IN) - the position of this value in the select list. Positions are 
-1-based and are numbered from left to right. For example, in the SELECT 
-statement
-SELECT empno, ssn, mgrno FROM employees;
-empno is at position 1, ssn is at position 2, and mgrno is at position 3.
-valuep (IN/OUT) - a pointer to a buffer or an array of buffers of the type 
-specified in the dty parameter. A number of buffers can be specified when 
-results for more than one row are desired in a single fetch call.
-value_sz (IN) - the size of each valuep buffer in bytes. If the data is stored 
-internally in VARCHAR2 format, the number of characters desired, if different 
-from the buffer size in bytes, may be additionally specified by the using 
-OCIAttrSet(). 
-In an NLS conversion environment, a truncation error will be generated if the 
-number of bytes specified is insufficient to handle the number of characters 
-desired.
-dty (IN) - the data type. Named data type (SQLT_NTY) and REF (SQLT_REF) 
-are valid only if the environment has been intialized with in object mode. 
-indp - pointer to an indicator variable or array. For scalar data types, 
-pointer to sb2 or an array of sb2s. Ignored for named data types. For named 
-data types, a pointer to a named data type indicator structure or an array of 
-named data type indicator structures is associated by a subsequent 
-OCIDefineObject() call. 
-See the section "Indicator Variables" on page 2-43 for more information about 
-indicator variables.
-rlenp (IN/OUT) - pointer to array of length of data fetched. Each element in 
-rlenp is the length of the data in the corresponding element in the row after 
-the fetch. 
-rcodep (OUT) - pointer to array of column-level return codes
-mode (IN) - the valid modes are:
-OCI_DEFAULT. This is the default mode.
-OCI_DYNAMIC_FETCH. For applications requiring dynamically 
-allocated data at the time of fetch, this mode must be used. The user may 
-additionally call OCIDefineDynamic() to set up a callback function that 
-will be invoked to receive the dynamically allocated buffers and to set 
-up the memory allocate/free callbacks and the context for the callbacks. 
-valuep and value_sz are ignored in this mode. 
-Related Functions
-OCIDefineArrayOfStruct(), OCIDefineDynamic(), OCIDefineObject()
-
-
-
-
-OCIDefineDynamic()
-Name
-OCI Define Dynamic Fetch Attributes
-Purpose
-This call is used to set the additional attributes required if the 
-OCI_DYNAMIC_FETCH mode was selected in OCIDefineByPos(). 
-Syntax
-sword OCIDefineDynamic( OCIDefine   *defnp,
-                      OCIError    *errhp,
-                      dvoid       *octxp, 
-                      OCICallbackDefine (ocbfp)(
-                                  dvoid             *octxp,
-                                  OCIDefine         *defnp,
-                                  ub4               iter, 
-                                  dvoid             **bufpp,
-                                  ub4               **alenpp,
-                                  ub1               *piecep,
-                                  dvoid             **indpp,
-                                  ub2               **rcodep)  );
-Comments
-This call is used to set the additional attributes required if the 
-OCI_DYNAMIC_FETCH mode has been selected in a call to 
-OCIDefineByPos(). 
-When the OCI_DYNAMIC_FETCH mode is selected, buffers will be 
-dynamically allocated for REF, and named data type, values to receive the 
-data. The pointers to these buffers will be returned. 
-If OCI_DYNAMIC_FETCH mode was selected, and the call to 
-OCIDefineDynamic() is skipped, then the application can fetch data piecewise 
-using OCI calls.
-For more information about OCI_DYNAMIC_FETCH mode, see the section 
-"Runtime Data Allocation and Piecewise Operations" on page 5-16.
-Parameters
-defnp (IN/OUT) - the handle to a define structure returned by a call to 
-OCIDefineByPos().
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-octxp (IN) - points to a context for the callback function. 
-ocbfp (IN) - points to a callback function. This is invoked at runtime to get 
-a pointer to the buffer into which the fetched data or a piece of it will be 
-retreived. The callback also specifies the indicator, the return code and the 
-lengths of the data piece and indicator. The callback has the following 
-parameters:
-octxp (IN) - a context pointer passed as an argument to all the callback 
-functions.
-defnp (IN) - the define handle.
-iter (IN) - which row of this current fetch.
-bufpp (OUT) - returns a pointer to a buffer to store the column value, ie. 
-*bufp points to some appropriate storage for the column value.
-alenpp (OUT) - returns a pointer to the length of the buffer. *alenpp 
-contains the size of the buffer after return from callback. Gets set to 
-actual data size after fetch.
-piecep (IN/OUT) - returns a piece value, as follows:
-The IN value can be OCI_ONE_PIECE, OCI_FIRST_PIECE or 
-OCI_NEXT_PIECE.
-The OUT value can be OCI_ONE_PIECE if the IN value was 
-OCI_ONE_PIECE.
-The OUT value can be OCI_ONE_PIECE or OCI_FIRST_PIECE if 
-the IN value was OCI_FIRST_PIECE.
-The OUT value can only be OCI_NEXT_PIECE or 
-OCI_LAST_PIECE if the IN value was OCI_NEXT_PIECE. 
-indpp (IN) - indicator variable pointer
-rcodep (IN) - return code variable pointer
-Related Functions
-OCIAttrGet()
-OCIDefineObject()
-
-
-
-
-OCIDefineObject()
-Name
-OCI Define Named Data Type attributes
-Purpose
-Sets up additional attributes necessary for a Named Data Type define.
-Syntax
-sword OCIDefineObject ( OCIDefine       *defnp,
-                      OCIError        *errhp,
-                      CONST OCIType   *type,
-                      dvoid           **pgvpp, 
-                      ub4             *pvszsp, 
-                      dvoid           **indpp, 
-                      ub4             *indszp );
-Comments
-This call sets up additional attributes necessary for a Named Data Type define.An error will be returned if this function is called when the OCI environment 
-has been initialized in non-Object mode.
-This call takes as a paramter a type descriptor object (TDO) of datatype 
-OCIType for the named data type being defined.  The TDO can be retrieved 
-with a call to OCITypeByName().
-See the description of OCIInitialize() on page 13 - 43 for more information 
-about initializing the OCI process environment.
-Parameters
-defnp (IN/OUT) - a define handle previously allocated in a call to 
-OCIDefineByPos(). 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-type (IN, optional) - points to the Type Descriptor Object (TDO) which 
-describes the type of the program variable. Only used for program variables 
-of type SQLT_NTY. This parameter is optional, and may be passed as NULL 
-if it is not being used.
-pgvpp (IN/OUT) - points to a pointer to a program variable buffer. For an 
-array, pgvpp points to an array of pointers. Memory for the fetched named data 
-type instance(s) is dynamically allocated in the object cache. At the end of the 
-fetch when all the values have been received, pgvpp points to the pointer(s) to
-these newly allocated named data type instance(s). The application must call 
-OCIObjectMarkDel() to deallocate the named data type instance(s) when they 
-are no longer needed. 
-pvszsp (IN/OUT) - points to the size of the program variable. For an array, it 
-is an array of ub4s. On return points to the size(s) of unpickled fetched 
-values.
-indpp (IN/OUT) - points to a pointer to the program variable buffer 
-containing the parallel indicator structure. For an array, points to an array 
-of pointers. Memory is allocated to store the indicator structures in the 
-object cache. At the end of the fetch when all values have been received, 
-indpp points to the pointer(s) to these newly allocated indicator structure(s).
-indszp (IN/OUT) - points to the size(s) of the indicator structure program 
-variable. For an array, it is an array of ub4s. On return points to the size(s)
-of the unpickled fetched indicator values.
-Related Functions
-OCIAttrGet()
-
-
-
-OCIDescAlloc()
-Name
-OCI Get DESCriptor or lob locator
-Purpose
-Allocates storage to hold certain data types. The descriptors can be used as 
-bind or define variables.
-Syntax
-sword OCIDescAlloc ( CONST dvoid   *parenth,
-                   dvoid         **descpp, 
-                   ub4           type,
-                   size_t        xtramem_sz,
-                   dvoid         **usrmempp);
-Comments
-Returns a pointer to an allocated and initialized structure, corresponding to 
-the type specified in type. A non-NULL descriptor or LOB locator is returned 
-on success. No diagnostics are available on error.
-This call returns OCI_SUCCESS if successful, or OCI_INVALID_HANDLE if 
-an out-of-memory error occurs. 
-Parameters
-parenth (IN) - an environment handle. 
-descpp (OUT) - returns a descriptor or LOB locator of desired type. 
-type (IN) - specifies the type of descriptor or LOB locator to be allocated. 
-The specific types are:
-OCI_DTYPE_SNAP - specifies generation of snapshot descriptor of C 
-type - OCISnapshot
-OCI_DTYPE_LOB - specifies generation of a LOB data type locator of C 
-type - OCILobLocator
-OCI_DTYPE_RSET - specifies generation of a descriptor of C type 
-OCIResult that references a result set (a number of rows as a result of a 
-query). This descriptor is bound to a bind variable of data type 
-SQLT_RSET (result set). The descriptor has to be converted into a 
-statement handle using a function - OCIResultSetToStmt() - which can 
-then be passed to OCIDefineByPos() and OCIStmtFetch() to retrieve the 
-rows of the result set.
-OCI_DTYPE_ROWID - specifies generation of a ROWID descriptor of C 
-type OCIRowid.
-OCI_DTYPE_COMPLEXOBJECTCOMP - specifies generation of a 
-complex object retrieval descriptor of C type 
-OCIComplexObjectComp.
-xtramemsz (IN) - specifies an amount of user memory to be allocated for use 
-by the application. 
-usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz 
-allocated by the call for the user. 
-Related Functions
-OCIDescFree()
-
-
-
-
-OCIDescFree()
-Name
-OCI Free DESCriptor
-Purpose
-Deallocates a previously allocated descriptor.
-Syntax
-sword OCIDescFree ( dvoid    *descp,
-                  ub4      type);
-Comments
-This call frees up storage associated with the descriptor, corresponding to the
-type specified in type. Returns OCI_SUCCESS or OCI_INVALID_HANDLE. 
-All descriptors must be explicitly deallocated. OCI will not deallocate a 
-descriptor if the environment handle is deallocated.
-Parameters
-descp (IN) - an allocated descriptor. 
-type (IN) - specifies the type of storage to be freed. The specific types are: 
-OCI_DTYPE_SNAP - snapshot descriptor
-OCI_DTYPE_LOB - a LOB data type descriptor
-OCI_DTYPE_RSET - a descriptor that references a result set (a number 
-of rows as a result of a query).
-OCI_DTYPE_ROWID - a ROWID descriptor
-OCI_DTYPE_COMPLEXOBJECTCOMP - a complex object retrieval 
-descriptor
-Related Functions
-OCIDescAlloc()
-
-
-
-OCIDescribeAny()
-Name
-OCI DeSCribe Any
-Purpose
-Describes existing schema objects.
-Syntax
-sword OCIDescribeAny ( OCISvcCtx     *svchp,
-                     OCIError      *errhp,
-                     dvoid         *objptr,
-                     ub4           objptr_len,
-   		     ub1           objptr_typ,
-                     ub1           info_level,
-		     ub1           objtype,
-                     OCIDesc       *dschp );
-Comments
-This is a generic describe call that describes existing schema objects: tables,
-views, synonyms, procedures, functions, packages, sequences, and types. As a 
-result of this call, the describe handle is populated with the object-specific 
-attributes which can be obtained through an OCIAttrGet() call.
-An OCIParamGet() on the describe handle returns a parameter descriptor for a 
-specified position. Parameter positions begin with 1. Calling OCIAttrGet() on 
-the parameter descriptor returns the specific attributes of a stored procedure 
-or function parameter or a table column descriptor as the case may be. 
-These subsequent calls do not need an extra round trip to the server because 
-the entire schema object description cached on the client side by 
-OCIDescribeAny(). Calling OCIAttrGet() on the describe handle can also return 
-the total number of positions.
-See the section "Describing" on page 2-33 for more information about describe 
-operations.
-Parameters
-TO BE UPDATED
-svchp (IN/OUT) - a service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-objptr (IN) - the name of the object (a null-terminated string) to be 
-described. Only procedure or function names are valid when connected to an 
-Oracle7 Server.
-objptr_len (IN) - the length of the string. Must be non-zero.
-objptr_typ (IN) - Must be OCI_OTYPE_NAME, OCI_OTYPE_REF, or OCI_OTYPE_PTR.
-info_level (IN) - reserved for future extensions. Pass OCI_DEFAULT.
-objtype (IN/OUT) - Object type.
-dschp (IN/OUT) - a describe handle that is populated with describe 
-information about the object after the call.
-Related Functions
-OCIAttrGet()
-
-
-
-OCIEnvCreate()
-Name
-OCI ENVironment CREATE
-Purpose
-This function creates and initializes an environment for the rest of
-the OCI functions to work under.  This call is a replacement for both
-the OCIInitialize and OCIEnvInit calls.
-Syntax
-sword OCIEnvCreate  ( OCIEnv        **envhpp, 
-                      ub4           mode, 
-                      dvoid         *ctxp, 
-                      dvoid         *(*malocfp) 
-                                    (dvoid *ctxp, 
-                                        size_t size), 
-                      dvoid         *(*ralocfp) 
-                                    (dvoid *ctxp, 
-                                       dvoid *memptr, 
-                                       size_t newsize), 
-                      void          (*mfreefp) 
-                                    (dvoid *ctxp, 
-                                       dvoid *memptr))
-                      size_t        xtramemsz,
-                      dvoid         **usrmempp );
- 
-Comments
-This call creates an environment for all the OCI calls using the modes
-specified by the user. This call can be used instead of the two calls
-OCIInitialize and OCIEnvInit. This function returns an environment handle
-which is then used by the remaining OCI functions. There can be multiple
-environments in OCI each with its own environment modes.  This function 
-also performs any process level initialization if required by any mode.
-For example if the user wants to initialize an environment as OCI_THREADED,
-then all libraries that are used by OCI are also initialized in the
-threaded mode. 
-
-This call should be invoked before anny other OCI call and should be used
-instead of the OCIInitialize and OCIEnvInit calls. This is the recommended
-call, although OCIInitialize and OCIEnvInit calls will still be supported
-for backward compatibility. 
- 
-envpp (OUT) - a pointer to a handle to the environment. 
-mode (IN) - specifies initialization of the mode. The valid modes are:
-OCI_DEFAULT - default mode.
-OCI_THREADED - threaded environment. In this mode, internal data 
-structures are protected from concurrent accesses by multiple threads. 
-OCI_OBJECT - will use navigational object interface. 
-ctxp (IN) - user defined context for the memory call back routines. 
-malocfp (IN) - user-defined memory allocation function. If mode is 
-OCI_THREADED, this memory allocation routine must be thread safe.
-ctxp - context pointer for the user-defined memory allocation function.
-size - size of memory to be allocated by the user-defined memory 
-allocation function
-ralocfp (IN) - user-defined memory re-allocation function. If mode is 
-OCI_THREADED, this memory allocation routine must be thread safe.
-ctxp - context pointer for the user-defined memory reallocation 
-function.
-memp - pointer to memory block
-newsize - new size of memory to be allocated
-mfreefp (IN) - user-defined memory free function. If mode is 
-OCI_THREADED, this memory free routine must be thread safe.
-ctxp - context pointer for the user-defined memory free function.
-memptr - pointer to memory to be freed
-xtramemsz (IN) - specifies the amount of user memory to be allocated. 
-usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz 
-allocated by the call for the user.
-
-Example
-
-Related Functions
-OCIInitialize, OCIEnvInit
-
-
-OCIEnvNlsCreate()
-Name
-OCI ENVironment CREATE with NLS info
-Purpose
-This function does almost everything OCIEnvCreate does, plus enabling setting
-of charset and ncharset programmatically, except OCI_UTF16 mode. 
-Syntax
-sword OCIEnvNlsCreate(OCIEnv        **envhpp,
-                      ub4           mode,
-                      dvoid         *ctxp,
-                      dvoid         *(*malocfp)
-                                    (dvoid *ctxp,
-                                        size_t size),
-                      dvoid         *(*ralocfp)
-                                    (dvoid *ctxp,
-                                       dvoid *memptr,
-                                       size_t newsize),
-                      void          (*mfreefp)
-                                    (dvoid *ctxp,
-                                       dvoid *memptr),
-                      size_t        xtramemsz,
-                      dvoid         **usrmempp,
-                      ub2           charset,
-                      ub2           ncharset)
-Comments
-The parameters have the same meaning as the ones in OCIEnvCreate().
-The charset and ncharset must be both zero or non-zero.
-When charset or ncharset is non-zero, the corresponding character set will
-be used to replace the ones specified in NLS_LANG or NLS_NCHAR. Moreover,
-OCI_UTF16ID is allowed to be set as charset and ncharset.
-On the other hand, OCI_UTF16 mode is deprecated with this function. 
-Applications can achieve the same effects by setting 
-both charset and ncharset as OCI_UTF16ID.
-
-
-OCIEnvInit()
-Name
-OCI INITialize environment
-Purpose
-This call initializes the OCI environment handle.
-Syntax
-sword OCIEnvInit ( OCIEnv    **envp,
-                 ub4       mode,
-                 size_t    xtramemsz,
-                 dvoid     **usrmempp );
-Comments
-Initializes the OCI environment handle. No changes are done on an initialized 
-handle. If OCI_ERROR or OCI_SUCCESS_WITH_INFO is returned, the 
-environment handle can be used to obtain ORACLE specific errors and 
-diagnostics.
-This call is processed locally, without a server round-trip.
-Parameters
-envpp (OUT) - a pointer to a handle to the environment. 
-mode (IN) - specifies initialization of an environment mode. The only valid 
-mode is OCI_DEFAULT for default mode
-xtramemsz (IN) - specifies the amount of user memory to be allocated. 
-usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz 
-allocated by the call for the user.
-Example
-See the description of OCISessionBegin() on page 13-84 for an example showing 
-the use of OCIEnvInit(). 
-Related Functions
-
-
-
-
-OCIErrorGet()
-Name
-OCI Get Diagnostic Record
-Purpose
-Returns an error message in the buffer provided and an ORACLE error.
-Syntax
-sword OCIErrorGet ( dvoid      *hndlp, 
-                  ub4        recordno,
-                  OraText       *sqlstate,
-                  ub4        *errcodep, 
-                  OraText       *bufp,
-                  ub4        bufsiz,
-                  ub4        type );
-Comments
-Returns an error message in the buffer provided and an ORACLE error. 
-Currently does not support SQL state. This call can be called a multiple 
-number of times if there are more than one diagnostic record for an error.
-The error handle is originally allocated with a call to OCIHandleAlloc().
-Parameters
-hndlp (IN) - the error handle, in most cases, or the environment handle (for 
-errors on OCIEnvInit(), OCIHandleAlloc()).
-recordno (IN) - indicates the status record from which the application seeks 
-info. Starts from 1. 
-sqlstate (OUT) - Not supported in Version 8.0.
-errcodep (OUT) - an ORACLE Error is returned.
-bufp (OUT) - the error message text is returned.
-bufsiz (IN) - the size of the buffer provide to get the error message.
-type (IN) - the type of the handle.
-Related Functions
-OCIHandleAlloc()
-
-OCIExtractInit
-Name
-OCI Extract Initialize 
-Purpose
-This function initializes the parameter manager. 
-Syntax
-sword OCIExtractInit(dvoid *hndl, OCIError *err);
-Comments
-It must be called before calling any other parameter manager routine. The NLS 
-information is stored inside the parameter manager context and used in 
-subsequent calls to OCIExtract routines.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-Related Functions
-OCIExtractTerm()
-
-OCIExtractTerm
-Name
-OCI Extract Terminate
-Purpose
-This function releases all dynamically allocated storage and may perform 
-other internal bookkeeping functions.
-Syntax
-sword OCIExtractTerm(dvoid *hndl, OCIError *err);
-Comments
-It must be called when the parameter manager is no longer being used.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-Related Functions
-OCIExtractInit()
-
-OCIExtractReset
-Name
-OCI Extract Reset
-Purpose
-The memory currently used for parameter storage, key definition storage, and 
-parameter value lists is freed and the structure is reinitialized.
-Syntax
-sword OCIExtractReset(dvoid *hndl, OCIError *err);
-Comments
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-Related Functions
-
-OCIExtractSetNumKeys
-Name
-OCI Extract Set Number of Keys
-Purpose
-Informs the parameter manager of the number of keys that will be registered.
-Syntax
-sword OCIExtractSetNumKeys(dvoid *hndl, OCIError *err, uword numkeys);
-Comments
-This routine must be called prior to the first call of OCIExtractSetKey().  
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-numkeys (IN) - The number of keys that will be registered with 
-               OCIExtractSetKey().
-Related Functions
-OCIExtractSetKey()
-
-OCIExtractSetKey
-Name
-OCI Extract Set Key definition
-Purpose
-Registers information about a key with the parameter manager.
-Syntax
-sword OCIExtractSetKey(dvoid *hndl, OCIError *err, CONST OraText *name, ub1 type,
-                       ub4 flag, CONST dvoid *defval, CONST sb4 *intrange, 
-                       CONST OraText *CONST *strlist);
-Comments
-This routine must be called after calling OCIExtractSetKey() and before 
-calling OCIExtractFromFile() or OCIExtractFromStr().  
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-name (IN) - The name of the key.
-type (IN) - The type of the key (OCI_EXTRACT_TYPE_INTEGER, 
-            OCI_EXTRACT_TYPE_OCINUM, OCI_EXTRACT_TYPE_STRING, or 
-            OCI_EXTRACT_TYPE_BOOLEAN).
-flag (IN) - Set to OCI_EXTRACT_MULTIPLE if the key can take multiple values 
-            or 0 otherwise.
-defval (IN) - Set to the default value for the key.  May be NULL if there is 
-               no default.  A string default must be a (text*) type, an 
-               integer default must be an (sb4*) type, and a boolean default 
-               must be a (ub1*) type.
-intrange (IN) - Starting and ending values for the allowable range of integer 
-                values.  May be NULL if the key is not an integer type or if 
-                all integer values are acceptable.
-strlist (IN) - List of all acceptable text strings for the key.  May be NULL 
-               if the key is not a string type or if all text values are 
-               acceptable.
-Related Functions
-OCIExtractSetNumKeys()
-
-OCIExtractFromFile
-Name
-OCI Extract parameters From File
-Purpose
-The keys and their values in the given file are processed. 
-Syntax
-sword OCIExtractFromFile(dvoid *hndl, OCIError *err, ub4 flag, OraText *filename);
-Comments
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-flag (IN) - Zero or has one or more of the following bits set: 
-           OCI_EXTRACT_CASE_SENSITIVE, OCI_EXTRACT_UNIQUE_ABBREVS, or 
-           OCI_EXTRACT_APPEND_VALUES. 
-filename (IN) - Null-terminated filename string.
-Related Functions
-
-OCIExtractFromStr
-Name
-OCI Extract parameters From String
-Purpose
-The keys and their values in the given string are processed. 
-Syntax
-sword OCIExtractFromStr(dvoid *hndl, OCIError *err, ub4 flag, OraText *input);
-Comments
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-flag (IN) - Zero or has one or more of the following bits set: 
-           OCI_EXTRACT_CASE_SENSITIVE, OCI_EXTRACT_UNIQUE_ABBREVS, or 
-           OCI_EXTRACT_APPEND_VALUES. 
-input (IN) - Null-terminated input string.
-Related Functions
-
-OCIExtractToInt
-Name
-OCI Extract To Integer
-Purpose
-Gets the integer value for the specified key.
-Syntax
-sword OCIExtractToInt(dvoid *hndl, OCIError *err, OraText *keyname, uword valno, 
-                      sb4 *retval);
-Comments
-The valno'th value (starting with 0) is returned.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. 
-OCI_NO_DATA means that there is no valno'th value for this key.
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-keyname (IN) - Key name.
-valno (IN) - Which value to get for this key.
-retval (OUT) - The actual integer value.
-Related Functions
-
-OCIExtractToBool
-Name
-OCI Extract To Boolean
-Purpose
-Gets the boolean value for the specified key. 
-Syntax
-sword OCIExtractToBool(dvoid *hndl, OCIError *err, OraText *keyname, uword valno,
-                       ub1 *retval);
-Comments
-The valno'th value (starting with 0) is returned.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. 
-OCI_NO_DATA means that there is no valno'th value for this key.
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-keyname (IN) - Key name.
-valno (IN) - Which value to get for this key.
-retval (OUT) - The actual boolean value.
-Related Functions
-
-OCIExtractToStr
-Name
-OCI Extract To String
-Purpose
-Gets the string value for the specified key.
-Syntax
-sword OCIExtractToStr(dvoid *hndl, OCIError *err, OraText *keyname, uword valno, 
-                      OraText *retval, uword buflen);
-Comments
-The valno'th value (starting with 0) is returned.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. 
-OCI_NO_DATA means that there is no valno'th value for this key.
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-keyname (IN) - Key name.
-valno (IN) - Which value to get for this key.
-retval (OUT) - The actual null-terminated string value.
-buflen (IN) - The length of the buffer for retval.
-Related Functions
-
-Note: The following OCIExtract functions are unavailable in this release
-
-OCIExtractToOCINum
-Name
-OCI Extract To OCI Number
-Purpose
-Gets the OCINumber value for the specified key.
-Syntax
-sword OCIExtractToOCINum(dvoid *hndl, OCIError *err, OraText *keyname, 
-                         uword valno, OCINumber *retval);
-Comments
-The valno'th value (starting with 0) is returned.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. 
-OCI_NO_DATA means that there is no valno'th value for this key.
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-keyname (IN) - Key name.
-valno (IN) - Which value to get for this key.
-retval (OUT) - The actual OCINumber value.
-Related Functions
-
-OCIExtractToList
-Name
-OCI Extract To parameter List
-Purpose
-Generates a list of parameters from the parameter structures that are stored 
-in memory. 
-Syntax
-sword OCIExtractToList(dvoid *hndl, OCIError *err, uword *numkeys);
-Comments
-Must be called before OCIExtractValues() is called.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-numkeys (OUT) - Number of distinct keys stored in memory.
-Related Functions
-OCIExtractFromList()
-
-OCIExtractFromList
-Name
-OCI Extract From parameter List
-Purpose
-Generates a list of values for the a parameter in the parameter list.
-Syntax
-sword OCIExtractFromList(dvoid *hndl, OCIError *err, uword index, OraText *name, 
-                         ub1 *type, uword *numvals, dvoid ***values);
-Comments
-Parameters are specified by an index. OCIExtractToList() must be called prior 
-to calling this routine to generate the parameter list from the parameter 
-structures that are stored in memory. 
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-name (OUT) - Name of the key for the current parameter.
-type (OUT) - Type of the current parameter (OCI_EXTRACT_TYPE_STRING, 
-             OCI_EXTRACT_TYPE_INTEGER, OCI_EXTRACT_TYPE_OCINUM, or 
-             OCI_EXTRACT_TYPE_BOOLEAN)
-numvals (OUT) - Number of values for this parameter.
-values (OUT) - The values for this parameter.
-Related Functions
-OCIExtractToList()
-
-
-************************  OCIFileClose() ***********************************
- 
-Name
- OCIFileClose - Oracle Call Interface FILE i/o CLOSE
-
-Purpose
- Close a previously opened file.
-
-Syntax
- sword OCIFileClose ( dvoid             *hndl, 
-             	      OCIError          *err,
-                      OCIFileObject     *filep )
-
-Comments
- This function will close a previously opened file. If the function succeeds
- then OCI_SUCCESS will be returned, else OCI_ERROR. 
- 
-Parameters
- hndl  (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle
- filep (IN) - the OCIFile file object
-
-Related Functions
- OCIFileOpen.  
-
-
-
-********************* OCIFileExists() **************************************
-
-Name
- OCIFileExists - Oracle Call Interface FILE i/o EXIST
-
-Purpose
- Check to see if the file exists.
-
-Syntax
- sword OCIFileExists ( dvoid           *hndl, 
-            	      OCIError         *err, 
-                      OraText          *filename,
-                      OraText          *path,
-                      ub1              *flag )
-
-Comments
- This function will set the flag to TRUE if the file exists else it will
- be set to FALSE.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR. 
-
-Parameters
- hndl(IN) - OCI environment or session handleenv
- err(OUT) - OCI error handle
- filename(IN) - filename
- path(IN) - path of the file
- flag(OUT) - whether the file exists or not
-
-Related Functions.
- None.
-     
-
- **************************** OCIFileFlush() ******************************
-
-
-Name
- OCIFileFlush - Oracle Call Interface File i/o FLUSH
-
-Purpose
- Flush the buffers associated with the file to the disk.
-
-Syntax
- sword OCIFileFlush ( dvoid             *hndl, 
-             	      OCIError          *err,
-                      OCIFileObject     *filep )
-
-Comments
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters 
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle
- filep (IN) - the OCIFile file object
-
-Related Functions
- OCIFileOpen, OCIFileWrite
-
-
-
- *************************** OCIFileGetLength() ****************************
-
-Name
- OCIFileGetLength - Oracle Call Interface FILE i/o GET file LENGTH
-
-Purpose
- Get the length of a file.
-
-Syntax
- OCIFileGetLength(dvoid           *hndl, 
-	          OCIError        *err,
-                  OraText         *filename,
-                  OraText         *path,
-                  ubig_ora        *lenp )
-
-Comments
- The length of the file will be returned in lenp.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
- 
-Parameters
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filename (IN) - file name.
- path (IN) - path of the file.
- lenp (OUT) - On output, it is the length of the file in bytes.
- is the number of bytes in the file.
-
-Related Functions
- None.
-
-
-
-******************************** OCIFileInit() *****************************
-   
-Name
- OCIFileInit - Oracle Call Interface FILE i/o INITialize
-
-Purpose
- Initialize the OCI File I/O package and create the OCIFile context.
-
-Syntax
- sword OCIFileInit ( dvoid *hndl, 
-                     OCIError *err)
-
-Comments
- This function should be called before any of the OCIFile functions are
- used.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
- 
-Parameters
- hndl(IN) - OCI environment or session handle.
- err(OUT) - OCI error structure.
-
-Related Functions
- OCIFileTerm
-     
-
-
-********************************* OCIFileOpen() *****************************
-
-Name
- OCIFileOpen - Oracle Call Interface File i/o OPEN
-
-Purpose
-     Open a file.
-
-Syntax
- sword OCIFileOpen ( dvoid               *hndl, 
-	             OCIError            *err,
-                     OCIFileObject      **filep,
-                     OraText             *filename,
-                     OraText             *path,
-                     ub4                  mode,
-                     ub4                  create, 
-                     ub4                  type )
-
-Comments
- OCIFileOpen returns a handle to the open file in filep if the file is
- successfully opened. 
- If one wants to use the standard file objects (stdin, stdout & stderr)
- then OCIFileOpen whould be called with the type filed containing the 
- appropriate type (see the parameter type). If any of the standard files 
- are specified then filename, path, mode and create are ignored.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters
- hndl (OUT) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filep (OUT) - the file object to be returned.
- filename (IN) - file name (NULL terminated string).
- path (IN) - path of the file (NULL terminated string).
- mode - mode in which to open the file (valid modes are OCI_FILE_READONLY,
- OCI_FILE_WRITEONLY, OCI_FILE_READ_WRITE).
- create - should the file be created if it does not exist. Valid values
- are: 
-     OCI_FILE_TRUNCATE - create a file regardless of whether or not it exists. 
-                        If the file already exists overwrite it.
-     OCI_FILE_EXCL - fail if the file exists, else create.
-     OCI_FILE_EXIST - open it if it exists, else fail.
-     OCI_FILE_CREATE - open the file if it exists, and create it if it doesn't.
-     OCI_FILE_APPEND - set the file pointer to the end of the file prior to 
-                      writing(this flag can be OR'ed with OCI_FILE_EXIST or
-                      OCI_FILE_CREATE).
-type - file type. Valid values are OCI_FILE_TEXT, OCI_FILE_BIN, 
-       OCI_FILE_STDIN, OCI_FILE_STDOUT and OCI_FILE_STDERR.
-       If any of the standard files are specified then filename, path, mode
-       and create are ignored.
-
-Related Functions.
- OCIFileClose
-
-
-
-************************** OCIFileRead() ************************************
-   
-Name
- OCIFileRead - Oracle Call Interface FILE i/o READ
-
-Purpose
- Read from a file into a buffer.
-
-Syntax
- sword OCIFileRead ( dvoid            *hndl, 
-          	     OCIError         *err,
-                     OCIFileObject    *filep,
-                     dvoid            *bufp,
-                     ub4               bufl,
-                     ub4              *bytesread )
-
-Comments
- Upto bufl bytes from the file will be read into bufp. The user should
- allocate memory for the buffer.
- The number of bytes read would be in bytesread.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filep (IN/OUT) - a File Object that uniquely references the file.
- bufp (IN) - the pointer to a buffer into which the data will be read. The 
- length of the allocated memory is assumed to be bufl. 
- bufl - the length of the buffer in bytes. 
- bytesread (OUT) - the number of bytes read.
-
-Related Functions
- OCIFileOpen, OCIFileSeek, OCIFileWrite
-
-
-
-****************************** OCIFileSeek() ******************************
-
-Name
- OCIFileSeek - Oracle Call Interface FILE i/o SEEK
-
-Purpose
- Perfom a seek to a byte position.
-
-Syntax
- sword OCIFileSeek ( dvoid           *hndl, 
-        	     OCIError        *err,  
-                     OCIFileObject   *filep,
-                     uword            origin,
-                     ubig_ora         offset,
-                     sb1              dir)
-
-Comments
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filep (IN/OUT) - a file handle that uniquely references the file.
- origin - The starting point we want to seek from. NOTE: The starting 
- point may be OCI_FILE_SEEK_BEGINNING (beginning), OCI_FILE_SEEK_CURRENT 
- (current position), or OCI_FILE_SEEK_END (end of file). 
- offset - The number of bytes from the origin we want to start reading from. 
- dir - The direction we want to go from the origin. NOTE: The direction 
- can be either OCI_FILE_FORWARD or OCI_FILE_BACKWARD. 
- 
-Related Function
- OCIFileOpen, OCIFileRead, OCIFileWrite
-
-
-
-*************************** OCIFileTerm() **********************************
-
-Name
- OCIFileTerm - Oracle Call Interface FILE i/o TERMinate
-
-Purpose
- Terminate the OCI File I/O package and destroy the OCI File context.
-
-Syntax
- sword OCIFileTerm ( dvoid *hndl, 
-                     OCIError *err )
-
-Comments
- After this function has been called no OCIFile function should be used.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
- 
-Parameters
- hndl(IN) - OCI environment or session handle.
- err(OUT) - OCI error structure. 
-  
-Related Functions 
- OCIFileInit   
- 
-
-********************************* OCIFileWrite() **************************** 
-
-Name 
- OCIFileWrite - Oracle Call Interface FILE i/o WRITE
-
-Purpose
-  Write data from buffer into a file.
-
-Syntax
- sword OCIFileWrite ( dvoid            *hndl, 
-            	      OCIError         *err,  
-                      OCIFileObject    *filep,
-                      dvoid            *bufp, 
-                      ub4               buflen
-                      ub4              *byteswritten )
-
-Comments
- The number of bytes written will be in *byteswritten.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filep (IN/OUT) - a file handle that uniquely references the file.
- bufp (IN) - the pointer to a buffer from which the data will be written. 
- The length of the allocated memory is assumed to be the value passed
- in bufl. 
- bufl - the length of the buffer in bytes.
- byteswritten (OUT) - the number of bytes written.
- 
-Related Functions
- OCIFileOpen, OCIFileSeek, OCIFileRead
-
-
-
-OCIHandleAlloc()
-Name
-OCI Get HaNDLe
-Purpose
-This call returns a pointer to an allocated and initialized handle.
-Syntax
-sword OCIHandleAlloc ( CONST dvoid   *parenth,
-                     dvoid         **hndlpp, 
-                     ub4           type, 
-                     size_t        xtramem_sz,
-                     dvoid         **usrmempp);
-Comments
-Returns a pointer to an allocated and initialized structure, corresponding to 
-the type specified in type. A non-NULL handle is returned on success. Bind 
-handle and define handles are allocated with respect to a statement handle. All
-other handles are allocated with respect to an environment handle which is 
-passed in as a parent handle.
-No diagnostics are available on error. This call returns OCI_SUCCESS if 
-successful, or OCI_INVALID_HANDLE if an out-of-memory error occurs.
-Handles must be allocated using OCIHandleAlloc() before they can be passed 
-into an OCI call.
-Parameters
-parenth (IN) - an environment or a statement handle. 
-hndlpp (OUT) - returns a handle to a handle type. 
-type (IN) - specifies the type of handle to be allocated. The specific types 
-are: 
-OCI_HTYPE_ERROR - specifies generation of an error report handle of 
-C type OCIError
-OCI_HTYPE_SVCCTX - specifies generation of a service context handle 
-of C type OCISvcCtx
-OCI_HTYPE_STMT - specifies generation of a statement (application 
-request) handle of C type OCIStmt
-OCI_HTYPE_BIND - specifies generation of a bind information handle 
-of C type OCIBind
-OCI_HTYPE_DEFINE - specifies generation of a column definition 
-handle of C type OCIDefine
-OCI_HTYPE_DESCRIBE  - specifies generation of a select list 
-description handle of C type OCIDesc
-OCI_HTYPE_SERVER - specifies generation of a server context handle 
-of C type OCIServer
-OCI_HTYPE_SESSION - specifies generation of an authentication 
-context handle of C type OCISession
-OCI_HTYPE_TRANS - specifies generation of a transaction context 
-handle of C type OCITrans
-OCI_HTYPE_COMPLEXOBJECT - specifies generation of a complex 
-object retrieval handle of C type OCIComplexObject
-OCI_HTYPE_SECURITY - specifies generation of a security handle of C 
-type OCISecurity
-xtramem_sz (IN) - specifies an amount of user memory to be allocated.
-usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz 
-allocated by the call for the user. 
-Related Functions
-OCIHandleFree()
-
-
-
-OCIHandleFree()
-Name
-OCI Free HaNDLe
-Purpose
-This call explicitly deallocates a handle.
-Syntax
-sword OCIHandleFree ( dvoid     *hndlp,
-                    ub4       type);
-Comments
-This call frees up storage associated with a handle, corresponding to the type 
-specified in the type parameter.
-This call returns either OCI_SUCCESS or OCI_INVALID_HANDLE.
-All handles must be explicitly deallocated. OCI will not deallocate a child 
-handle if the parent is deallocated.
-Parameters
-hndlp (IN) - an opaque pointer to some storage.
-type (IN) - specifies the type of storage to be allocated. The specific types are:
-OCI_HTYPE_ENV - an environment handle
-OCI_HTYPE_ERROR - an error report handle
-OCI_HTYPE_SVCCTX - a service context handle
-OCI_HTYPE_STMT - a statement (application request) handle
-OCI_HTYPE_BIND - a bind information handle
-OCI_HTYPE_DEFINE - a column definition handle
-OCI_HTYPE_DESCRIBE  - a select list description handle
-OCI_HTYPE_SERVER - a server handle
-OCI_HTYPE_SESSION - a user authentication handle
-OCI_HTYPE_TRANS - a transaction handle
-OCI_HTYPE_COMPLEXOBJECT - a complex object retrieval handle
-OCI_HTYPE_SECURITY - a security handle
-Related Functions
-OCIHandleAlloc()
-
-
-
-
-OCIInitialize()
-Name
-OCI Process Initialize
-Purpose
-Initializes the OCI process environment.
-Syntax
-sword OCIInitialize ( ub4           mode,
-                    CONST dvoid   *ctxp, 
-                    CONST dvoid   *(*malocfp) 
-                                  ( dvoid *ctxp,
-                                    size_t size ),
-                    CONST dvoid   *(*ralocfp)
-                                  ( dvoid *ctxp,
-                                    dvoid *memp,
-                                    size_t newsize ),
-                    CONST void    (*mfreefp)
-                                  ( dvoid *ctxp,
-                                    dvoid *memptr ));
-Comments
-This call initializes the OCI process environment.
-OCIInitialize() must be invoked before any other OCI call. 
-Parameters
-mode (IN) - specifies initialization of the mode. The valid modes are:
-OCI_DEFAULT - default mode.
-OCI_THREADED - threaded environment. In this mode, internal data 
-structures are protected from concurrent accesses by multiple threads. 
-OCI_OBJECT - will use navigational object interface. 
-ctxp (IN) - user defined context for the memory call back routines. 
-malocfp (IN) - user-defined memory allocation function. If mode is 
-OCI_THREADED, this memory allocation routine must be thread safe.
-ctxp - context pointer for the user-defined memory allocation function.
-size - size of memory to be allocated by the user-defined memory 
-allocation function
-ralocfp (IN) - user-defined memory re-allocation function. If mode is 
-OCI_THREADED, this memory allocation routine must be thread safe.
-ctxp - context pointer for the user-defined memory reallocation 
-function.
-memp - pointer to memory block
-newsize - new size of memory to be allocated
-mfreefp (IN) - user-defined memory free function. If mode is 
-OCI_THREADED, this memory free routine must be thread safe.
-ctxp - context pointer for the user-defined memory free function.
-memptr - pointer to memory to be freed
-Example
-See the description of OCIStmtPrepare() on page 13-96 for an example showing 
-the use of OCIInitialize().
-Related Functions
-
-
---------------------------------OCITerminate------------------------------------
-
-OCITerminate()
-Name
-OCI process Terminate
-Purpose
-Do cleanup before process termination
-Syntax
-sword OCITerminate ( ub4           mode);
-
-Comments
-This call performs  OCI related clean up before the OCI process terminates.
-If the process is running in shared mode then the OCI process is disconnected
-from the shared memory subsystem.
-
-OCITerminate() should be the last OCI call in any process.
-
-Parameters
-mode (IN) - specifies different termination modes.
-
-OCI_DEFAULT - default mode.
-
-Example
-
-Related Functions
-OCIInitialize()
-
- ---------------------- OCIIntervalAssign -------------------- 
-void OCIIntervalAssign(dvoid *hndl, OCIError *err, CONST OCIInterval *inpinter,
-			OCIInterval *outinter );
-
-  DESCRIPTION
-    Copies one interval to another to create a replica
-  PARAMETERS
-     hndl (IN) - Session/Env handle.
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  inpinter - Input Interval 
-    (OUT) outinter - Output Interval 
-  RETURNS
-     OCI_INVALID_HANDLE if 'err' is NULL.
-     OCI_SUCCESS otherwise
-
- ---------------------- OCIIntervalCheck -------------------- 
-sword OCIIntervalCheck(dvoid *hndl, OCIError *err, CONST OCIInterval *interval,
-			 ub4 *valid );
-
-  DESCRIPTION
-    Checks the validity of an interval
-  PARAMETERS
-     hndl (IN) - Session/Env handle.
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  interval - Interval to be checked 
-    (OUT) valid     - Zero if the interval is valid, else returns an Ored
-	combination of the following codes.
-
-   Macro name                   Bit number      Error
-   ----------                   ----------      -----
-   OCI_INTER_INVALID_DAY         0x1           Bad day
-   OCI_INTER_DAY_BELOW_VALID     0x2           Bad DAy Low/high bit (1=low)
-   OCI_INTER_INVALID_MONTH       0x4           Bad MOnth
-   OCI_INTER_MONTH_BELOW_VALID   0x8           Bad MOnth Low/high bit (1=low)
-   OCI_INTER_INVALID_YEAR        0x10          Bad YeaR
-   OCI_INTER_YEAR_BELOW_VALID    0x20          Bad YeaR Low/high bit (1=low)
-   OCI_INTER_INVALID_HOUR        0x40          Bad HouR
-   OCI_INTER_HOUR_BELOW_VALID    0x80          Bad HouR Low/high bit (1=low)
-   OCI_INTER_INVALID_MINUTE      0x100         Bad MiNute
-   OCI_INTER_MINUTE_BELOW_VALID	 0x200         Bad MiNute Low/high bit(1=low)
-   OCI_INTER_INVALID_SECOND      0x400         Bad SeCond
-   OCI_INTER_SECOND_BELOW_VALID  0x800         bad second Low/high bit(1=low)
-   OCI_INTER_INVALID_FRACSEC     0x1000        Bad Fractional second
-   OCI_INTER_FRACSEC_BELOW_VALID 0x2000        Bad fractional second Low/High
-
-	
-  RETURNS
-    OCI_SUCCESS if interval is okay
-    OCI_INVALID_HANDLE if 'err' is NULL.
-
- ---------------------- OCIIntervalCompare -------------------- 
-sword OCIIntervalCompare(dvoid *hndl, OCIError *err, OCIInterval *inter1, 
-			OCIInterval *inter2, sword *result );
-
-  DESCRIPTION
-	Compares two intervals, returns 0 if equal, -1 if inter1 < inter2, 
-      	1 if inter1 > inter2
-  PARAMETERS
-     hndl (IN) - Session/Env handle. 
-     err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-     inter1  (IN)   - Interval to be compared 
-     inter2  (IN)   - Interval to be compared 
-     result  (OUT)  - 	comparison result, 0 if equal, -1 if inter1 < inter2, 
-                	1 if inter1 > inter2
-
-  RETURNS
-     OCI_SUCCESS on success
-     OCI_INVALID_HANDLE if 'err' is NULL.
-     OCI_ERROR if 
-	the two input datetimes are not mutually comparable.
-
----------------------- OCIIntervalDivide -------------------- 
-sword OCIIntervalDivide(dvoid *hndl, OCIError *err, OCIInterval *dividend, 
-		OCINumber *divisor, OCIInterval *result );
- 
-  DESCRIPTION
-     Divides an interval by an Oracle Number to produce an interval
-  PARAMETERS
-	hndl (IN) - Session/Env handle. 
-     err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-     dividend  (IN)   - Interval to be divided 
-     divisor   (IN)   - Oracle Number dividing `dividend' 
-     result    (OUT)  - resulting interval (dividend / divisor) 
-  RETURNS
-     OCI_SUCCESS on success
-     OCI_INVALID_HANDLE if 'err' is NULL.
- 
- ---------------------- OCIIntervalFromNumber -------------------- 
-sword OCIIntervalFromNumber(dvoid *hndl, OCIError *err, 
-               OCIInterval *inter, OCINumber *number);
-  DESCRIPTION
-    Converts an interval to an Oracle Number
-  PARAMETERS
-     hndl (IN) - Session/Env handle. 
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (OUT)  interval - Interval to be converted 
-    (IN) number - Oracle number result  (in years for YEARMONTH interval
-                     and in days for DAYSECOND)
-  RETURNS
-    OCI_SUCCESS on success 
-    OCI_INVALID_HANDLE if 'err' is NULL.
-    OCI_ERROR on error.
-  NOTES
-    Fractional portions of the date (for instance, minutes and seconds if
-    the unit chosen is hours) will be included in the Oracle number produced.
-    Excess precision will be truncated.
- 
- ---------------------- OCIIntervalFromText -------------------- 
-sword OCIIntervalFromText(dvoid *hndl, OCIError *err, CONST OraText *inpstring,
-		size_t str_len, OCIInterval *result );
-
-  DESCRIPTION
-    Given an interval string produce the interval represented by the string. 
-    The type of the interval is the type of the 'result' descriptor.
-  PARAMETERS
-
-     hndl (IN) - Session/Env handle. 
-     err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  inpstring - Input string 
-    (IN)  str_len - Length of input string 
-    (OUT) result - Resultant interval 
-  RETURNS
-    OCI_SUCCESS on success
-    OCI_INVALID_HANDLE if 'err' is NULL.
-    OCI_ERROR if
-     	there are too many fields in the literal string
-	the year is out of range (-4713 to 9999)
-  	if the month is out of range (1 to 12)
- 	if the day of month is out of range (1 to 28...31)
-    	if hour is not in range (0 to 23)
-     	if hour is not in range (0 to 11)
-  	if minute is not in range (0 to 59)
-    	if seconds in minute not in range (0 to 59)
-   	if seconds in day not in range (0 to 86399)
-  	if the interval is invalid
-
- ---------------------- OCIIntervalGetDaySecond -------------------- 
-
-  DESCRIPTION
-     Gets values of day second interval
-  PARAMETERS
-	hndl (IN) - Session/Env handle.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-        day     (OUT) - number of days
-        hour    (OUT) - number of hours
-        min     (OUT) - number of mins
-        sec     (OUT) - number of secs
-        fsec    (OUT) - number of fractional seconds
-	result     (IN)  - resulting interval 
-  RETURNS
-	OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-
- ---------------------- OCIIntervalGetYearMonth -------------------- 
-
-  DESCRIPTION
-     Gets year month from an interval
-  PARAMETERS
-	hndl (IN) - Session/Env handle.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-	year    (OUT)   - year value
-	month   (OUT)   - month value
-	result     (IN)  - resulting interval 
-  RETURNS
-	OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-
-
----------------------- OCIIntervalAdd -------------------- 
-sword OCIIntervalAdd(dvoid *hndl, OCIError *err, OCIInterval *addend1, 
-			OCIInterval *addend2, OCIInterval *result );
-NAME OCIIntervalAdd - Adds two intervals 
-PARAMETERS
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-addend1  (IN)   - Interval to be added 
-addend2  (IN)   - Interval to be added 
-result   (OUT)  - resulting interval (addend1 + addend2) 
-DESCRIPTION
-     Adds two intervals to produce a resulting interval
-RETURNS
-     OCI_SUCCESS on success
-     OCI_ERROR if:
-	the two input intervals are not mutually comparable.
-	the resulting year would go above SB4MAXVAL
-	the resulting year would go below SB4MINVAL
-     OCI_INVALID_HANDLE if 'err' is NULL.
-NOTES
-     The two input intervals must be mutually comparable
-
- ---------------------- OCIIntervalSubtract -------------------- 
-sword OCIIntervalSubtract(dvoid *hndl, OCIError *err, OCIInterval *minuend, 
-			    OCIInterval *subtrahend, OCIInterval *result );
-NAME - OCIIntervalSubtract - subtracts two intervals
-PARAMETERS
-hndl (IN) - Session/Env handle.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-minuend    (IN)   - interval to be subtracted from 
-subtrahend (IN)   - interval subtracted from minuend 
-result     (OUT)  - resulting interval (minuend - subtrahend) 
-DESCRIPTION
-     Subtracts two intervals and stores the result in an interval
-RETURNS
-	OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-	OCI_ERROR if:
-	   the two input intervals are not mutually comparable.
-	   the resulting leading field would go below SB4MINVAL	
-	   the resulting leading field would go above SB4MAXVAL
-
----------------------- OCIIntervalMultiply -------------------- 
-sword OCIIntervalMultiply(dvoid *hndl, OCIError *err, CONST OCIInterval *inter,
-			OCINumber *nfactor, OCIInterval *result );
-
-  DESCRIPTION
-     Multiplies an interval by an Oracle Number to produce an interval
-  PARAMETERS
-	hndl (IN) - Session/Env handle. 
-     err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-     ifactor  (IN)   - Interval to be multiplied 
-     nfactor  (IN)   - Oracle Number to be multiplied 
-     result   (OUT)  - resulting interval (ifactor * nfactor) 
-  RETURNS
-     OCI_SUCCESS on success
-     OCI_INVALID_HANDLE if 'err' is NULL.
-     OCI_ERROR if:
-	the resulting year would go above SB4MAXVAL
-	the resulting year would go below SB4MINVAL
-
-
- ---------------------- OCIIntervalSetDaySecond -------------------- 
-
-  DESCRIPTION
-     Sets day second interval
-  PARAMETERS
-	hndl (IN) - Session/Env handle.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-        day     (IN) - number of days
-        hour    (IN) - number of hours
-        min     (IN) - number of mins
-        sec     (IN) - number of secs
-        fsec    (IN) - number of fractional seconds
-	result     (OUT)  - resulting interval 
-  RETURNS
-	OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-
- ---------------------- OCIIntervalSetYearMonth -------------------- 
-
-  DESCRIPTION
-     Sets year month interval
-  PARAMETERS
-	hndl (IN) - Session/Env handle.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-	year    (IN)   - year value
-	month   (IN)   - month value
-	result     (OUT)  - resulting interval 
-  RETURNS
-	OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-
-
- ---------------------- OCIIntervalToNumber -------------------- 
-sword OCIIntervalToNumber(dvoid *hndl, OCIError *err, CONST OCIInterval *inter,
-			OCINumber *number, uword units );
-
-  DESCRIPTION
-    Converts an interval to an Oracle Number
-  PARAMETERS
-     hndl (IN) - Session/Env handle. 
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  interval - Interval to be converted 
-    (OUT) number - Oracle number result   (in years for YEARMONTH interval
-                     and in days for DAYSECOND)
-  RETURNS
-    OCI_INVALID_HANDLE if 'err' is NULL.
-    OCI_SUCCESS on success 
-  NOTES
-    Fractional portions of the date (for instance, minutes and seconds if
-    the unit chosen is hours) will be included in the Oracle number produced.
-    Excess precision will be truncated.
- 
- ---------------------- OCIIntervalToText -------------------- 
-sword OCIIntervalToText( dvoid *hndl, OCIError *err, CONST OCIInterval *inter,
-                        ub1 lfprec, ub1 fsprec, OraText *buffer, 
-                        size_t buflen, size_t *resultlen );
-
-  DESCRIPTION
-    Given an interval, produces a string representing the interval.
-  PARAMETERS
-     hndl (IN) - Session/Env handle. 
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  interval - Interval to be converted 
-    (IN)  lfprec  - Leading field precision. Number of digits used to
-                represent the leading field.
-    (IN)  fsprec  - Fractional second precision of the interval. Number of
-                digits used to represent the fractional seconds.
-    (OUT) buffer - buffer to hold result 
-    (IN)  buflen - length of above buffer 
-    (OUT) resultlen - length of result placed into buffer 
- 
-  RETURNS
-    OCI_SUCCESS on success
-    OCI_INVALID_HANDLE if 'err' is NULL.
-    OCI_ERROR 
-    	if the buffer is not large enough to hold the result
-  NOTES
-    The interval literal will be output as `year' or `[year-]month' for
-    YEAR-MONTH intervals and as `seconds' or `minutes[:seconds]' or
-    `hours[:minutes[:seconds]]' or `days[ hours[:minutes[:seconds]]]' for
-    DAY-TIME intervals (where optional fields are surrounded by brackets).
-
- ----------------------- OCIIntervalFromTZ --------------------- 
-sword OCIIntervalFromTZ(dvoid *hndl, OCIError *err, CONST oratext *inpstring,
-			size_t str_len, OCIInterval *results );
-
-  DESCRIPTION
-    Returns am OCIInmterval of type OCI_DTYPE_INTERVAL_DS with the region id
-    set and the current region offset or an absolute offset with the region id
-    set to 0.
-  PARAMETERS
-    hndl (IN) - Session/Env handle.
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    inpstring (IN) - pointer to the input string
-    str_len (IN) - inpstring length
-    result - Output Interval 
-  RETURNS
-     OCI_SUCCESS on success
-     OCI_INVALID_HANDLE if 'err' is NULL.
-     OCI_ERROR on error
-        Bad interval type
-        Timezone errors
-  NOTES
-     The input string must be of the form [+/-]TZH:TZM or 'TZR [TZD]'
-
-OCILdaToSvcCtx()
-Name
-OCI toggle version 7 Lda_Def to SerVice context handle
-Purpose
-Converts a V7 Lda_Def to a V8 service context handle.
-Syntax
-sword OCILdaToSvcCtx ( OCISvcCtx  **svchpp,
-                     OCIError   *errhp,
-                     Lda_Def    *ldap );
-Comments
-Converts a V7 Lda_Def to a V8 service context handle. The action of this call 
-can be reversed by passing the resulting service context handle to the 
-OCISvcCtxToLda() function.
-Parameters
-svchpp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-ldap (IN/OUT) - the V7 logon data area returned by OCISvcCtxToLda() from 
-this service context.
-Related Functions
-OCISvcCtxToLda()
-
-
-
-
-OCILobAppend()
-
-Name
-OCI Lob APpend
-
-Purpose
-Appends a LOB value at the end of another LOB. 
-
-Syntax
-sword OCILobAppend ( OCISvcCtx        *svchp,
-                   OCIError         *errhp,
-                   OCILobLocator    *dst_locp,
-                   OCILobLocator    *src_locp );
-Comments
-Appends a LOB value at the end of LOB. The data is 
-copied from the source to the destination at the end of the destination. The 
-source and the destination must already exist. The destination LOB is 
-extended to accommodate the newly written data.
-
-It is an error to extend the destination LOB beyond the maximum length 
-allowed or to try to copy from a NULL LOB. 
-
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-dst_locp (IN/OUT) - a locator uniquely referencing the destination LOB. 
-src_locp (IN/OUT) - a locator uniquely referencing the source LOB. 
-
-Related Functions
-OCILobTrim()
-OCIErrorGet()
-OCILobWrite()
-OCILobCopy()
-
-
-
-
-
-OCILobAssign()
-
-Name
-OCI Lob ASsiGn
-
-Purpose
-Assigns one LOB/FILE locator to another.
-
-Syntax
-sword OCILobAssign ( OCIEnv                *envhp, 
-                     OCIError              *errhp, 
-                     CONST OCILobLocator   *src_locp, 
-                     OCILobLocator         **dst_locpp );
-
-Comments
-Assign source locator to destination locator.  After the assignment, both 
-locators refer to the same LOB data.  For internal LOBs, the source locator's 
-LOB data gets copied to the destination locator's LOB data only when the 
-destination locator gets stored in the table.  Therefore, issuing a flush of 
-the object containing the destination locator will copy the LOB data. For FILEs
-only the locator that refers to the OS file is copied to the table. The OS file
-is not copied.
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-errhp and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-src_locp (IN) - LOB locator to copy from.
-dst_locpp (IN/OUT) - LOB locator to copy to.  The caller must allocate space 
-for the OCILobLocator by calling OCIDescriptorAlloc().
-Note: The only difference between this and OCILobLocatorAssign is that this
-takes an environment handle whereas OCILobLocatorAssign takes an OCI service
-handle
-
-See also
-OCIErrorGet()
-OCILobIsEqual()
-OCILobLocatorIsInit()
-OCILobLocatorAssign()
-
-
-
-OCILobCharSetForm()
-
-Name
-OCI Lob Get Character Set Form
-
-Purpose
-Gets the LOB locator's character set fpr,, if any.
-
-Syntax
-sword OCILobCharSetForm ( OCIEnv                    *envhp, 
-                          OCIError                  *errhp, 
-                          CONST OCILobLocator       *locp, 
-                          ub1                       *csfrm );
-
-Comments
-Returns the character set form of the input LOB locator in the csfrm output 
-parameter. 
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it 
-is recorded in err and this function returns OCI_ERROR. Diagnostic information 
-can be obtained by calling OCIErrorGet().
-locp (IN) - LOB locator for which to get the character set form.
-csfrm(OUT) - character set form of the input LOB locator.  If the input 
-locator is for a BLOB or a BFILE, csfrm is set to 0 since there is no concept 
-of a character set for binary LOBs/FILEs.  The caller must allocate space for 
-the csfrm (ub1) and not write into the space.
-See also
-OCIErrorGet(), OCILobCharSetId(), OCILobLocatorIsInit
-
-
-
-
-OCILobCharSetId()
-
-Name
-OCI Lob get Character Set IDentifier
-
-Purpose
-Gets the LOB locator's character set ID, if any.
-
-Syntax
-sword OCILobCharSetId ( OCIEnv                    *envhp, 
-                        OCIError                  *errhp, 
-                        CONST OCILobLocator       *locp, 
-                        ub2                       *csid );
-
-Comments
-Returns the character set ID of the input LOB locator in the cid output 
-parameter. 
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it 
-is recorded in err and this function returns OCI_ERROR. Diagnostic information 
-can be obtained by calling OCIErrorGet().
-locp (IN) - LOB locator for which to get the character set ID.
-csid (OUT) - character set ID of the input LOB locator.  If the input locator 
-is for a BLOB or a BFILE, csid is set to 0 since there is no concept of a 
-character set for binary LOBs/FILEs.  The caller must allocate space for the character set id of type ub2 and not write into the space.
-
-See also
-OCIErrorGet(), OCILobCharSetForm(), OCILobLocatorIsInit()
-
-
-
-
-OCILobCopy()
-
-Name
-OCI Lob Copy
-
-Purpose
-Copies a portion of a LOB value into another LOB value.
-
-Syntax
-sword OCILobCopy ( OCISvcCtx        *svchp,
-                   OCIError         *errhp,
-                   OCILobLocator    *dst_locp,
-                   OCILobLocator    *src_locp,
-                   ub4              amount,
-                   ub4              dst_offset,
-                   ub4              src_offset );
-
-Comments
-Copies a portion of a LOB value into another LOB as specified. The data 
-is copied from the source to the destination. The source (src_locp) and the 
-destination (dlopb) LOBs must already exist.
-If the data already exists at the destination's start position, it is 
-overwritten with the source data. If the destination's start position is 
-beyond the end of the current data, a hole is created from the end of the data
-to the beginning of the newly written data from the source. The destination 
-LOB is extended to accommodate the newly written data if it extends 
-beyond the current length of the destination LOB. 
-It is an error to extend the destination LOB beyond the maximum length 
-allowed or to try to copy from a NULL LOB.
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-dst_locp (IN/OUT) - a locator uniquely referencing the destination LOB. 
-src_locp (IN/OUT) - a locator uniquely referencing the source LOB. 
-amount (IN) - the number of character or bytes, as appropriate, to be copied.
-dst_offset (IN) - this is the absolute offset for the destination LOB. 
-For character LOBs it is the number of characters from the beginning of the 
-LOB at which to begin writing. For binary LOBs it is the number of bytes from 
-the beginning of the lob from which to begin reading. The offset starts at 1.
-src_offset (IN) - this is the absolute offset for the source LOB. 
-For character LOBs it is the number of characters from the beginning of the 
-LOB, for binary LOBs it is the number of bytes. Starts at 1.
-
-See Also 
-OCIErrorGet(), OCILobAppend(), OCILobWrite(), OCILobTrim()
-
-OCILobCreateTemporary()
-
-Name
-OCI Lob Create Temporary
-
-Purpose
-Create a Temporary Lob
-
-Syntax
-sword OCILobCreateTemporary(OCISvcCtx          *svchp,
-                            OCIError           *errhp,
-                            OCILobLocator      *locp,
-                            ub2                 csid,
-                            ub1                 csfrm,
-                            ub1                 lobtype,
-                            boolean             cache,
-                            OCIDuration         duration);
-
-
-Comments
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator which points to the temporary Lob
-csid (IN) - the character set id
-csfrm(IN) - the character set form
-lobtype (IN) - the lob type - one of the three constants OCI_TEMP_BLOB, 
-               OCI_TEMP_CLOB and OCI_TEMP_NCLOB
-cache(IN)-  TRUE if the temporary LOB goes through the cache; FALSE, if not.
-duration(IN)- duration of the temporary LOB; Can be a valid duration id or one 
-              of the values: OCI_DURATION_SESSION, OCI_DURATION_CALL
-	      Note: OCI_DURATION_TRANSACTION is not supported in 8.1. 
-Related functions
-OCILobFreeTemporary()
-OCILobIsTemporary()
-
-OCILobDisableBuffering()
-
-Name
-OCI Lob Disable Buffering
-
-Purpose
-Disable lob buffering for the input locator.
-
-
-Syntax
-sword OCILobDisableBuffering ( OCISvcCtx      *svchp,
-                               OCIError       *errhp,
-                               OCILobLocator  *locp);
-
-Comments
-
-Disable lob buffering for the input locator.  The next time data is
-read/written from/to the lob through the input locator, the lob
-buffering subsystem is *not* used.  
-
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator uniquely referencing the LOB. 
-
-Related Functions
-OCILobEnableBuffering()
-OCIErrorGet()
-OCILobFlush()
-
-
-
-
-OCILobEnableBuffering()
-
-Name
-OCI Lob Enable Buffering
-
-Purpose
-Enable lob buffering for the input locator.
-
-
-Syntax
-sword OCILobEnableBuffering ( OCISvcCtx      *svchp,
-                              OCIError       *errhp,
-                              OCILobLocator  *locp);
-
-Comments
-
-Enable lob buffering for the input locator.  The next time data is
-read/written from/to the lob through the input locator, the lob
-buffering subsystem is used.  
-
-Once lob buffering is enabled for a locator, if that locator is passed to 
-one of the following routines, an error is returned:
-        OCILobCopy, OCILobAppend, OCILobErase, OCILobGetLength, OCILobTrim
-
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator uniquely referencing the LOB. 
-
-Related Functions
-OCILobDisableBuffering()
-OCIErrorGet()
-OCILobWrite()
-OCILobRead()
-OCILobFlush()
-
-
-
-
-OCILobErase()
-
-Name
-OCI Lob ERase
-
-Purpose
-Erases a specified portion of the LOB data starting at a specified offset.
-
-Syntax
-sword OCILobErase ( OCISvcCtx       *svchp,
-                  OCIError        *errhp,
-                  OCILobLocator   *locp,
-                  ub4             *amount,
-                  ub4             offset );
-
-Comments
-Erases a specified portion of the LOB data starting at a specified offset.
-The actual number of characters/bytes erased is returned. The actual number 
-of characters/bytes and the requested number of characters/bytes will differ 
-if the end of the LOB data is reached before erasing the requested number of 
-characters/bytes.
-If a section of data from the middle of the LOB data is erased, a hole is 
-created. When data from that hole is read, 0's are returned. If the LOB is
-NULL, this routine will indicate that 0 characters/bytes were erased.
-
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - the LOB for which to erase a section of data.
-amount (IN/OUT) - On IN, the number of characters/bytes to erase. On OUT, 
-the actual number of characters/bytes erased.
-offset (IN) - absolute offset from the beginning of the LOB data from which to 
-start erasing data. Starts at 1.
-
-See Also
-OCIErrorGet(), OCILobRead(), OCILobWrite()
-
-
-
-
-OCILobFileClose()
-
-Name
-OCI Lob File CLoSe
-
-Purpose
-Closes a previously opened FILE.
-
-Syntax
-sword OCILobFileClose ( OCISvcCtx            *svchp,
-                        OCIError             *errhp,
-                        OCILobLocator        *filep );
-
-Comments
-Closes a previously opened FILE. It is an error if this function is called for
-an internal LOB. No error is returned if the FILE exists but is not opened.
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-filep (IN/OUT) - a pointer to a FILE locator to be closed.
-
-See Also
-OCIErrorGet(), OCILobFileOpen(), OCILobFileCloseAll(), OCILobFileIsOpen(),
-OCILobFileExists(), CREATE DIRECTORY DDL
-
-
-
-
-
-
-OCILobFileCloseAll()
-
-Name
-OCI LOB FILE Close All
-
-Purpose
-Closes all open FILEs on a given service context.
-
-Syntax
-sword OCILobFileCLoseAll ( OCISvcCtx *svchp, 
-                           OCIError  *errhp );
-
-Comments
-Closes all open FILEs on a given service context.
-
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-
-See also
-OCILobFileClose(),
-OCIErrorGet(), OCILobFileOpen(), OCILobFileIsOpen(),
-OCILobFileExists(), CREATE DIRECTORY DDL
-
-
-
-
-
-
-OCILobFileExists()
-
-Name
-OCI LOB FILE exists
-
-Purpose
-Tests to see if the FILE exists on the server
-
-Syntax
-sword OCILobFileExists ( OCISvcCtx     *svchp,
-                         OCIError      *errhp,
-                         OCILobLocator *filep,
-                         boolean       *flag );
-
-Comments
-Checks to see if a FILE exists for on the server.
-
-Parameters
-svchp (IN) - the OCI service context handle.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, 
-it is recorded in err and this function returns OCI_ERROR. Diagnostic 
-information can be obtained by calling OCIErrorGet().
-filep (IN) - pointer to the FILE locator that refers to the file.
-flag (OUT) - returns TRUE if the FILE exists; FALSE if it does not.
-
-See also
-OCIErrorGet, CREATE DIRECTORY (DDL)
-
-
-
-
-OCILobFileGetName()
-
-Name
-OCI LOB FILE Get file Name
-
-Purpose
-Gets the FILE locator's directory alias and file name.
-
-Syntax
-sword OCILobFileGetName ( OCIEnv                   *envhp,
-                          OCIError                 *errhp, 
-                          CONST OCILobLocator      *filep, 
-                          OraText                     *dir_alias,
-                          ub2                      *d_length, 
-                          OraText                     *filename, 
-                          ub2                      *f_length );
-
-Comments
-Returns the directory alias and file name associated with this file locator.  
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) -The OCI error handle. If there is an error, it is recorded in 
-errhp and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-filep (IN) - FILE locator for which to get the directory alias and file name.
-dir_alias (OUT) - buffer into which the directory alias name is placed. The 
-caller must allocate enough space for the directory alias name and must not 
-write into the space.
-d_length (IN/OUT)                 
-        - IN: length of the input dir_alias string;
-        - OUT: length of the returned dir_alias string.
-filename (OUT) - buffer into which the file name is placed. The caller must 
-allocate enough space for the file name and must not write into the space.
-f_length (IN/OUT) 
-        - IN: length of the input filename string;
-         - OUT: lenght of the returned filename string.
-
-See also
-OCILobFileSetName(), OCIErrorGet()
-
-
-
-
-OCILobFileIsOpen()
-
-Name
-OCI LOB FILE Is Open?
-
-Purpose
-Tests to see if the FILE is open
-
-Syntax
-sword OCILobFileIsOpen ( OCISvcCtx *svchp,
-                         OCIError  *errhp,
-                         OCILobLocator *filep,
-                         boolean       *flag );
-
-Comments
-Checks to see if the FILE on the server is open for a given LobLocator.
-
-Parameters
-svchp (IN) - the OCI service context handle.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it 
-is recorded in err and this function returns OCI_ERROR. Diagnostic information 
-can be obtained by calling OCIErrorGet().
-filep (IN) - pointer to the FILE locator being examined. If the input file 
-locator was never passed to OCILobFileOpen(), the file is considered not to 
-be opened by this locator. However, a different locator may have opened the 
-file. More than one file opens can be performed on the same file using 
-different locators.
-flag (OUT) - returns TRUE if the FILE is opened using this locator; FALSE if 
-it is not. 
-
-See also
-OCIErrorGet, OCILobFileOpen, OCILobFileClose, OCILobFileCloseAll, CREATE 
-DIRECTORY SQL command
-
-
-OCILobFileOpen()
-
-Name
-OCI LOB FILE open
-
-Purpose
-Opens a FILE for read-only access
-
-Syntax
-sword OCILobFileOpen ( OCISvcCtx            *svchp,
-                     OCIError             *errhp,
-                     OCILobLocator        *filep,
-                     ub1                  mode );
-
-Comments
-Opens a FILE. The FILE can be opened for read-only access only. FILEs may not 
-be written to throough ORACLE.
-
-Parameters 
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-filep (IN/OUT) - the FILE to open. Error if the locator does not refer to a 
-FILE. 
-mode (IN) - mode in which to open the file. The only valid mode is read-only - 
-OCI_FILE_READONLY. 
-
-See Also
-OCILobFileClose, OCIErrorGet, OCILobFileCloseAll, OCILobFileIsOpen, 
-OCILobFileSetName, CREATE DIRECTORY 
-
-
-
-
-OCILobFileSetName()
-
-Name
-OCI Lob File Set NaMe
-
-Purpose
-Sets directory alias and file name in the FILE locator.
-
-Syntax
-sword OCILobFileSetName ( OCIEnv             *envhp,
-                          OCIError           *errhp,
-                          OCILobLocator      **filepp,
-                          OraText               *dir_alias,
-                          ub2                d_length, 
-                          OraText               *filename, 
-                          ub2                f_length );
-Comments
-Sets the directory alias and file name in the LOB file locator.  
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-errhp and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-filepp (IN/OUT) - FILE locator for which to set the directory alias name.
-The caller must have already allocated space for the locator by
-calling OCIDescriptorAlloc().
-dir_alias (IN) - buffer that contains the directory alias name to set in the 
-locator.
-d_length (IN) - length of the input dir_alias parameter.
-filename (IN) - buffer that contains the file name is placed.
-f_length (IN) - length of the input filename parameter.
-See also
-OCILobFileGetName, OCIErrorGet, CREATE DIRECTORY
-
-
-
-
-OCILobFlushBuffer()
-
-Name
-OCI Lob Flush all Buffers for this lob.
-
-Purpose
-Flush/write all buffers for this lob to the server.
-
-
-Syntax
-sword OCILobFlushBuffer ( OCISvcCtx       *svchp,
-                          OCIError        *errhp,
-                          OCILobLocator   *locp,
-                          ub4              flag);
-
-Comments
-
-Flushes all buffers, associated with the lob referenced by the input
-locator, to the server.  This routine will actually write the data in
-the buffer to the lob in the database.  Lob buffering must have been
-enabled for the input lob locator.
-
-This routine, by default, does not free the buffer resources for
-reallocation to another buffered LOB operation. However, if you
-want to free the buffer explicitly, you can set the flag parameter
-to OCI_LOB_BUFFER_FREE.
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator uniquely referencing the LOB. 
-flag    (IN)     - to indicate if the buffer resources need to be freed
-                   after a flush. Default value is OCI_LOB_BUFFER_NOFREE.
-                   Set it to OCI_LOB_BUFFER_FREE if you want the buffer
-                   resources to be freed.
-
-Related Functions
-OCILobEnableBuffering()
-OCILobDisableBuffering()
-OCIErrorGet()
-OCILobWrite()
-OCILobRead()
-
-OCILobFreeTemporary()
-
-Name
-OCI Lob Free Temporary
-
-Purpose
-Free a temporary LOB
-
-Syntax
-sword OCILobFreeTemporary(OCISvcCtx          *svchp,
-                          OCIError           *errhp,
-                          OCILobLocator      *locp,
-
-Comments
-  Frees the contents of the temporary Lob this locator is pointing to. Note
-  that the locator itself is not freed until a OCIDescriptorFree is done.
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator uniquely referencing the LOB
-
-Related functions
-OCILobCreateTemporary()
-OCILobIsTemporary()
-
-Name
-OCI Lob/File Get Chunk Size
-
-Purpose
-When creating the table, the user can specify the chunking factor, which can
-be a multiple of Oracle blocks. This corresponds to the chunk size used by the
-LOB data layer when accessing/modifying the LOB value. Part of the chunk is
-used to store system-related information and the rest stores the LOB value.
-This function returns the amount of space used in the LOB chunk to store 
-the LOB value.
-
-Syntax
-sword OCILobGetChunkSize ( OCISvcCtx      *svchp,
-                           OCIError       *errhp,
-                           OCILobLocator  *locp,
-                           ub4            *chunksizep );
-
-Comments
- Performance will be improved if the user issues read/write
-requests using a multiple of this chunk size. For writes, there is an added 
-benefit since LOB chunks are versioned and, if all writes are done on chunk
-basis, no extra/excess versioning is done nor duplicated. Users could batch 
-up the write until they have enough for a chunk instead of issuing several
-write calls for the same chunk.
-
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - a LOB locator that uniquely references the LOB. For internal
-LOBs, this locator must be a locator that was obtained from the server 
-specified by svchp. For FILEs, this locator can be initialized by a Select or
-OCILobFileSetName.
-chunksizep (OUT) - On output, it is the length of the LOB if not NULL - for 
-character LOBs it is the number of characters, for binary LOBs it is the 
-number of bytes in the LOB.
-
-Related Functions
-
-
-OCILobGetLength()
-
-Name
-OCI Lob/File Length
-
-Purpose
-Gets the length of a LOB/FILE. 
-
-Syntax
-sword OCILobGetLength ( OCISvcCtx      *svchp,
-                        OCIError       *errhp,
-                        OCILobLocator  *locp,
-                        ub4            *lenp );
-
-Comments
-Gets the length of a LOB/FILE. If the LOB/FILE is NULL, the length is 
-undefined.
-
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - a LOB locator that uniquely references the LOB. For internal
-LOBs, this locator must be a locator that was obtained from the server 
-specified by svchp. For FILEs, this locator can be initialized by a Select or
-OCILobFileSetName.
-lenp (OUT) - On output, it is the length of the LOB if not NULL - for 
-character LOBs it is the number of characters, for binary LOBs it is the 
-number of bytes in the LOB.
-
-Related Functions
-OCIErrorGet, OCIFileSetName
-
-
-
-
-OCILobIsEqual()
-
-Name
-
-OCI Lob Is Equal
-
-Purpose
-Compares two LOB locators for equality.
-
-Syntax
-sword OCILobIsEqual ( OCIEnv                  *envhp,
-                      CONST OCILobLocator     *x,
-                      CONST OCILobLocator     *y,
-                      boolean                 *is_equal );
-
-Comments
-Compares the given LOB locators for equality.  Two LOB locators are equal if 
-and only if they both refer to the same LOB data.
-Two NULL locators are considered not equal by this function.
-Parameters
-envhp (IN) - the OCI environment handle.
-x (IN) - LOB locator to compare.
-y (IN) - LOB locator to compare.
-is_equal (OUT) - TRUE, if the LOB locators are equal; FALSE if they are not.
-
-See also
-OCILobAssign, OCILobLocatorIsInit
-OCILobLocatorAssign()
-OCILobIsTemporary()
-
-Name
-
-OCI Lob Is Temporary
-
-Purpose
-  Tests if this locator points to a temporary LOB
-
-Syntax
-sword OCILobIsTemporary(OCIEnv            *envp,
-                        OCIError          *errhp,
-                        OCILobLocator     *locp,
-                        boolean           *is_temporary);
-
-Comments
-Tests the locator to determine if it points to a temporary LOB.
-If so, is_temporary is set to TRUE. If not, is_temporary is set
-to FALSE.
-
-Parameters
-envp (IN) - the environment handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN) - the locator to test for temporary LOB
-is_temporary(OUT) - TRUE, if the LOB locator points to a temporary LOB;
-                    FALSE, if not.
-
-See Also
-OCILobCreateTemporary, OCILobFreeTemporary
-
-
-
-OCILobLoadFromFile()
-
-Name
-OCI Lob Load From File
-
-Purpose
-Load/copy all or a portion of the file into an internal LOB.
-
-Syntax
-sword OCILobLoadFromFile ( OCISvcCtx        *svchp,
-                           OCIError         *errhp,
-                           OCILobLocator    *dst_locp,
-                           OCILobLocator    *src_filep,
-                           ub4              amount,
-                           ub4              dst_offset,
-                           ub4              src_offset );
-
-Comments
-Loads/copies a portion or all of a file value into an internal LOB as 
-specified.  The data is copied from the source file to the destination 
-internal LOB (BLOB/CLOB).  No character set conversions are performed 
-when copying the bfile data to a clob/nclob.  The bfile data must already
-be in the same character set as the clob/nclob in the database.  No
-error checking is performed to verify this.
-The source (src_filep) and the destination (dlopb) LOBs must already exist.
-If the data already exists at the destination's start position, it is 
-overwritten with the source data. If the destination's start position is 
-beyond the end of the current data, a hole is created from the end of the data
-to the beginning of the newly written data from the source. The destination 
-LOB is extended to accommodate the newly written data if it extends 
-beyond the current length of the destination LOB. 
-It is an error to extend the destination LOB beyond the maximum length 
-allowed or to try to copy from a NULL LOB.
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-dst_locp (IN/OUT) - a locator uniquely referencing the destination internal 
-LOB which may be of type blob, clob, or nclob. 
-src_filep (IN/OUT) - a locator uniquely referencing the source BFILE. 
-amount (IN) - the number of bytes to be copied.
-dst_offset (IN) - this is the absolute offset for the destination LOB. 
-For character LOBs it is the number of characters from the beginning of the 
-LOB at which to begin writing. For binary LOBs it is the number of bytes from 
-the beginning of the lob from which to begin reading. The offset starts at 1.
-src_offset (IN) - this is the absolute offset for the source BFILE.  It is the 
-number of bytes from the beginning of the LOB.  The offset starts at 1.
-
-See Also 
-OCIErrorGet(), OCILobAppend(), OCILobWrite(), OCILobTrim(), OCILobCopy()
-
-
-Name
-OCI Lob LOCATOR ASsiGn
-
-Purpose
-Assigns one LOB/FILE locator to another.
-
-Syntax
-sword OCILobLocatorAssign ( OCISvcCtx             *svchp, 
-                            OCIError              *errhp, 
-                            CONST OCILobLocator   *src_locp, 
-                            OCILobLocator         **dst_locpp );
-
-Comments
-Assign source locator to destination locator.  After the assignment, both 
-locators refer to the same LOB data.  For internal LOBs, the source locator's 
-LOB data gets copied to the destination locator's LOB data only when the 
-destination locator gets stored in the table.  Therefore, issuing a flush of 
-the object containing the destination locator will copy the LOB data. For 
-FILEs only the locator that refers to the OS file is copied to the table. The
-OS file is not copied.
-Note : the only difference between this and OCILobAssign is that this takes
-a OCI service handle pointer instead of a OCI environment handle pointer
-
-Parameters
-svchp (IN/OUT) - OCI service handle initialized in object mode.
-errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded 
-in errhp and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-src_locp (IN) - LOB locator to copy from.
-dst_locpp (IN/OUT) - LOB locator to copy to.  The caller must allocate space 
-for the OCILobLocator by calling OCIDescriptorAlloc().
-
-See also
-OCIErrorGet()
-OCILobIsEqual()
-OCILobLocatorIsInit()
-OCILobAssign()
-
-
-OCILobLocatorIsInit()
-
-Name
-OCI LOB locator is initialized?
-
-Purpose
-Tests to see if a given LOB locator is initialized.
-
-Syntax
-sword OCILobLocatorIsInit ( OCIEnv   *envhp,
-                            OCIError *errhp,
-                            CONST OCILobLocator *locp,
-                            boolean *is_initialized );
-
-Comments
-Tests to see if a given LOB locator is initialized.
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it 
-is recorded in err and this function returns OCI_ERROR. Diagnostic information 
-can be obtained by calling OCIErrorGet().
-locp (IN) - the LOB locator being tested
-is_initialized (OUT) - returns TRUE if the given LOB locator is initialized; 
-FALSE if it is not.
-
-See also
-OCIErrorGet, OCILobIsEqual
-
-
-OCILobOpen()
-
-Name
-OCI Lob Open
-Purpose
- Open an internal LOB or BFILE locator.
-Syntax
-sword OCILobOpen( OCISvcCtx      *svchp,
-                  OCIError       *errhp,
-                  OCILobLocator  *locp,
-                  ub1             mode);
-
-Comments
-Opens an internal LOB or a Bfile. A LOB can be opened only once in a 
-transaction. A LOB opened in a transaction has to be closed before 
-committing the transaction. Otherwise, the transaction is rolled back.
-A LOB cannot be opened in read_write mode without starting a transaction.
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - a LOB locator that uniquely references a LOB. 
-mode(IN) - mode can be OCI_LOB_READONLY, OCI_LOB_READWRITE
-
-Related functions
-OCILobClose(), OCIIsLobOpen()
-
-OCILobRead()
-
-Name
-OCI Lob/File ReaD
-
-Purpose
-Reads a portion of a LOB/FILE as specified by the call into a buffer. 
-
-Syntax
-sword OCILobRead ( OCISvcCtx       *svchp,
-                   OCIError        *errhp,
-                   OCILobLocator   *locp,
-                   ub4             offset,
-                   ub4             *amtp,
-                   dvoid           *bufp,
-                   ub4             bufl,
-                   dvoid           *ctxp,  
-                   OCICallbackLobRead (cbfp)
-                                   (
-                                    dvoid         *ctxp,
-                                    CONST dvoid   *bufp,
-                                    ub4           len,
-                                    ub1           piece )
-                   ub2             csid,
-                   ub1             csfrm );
-
-Comments
-Reads a portion of a LOB/FILE as specified by the call into a buffer. Data read
-from a hole is returned as 0s. It is an error to try to read from a NULL LOB/
-FILE. The OS FILE must already exist on the server and must have been opened
-using the input locator. Oracle must hav epermission to read the OS file and 
-user must have read permission on the directory object.
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - a LOB locator that uniquely references a LOB. 
-offset (IN) - On input, it is the absolute offset, for character LOBs in the 
-number of characters from the beginning of the LOB, for binary LOBs it is the 
-number of bytes. Starts from 1.
-amtp (IN/OUT) - On input, the number of character or bytes to be read. On 
-output, the actual number of bytes or characters read. 
-If the amount of bytes to be read is larger than the buffer length it is 
-assumed that the LOB is being read in a streamed mode. On input if this value 
-is 0, then the data shall be read in streamed mode from the LOB until the end 
-of LOB. If the data is read in pieces, *amtp always contains the length of the last piece read.
-If a callback function is defined, then this callback function will be invoked 
-each time bufl bytes are read off the pipe. Each piece will be written into 
-bufp.
-If the callback function is not defined, then OCI_NEED_DATA error code will 
-be returned. The application must invoke the LOB read over and over again to 
-read more pieces of the LOB until the OCI_NEED_DATA error code is not 
-returned. The buffer pointer and the length can be different in each call 
-if the pieces are being read into different sizes and location. 
-bufp (IN) - the pointer to a buffer into which the piece will be read. The 
-length of the allocated memory is assumed to be bufl. 
-bufl (IN) - the length of the buffer in octets. 
-ctxp (IN) - the context for the call back function. Can be NULL.
-cbfp (IN) - a callback that may be registered to be called for each piece. If 
-this is NULL, then OCI_NEED_DATA will be returned for each piece. 
-The callback function must return OCI_CONTINUE for the read to continue. 
-If any other error code is returned, the LOB read is aborted. 
-  ctxp (IN) - the context for the call back function. Can be NULL.
-  bufp (IN) - a buffer pointer for the piece.
-  len (IN) - the length of length of current piece in bufp.
-  piece (IN) - which piece - OCI_FIRST_PIECE, OCI_NEXT_PIECE or 
-  OCI_LAST_PIECE.
-csid - the character set ID of the buffer data
-csfrm - the character set form of the buffer data
-
-Related Functions
-OCIErrorGet, OCILobWrite, OCILobFileOpen, OCILobFileSetName, CREATE DIRECTORY
-
-
-
-
-OCILobTrim()
-
-Name
-
-OCI Lob  Trim
-
-Purpose
-Trims the lob value to a shorter length
-
-Syntax
-sword OCILobTrim ( OCISvcCtx       *svchp,
-                 OCIError        *errhp,
-                 OCILobLocator   *locp,
-                 ub4             newlen );
-
-Comments
-Truncates LOB data to a specified shorter length. 
-
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a LOB locator that uniquely references the LOB. This locator 
-must be a locator that was obtained from the server specified by svchp. 
-newlen (IN) - the new length of the LOB data, which must be less than or equal
-to the current length. 
-
-Related Functions
-OCIErrorGet, OCILobWrite, OCiLobErase, OCILobAppend, OCILobCopy
-
-
-
-
-
-OCILobWrite()
-
-Name
-OCI Lob Write
-
-Purpose
-Writes a buffer into a LOB
-
-Syntax
-sword OCILobWrite ( OCISvcCtx       *svchp,
-                    OCIError        *errhp,
-                    OCILobLocator   *locp,
-                    ub4             offset,
-                    ub4             *amtp,
-                    dvoid           *bufp, 
-                    ub4             buflen,
-                    ub1             piece,
-                    dvoid           *ctxp,  
-                    OCICallbackLobWrite   (cbfp)
-                                    (
-                                    dvoid    *ctxp,
-                                    dvoid    *bufp,
-                                    ub4      *lenp,
-                                    ub1      *piecep ) 
-                    ub2             csid
-                    ub1             csfrm );
-
-
-Comments
-Writes a buffer into a LOB as specified. If LOB data already exists 
-it is overwritten with the data stored in the buffer.
-The buffer can be written to the LOB in a single piece with this call, or
-it can be provided piecewise using callbacks or a standard polling method.
-If this value of the piece parameter is OCI_FIRST_PIECE, data must be 
-provided through callbacks or polling.
-If a callback function is defined in the cbfp parameter, then this callback 
-function will be invoked to get the next piece after a piece is written to the 
-pipe. Each piece will be written from bufp.
-If no callback function is defined, then OCILobWrite() returns the 
-OCI_NEED_DATA error code. The application must all OCILobWrite() again 
-to write more pieces of the LOB. In this mode, the buffer pointer and the 
-length can be different in each call if the pieces are of different sizes and 
-from different locations. A piece value of OCI_LAST_PIECE terminates the 
-piecewise write. 
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a LOB locator that uniquely references a LOB. 
-offset (IN) - On input, it is the absolute offset, for character LOBs in 
-the number of characters from the beginning of the LOB, for binary LOBs it 
-is the number of bytes. Starts at 1.
-bufp (IN) - the pointer to a buffer from which the piece will be written. The 
-length of the allocated memory is assumed to be the value passed in bufl. Even 
-if the data is being written in pieces, bufp must contain the first piece of 
-the LOB when this call is invoked.
-bufl (IN) - the length of the buffer in bytes.
-Note: This parameter assumes an 8-bit byte. If your platform uses a 
-longer byte, the value of bufl must be adjusted accordingly.
-piece (IN) - which piece of the buffer is being written. The default value for
-this parameter is OCI_ONE_PIECE, indicating the buffer will be written in a 
-single piece.
-The following other values are also possible for piecewise or callback mode: 
-OCI_FIRST_PIECE, OCI_NEXT_PIECE and OCI_LAST_PIECE.
-amtp (IN/OUT) - On input, takes the number of character or bytes to be 
-written. On output, returns the actual number of bytes or characters written. 
-If the data is written in pieces, *amtp will contain the total length of the 
-pieces written at the end of the call (last piece written) and is undefined in
-between. 
-(Note it is different from the piecewise read case)
-ctxp (IN) - the context for the call back function. Can be NULL.
-cbfp (IN) - a callback that may be registered to be called for each piece in a 
-piecewise write. If this is NULL, the standard polling method will be used.
-The callback function must return OCI_CONTINUE for the write to continue. 
-If any other error code is returned, the LOB write is aborted. The 
-callback takes the following parameters:
-  ctxp (IN) - the context for the call back function. Can be NULL.
-  bufp (IN/OUT) - a buffer pointer for the piece.
-  lenp (IN/OUT) - the length of the buffer (in octets) and the length of 
-  current piece in bufp (out octets).
-  piecep (OUT) - which piece - OCI_NEXT_PIECE or OCI_LAST_PIECE.
-csid - the character set ID of the buffer data
-csfrm - the character set form of the buffer data
-Related Functions
-
-
-
-
-
-
-OCILobWriteAppend()
-
-Name
-OCI Lob Write Append
-
-Purpose
-Writes data to the end of a LOB value. This call provides the ability
-to get the length of the data and append it to the end of the LOB in
-a single round trip to the server.
-
-
-Syntax
-sword OCILobWriteAppend ( OCISvcCtx       *svchp,
-                    OCIError        *errhp,
-                    OCILobLocator   *locp,
-                    ub4             *amtp,
-                    dvoid           *bufp, 
-                    ub4             buflen,
-                    ub1             piece,
-                    dvoid           *ctxp,  
-                    OCICallbackLobWrite   (cbfp)
-                                    (
-                                    dvoid    *ctxp,
-                                    dvoid    *bufp,
-                                    ub4      *lenp,
-                                    ub1      *piecep ) 
-                    ub2             csid
-                    ub1             csfrm );
-
-
-Comments
-Writes a buffer to the end of a LOB as specified. If LOB data already exists 
-it is overwritten with the data stored in the buffer.
-The buffer can be written to the LOB in a single piece with this call, or
-it can be provided piecewise using callbacks or a standard polling method.
-If this value of the piece parameter is OCI_FIRST_PIECE, data must be 
-provided through callbacks or polling.
-If a callback function is defined in the cbfp parameter, then this callback 
-function will be invoked to get the next piece after a piece is written to the 
-pipe. Each piece will be written from bufp.
-If no callback function is defined, then OCILobWriteAppend() returns the 
-OCI_NEED_DATA error code. The application must all OCILobWriteAppend() again 
-to write more pieces of the LOB. In this mode, the buffer pointer and the 
-length can be different in each call if the pieces are of different sizes and 
-from different locations. A piece value of OCI_LAST_PIECE terminates the 
-piecewise write. 
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a LOB locator that uniquely references a LOB. 
-offset (IN) - On input, it is the absolute offset, for character LOBs in 
-the number of characters from the beginning of the LOB, for binary LOBs it 
-is the number of bytes. Starts at 1.
-bufp (IN) - the pointer to a buffer from which the piece will be written. The 
-length of the allocated memory is assumed to be the value passed in bufl. Even 
-if the data is being written in pieces, bufp must contain the first piece of 
-the LOB when this call is invoked.
-bufl (IN) - the length of the buffer in bytes.
-Note: This parameter assumes an 8-bit byte. If your platform uses a 
-longer byte, the value of bufl must be adjusted accordingly.
-piece (IN) - which piece of the buffer is being written. The default value for
-this parameter is OCI_ONE_PIECE, indicating the buffer will be written in a 
-single piece.
-The following other values are also possible for piecewise or callback mode: 
-OCI_FIRST_PIECE, OCI_NEXT_PIECE and OCI_LAST_PIECE.
-amtp (IN/OUT) - On input, takes the number of character or bytes to be 
-written. On output, returns the actual number of bytes or characters written. 
-If the data is written in pieces, *amtp will contain the total length of the 
-pieces written at the end of the call (last piece written) and is undefined in
-between. 
-(Note it is different from the piecewise read case)
-ctxp (IN) - the context for the call back function. Can be NULL.
-cbfp (IN) - a callback that may be registered to be called for each piece in a 
-piecewise write. If this is NULL, the standard polling method will be used.
-The callback function must return OCI_CONTINUE for the write to continue. 
-If any other error code is returned, the LOB write is aborted. The 
-callback takes the following parameters:
-  ctxp (IN) - the context for the call back function. Can be NULL.
-  bufp (IN/OUT) - a buffer pointer for the piece.
-  lenp (IN/OUT) - the length of the buffer (in octets) and the length of 
-  current piece in bufp (out octets).
-  piecep (OUT) - which piece - OCI_NEXT_PIECE or OCI_LAST_PIECE.
-csid - the character set ID of the buffer data
-csfrm - the character set form of the buffer data
-Related Functions
-
-
-
-
-
-OCILogoff()
-Name
-OCI simplified Logoff
-Purpose
-This function is used to terminate a session created with OCILogon() or
-OCILogon2().
-Syntax
-sword OCILogoff ( OCISvcCtx      *svchp
-                   OCIError       *errhp );
-Comments
-This call is used to terminate a session which was created with OCILogon() or
-OCILogon2().
-This call implicitly deallocates the server, authentication, and service 
-context handles.
-Note: For more information on logging on and off in an application, 
-refer to the section "Application Initialization, Connection, and 
-Authorization" on page 2-16.
-Parameters
-svchp (IN) - the service context handle which was used in the call to 
-OCILogon() or OCILogon2().
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-See Also
-OCILogon(), OCILogon2().
-
-
-
-
-
-
-OCILogon()
-Name
-OCI Service Context Logon
-Purpose
-This function is used to create a simple logon session.
-Syntax
-sword OCILogon ( OCIEnv          *envhp,
-                       OCIError        *errhp,
-                       OCISvcCtx       *svchp,
-                       CONST OraText      *username,
-                       ub4             uname_len,
-                       CONST OraText      *password,
-                       ub4             passwd_len,
-                       CONST OraText      *dbname,
-                       ub4             dbname_len );
-Comments
-This function is used to create a simple logon session for an application. 
-Note: Users requiring more complex session (e.g., TP monitor 
-applications) should refer to the section "Application Initialization, 
-Connection, and Authorization" on page 2-16.
-This call allocates the error and service context handles which are passed to 
-it. This call also implicitly allocates server and authentication handles 
-associated with the session.  These handles can be retrieved by calling 
-OCIAttrGet() on the service context handle.
-Parameters
-envhp (IN) - the OCI environment handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-svchp (OUT) - the service context pointer.
-username (IN) - the username.
-uname_len (IN) - the length of username.
-password (IN) - the user's password.
-passwd_len (IN) - the length of password.
-dbname (IN) - the name of the database to connect to.
-dbname_len (IN) - the length of dbname.
-See Also
-OCILogoff()
-
-
-
-
-
-OCILogon2()
-Name
-OCI Service Context Logon
-Purpose
-This function is used to create a logon session in connection pooling mode.
-Syntax
-sword OCILogon2 ( OCIEnv          *envhp,
-                       OCIError        *errhp,
-                       OCISvcCtx       **svchp,
-                       CONST OraText      *username,
-                       ub4             uname_len,
-                       CONST OraText      *password,
-                       ub4             passwd_len,
-                       CONST OraText      *dbname,
-                       ub4             dbname_len,
-                       ub4             mode);
-Comments
-This function is used to create a simple logon session for an application in
-Connection Pooling mode. The valid values for mode are currently OCI_POOL and
-OCI_DEFAULT. Call to this function with OCI_DEFAULT mode is equivalent to 
-OCILogon() call.
-This call allocates the error and service context handles which are passed to 
-it. This call also implicitly allocates server and authentication handles 
-associated with the session.  These handles can be retrieved by calling 
-OCIAttrGet() on the service context handle. This call assumes that 
-OCIConnectionPoolCreate() has already been called for the same dbname.
-Parameters
-envhp (IN) - the OCI environment handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-svchp (OUT) - the service context pointer.
-username (IN) - the username.
-uname_len (IN) - the length of username.
-password (IN) - the user's password. If this is null, it is assumed that a
-                proxy session has to be created and the required grants on 
-                the database are already done.
-passwd_len (IN) - the length of password.
-dbname (IN) - the name of the database to connect to.
-dbname_len (IN) - the length of dbname.
-mode (IN) - the mode for doing the server attach. Should be OCI_POOL for
-            using Connection Pooling.
-
-
-See Also
-OCILogoff()
-
-
-
-
-
-OCIMemoryFree()
-Name
-OCI FREE Memory
-Purpose
-Frees up storage associated with the pointer.
-Syntax
-void OCIMemoryFree ( CONST OCIStmt   *stmhp,
-                     dvoid           *memptr);
-Comments
-Frees up dynamically allocated data pointers associated with the pointer using 
-either the default memory free function or the registered memory free 
-function, as the case may be.
-A user-defined memory free function can be registered during the initial call 
-to OCIInitialize(). 
-This call is always successful. 
-Parameters
-stmhp (IN) - statement handle which returned this data buffer.
-memptr (IN) - pointer to data allocated by the client library. 
-Related Functions
-OCIInitialize()
-
-
-
-
-
-OCIParamGet()
-Name
-OCI Get PARaMeter
-Purpose
-Returns a descriptor of a parameter specified by position in the describe 
-handle or statement handle.
-Syntax
-sword OCIParamGet ( CONST dvoid       *hndlp,
-                  ub4         htype,
-                  OCIError    *errhp,
-                  dvoid    **parmdpp,
-                  ub4         pos );
-Comments
-This call returns a descriptor of a parameter specified by position in the 
-describe handle or statement handle. Parameter descriptors are always 
-allocated internally by the OCI library. They are read-only.
-OCI_NO_DATA may be returned if there are no parameter descriptors for this 
-position. 
-See Appendix B for more detailed information about parameter descriptor 
-attributes.
-Parameters
-hndlp (IN) - a statement handle or describe handle. The OCIParamGet() 
-function will return a parameter descriptor for this handle. 
-htype (IN) - the type of the handle passed in the handle parameter. Valid 
-types are OCI_HTYPE_DESCRIBE, for a describe handle OCI_HTYPE_STMT, for a 
-statement handle
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-parmdpp (OUT) - a descriptor of the parameter at the position given in the pos 
-parameter.
-pos (IN) - position number in the statement handle or describe handle. A 
-parameter descriptor will be returned for this position.
-Note: OCI_NO_DATA may be returned if there are no parameter 
-descriptors for this position. 
-Related Functions
-OCIAttrGet(), OCIAttrSet()
-
-
-
-
-
-OCIParamSet()
-Name
-OCI Parameter Set in handle
-Purpose
-Used to set a complex object retrieval descriptor into a complex object 
-retrieval handle.
-Syntax
-sword   OCIParamGet ( dvoid *hndlp,
-                       ub4 htyp,
-                      OCIError *errhp,
-                      CONST dvoid *dscp,
-                      ub4 dtyp,
-                      ub4 pos );
-Comments
-This call sets a given complex object retrieval descriptor into a complex 
-object retrieval handle.
-The handle must have been previously allocated using OCIHandleAlloc(), and 
-the descriptor must have been previously allocated using OCIDescAlloc(). 
-Attributes of the descriptor are set using OCIAttrSet().
-Parameters
-hndlp (IN/OUT) - handle pointer.
-htype (IN) - handle type.
-errhp (IN/OUT) - error handle.
-dscp (IN) - complex object retrieval descriptor pointer.
-dtyp (IN) - 
-pos (IN) - position number.
-See Also
-
-
-
-
-
-OCIPasswordChange()
-Name
-OCI Change PassWord
-Purpose
-This call allows the password of an account to be changed.
-Syntax
-sword OCIPasswordChange ( OCISvcCtx     *svchp,
-                        OCIError      *errhp,
-                        CONST OraText    *user_name,
-                        ub4           usernm_len,
-                        CONST OraText    *opasswd,
-                        ub4           opasswd_len,
-                        CONST OraText    *npasswd,
-                        sb4           npasswd_len,
-                        ub4           mode);
-Comments
-This call allows the password of an account to be changed. This call is 
-similar to OCISessionBegin() with the following differences:
-If the user authentication is already established, it authenticates 
-the account using the old password and then changes the 
-password to the new password
-If the user authentication is not established, it establishes a user 
-authentication and authenticates the account using the old 
-password, then changes the password to the new password.
-This call is useful when the password of an account is expired and 
-OCISessionBegin() returns an error or warning which indicates that the 
-password has expired. 
-Parameters
-svchp (IN/OUT) - a handle to a service context. The service context handle 
-must be initialized and have a server context handle associated with it.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-user_name (IN) - specifies the user name. It points to a character string, 
-whose length is specified in usernm_len. This parameter must be NULL if the 
-service context has been initialized with an authentication handle.
-usernm_len (IN) - the length of the user name string specified in user_name. 
-For a valid user name string, usernm_len must be non-zero.
-opasswd (IN) - specifies the user's old password. It points to a character 
-string, whose length is specified in opasswd_len .
-opasswd_len (IN) - the length of the old password string specified in opasswd. 
-For a valid password string, opasswd_len must be non-zero.
-npasswd (IN) - specifies the user's new password. It points to a character 
-string, whose length is specified in npasswd_len which must be non-zero for a 
-valid password string. If the password complexity verification routine is 
-specified in the user's profile to verify the new password's complexity, the 
-new password must meet the complexity requirements of the verification 
-function.
-npasswd_len (IN)  - then length of the new password string specified in 
-npasswd. For a valid password string, npasswd_len must be non-zero.
-mode - pass as OCI_DEFAULT.
-Related Functions
-OCISessionBegin()
-
-
-----------------------------------OCIReset------------------------------------
-
-
-OCIReset()
-Name
-OCI Reset
-Purpose
-Resets the interrupted asynchronous operation and protocol. Must be called
-if a OCIBreak call had been issued while a non-blocking operation was in
-progress.
-Syntax
-sword OCIReset ( dvoid      *hndlp,
-                 OCIError   *errhp);
-Comments
-This call is called in non-blocking mode ONLY. Resets the interrupted
-asynchronous operation and protocol. Must be called if a OCIBreak call 
-had been issued while a non-blocking operation was in progress. 
-Parameters
-hndlp (IN) - the service context handle or the server context handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-Related Functions
-
-
-OCIResultSetToStmt()
-Name
-OCI convert Result Set to Statement Handle
-Purpose
-Converts a descriptor to statement handle for fetching rows.
-Syntax
-sword OCIResultSetToStmt ( OCIResult     *rsetdp,
-                         OCIError      *errhp );
-Comments
-Converts a descriptor to statement handle for fetching rows.
-A result set descriptor can be allocated with a call to OCIDescAlloc().
-Parameters
-rsetdp (IN/OUT) - a result set descriptor pointer. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-Related Functions
-OCIDescAlloc()
-
-
-
-
-OCIServerAttach()
-Name
-OCI ATtaCH to server
-Purpose
-Creates an access path to a data source for OCI operations.
-Syntax
-sword OCIServerAttach ( OCIServer    *srvhp,
-                      OCIError     *errhp,
-                      CONST OraText   *dblink,
-                      sb4          dblink_len,
-                      ub4          mode);
-Comments
-This call is used to create an association between an OCI application and a 
-particular server. 
-This call initializes a server context handle, which must have been previously 
-allocated with a call to OCIHandleAlloc().
-The server context handle initialized by this call can be associated with a 
-service context through a call to OCIAttrSet(). Once that association has been 
-made, OCI operations can be performed against the server.
-If an application is operating against multiple servers, multiple server 
-context handles can be maintained. OCI operations are performed against 
-whichever server context is currently associated with the service context.
-Parameters
-srvhp (IN/OUT) - an uninitialized server context handle, which gets 
-initialized by this call. Passing in an initialized server handle causes an 
-error. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-dblink (IN) - specifies the database (server) to use. This parameter points to
-a character string which specifies a connect string or a service point. If the 
-connect string is NULL, then this call attaches to the default host. The length
-of connstr is specified in connstr_len. The connstr pointer may be freed by the
-caller on return.
-dblink_len (IN) - the length of the string pointed to by connstr. For a valid 
-connect string name or alias, connstr_len must be non-zero.
-mode (IN) - specifies the various modes of operation.  For release 8.0, pass as
-OCI_DEFAULT - in this mode, calls made to the server on this server context 
-are made in blocking mode. 
-Example
-See the description of OCIStmtPrepare() on page 13-96 for an example showing 
-the use of OCIServerAttach().
-Related Functions
-OCIServerDetach()
-
-
-
-OCIServerDetach()
-Name
-OCI DeTaCH server
-Purpose
-Deletes an access to a data source for OCI operations.
-Syntax
-sword OCIServerDetach ( OCIServer   *svrhp,
-                      OCIError    *errhp,
-                      ub4         mode); 
-Comments
-This call deletes an access to data source for OCI operations, which was 
-established by a call to OCIServerAttach(). 
-Parameters
-srvhp (IN) - a handle to an initialized server context, which gets reset to 
-uninitialized state. The handle is not de-allocated. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-mode (IN) - specifies the various modes of operation. The only valid mode is 
-OCI_DEFAULT for the default mode. 
-Related Functions
-OCIServerAttach()
-
-
-
-OCIServerVersion()
-Name
-OCI VERSion
-Purpose
-Returns the version string of the Oracle server.
-Syntax
-sword OCIServerVersion ( dvoid        *hndlp, 
-                       OCIError     *errhp, 
-                       OraText         *bufp,
-                       ub4          bufsz
-                       ub1          hndltype );
-Comments
-This call returns the version string of the Oracle server. 
-For example, the following might be returned as the version string if your 
-application is running against a 7.3.2 server:
-Oracle7 Server Release 7.3.2.0.0 - Production Release
-PL/SQL Release 2.3.2.0.0 - Production
-CORE Version 3.5.2.0.0 - Production
-TNS for SEQUENT DYNIX/ptx: Version 2.3.2.0.0 - Production
-NLSRTL Version 3.2.2.0.0 - Production
-
-Parameters
-hndlp (IN) - the service context handle or the server context handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-bufp (IN) - the buffer in which the version information is returned.
-bufsz (IN) - the length of the buffer.
-hndltype (IN) - the type of handle passed to the function.
-Related Functions
-
-
-
-
-
-OCISessionBegin()
-Name
-OCI Session Begin and authenticate user
-Purpose
-Creates a user authentication and begins a user session for a given server.
-Syntax
-sword OCISessionBegin ( OCISvcCtx     *svchp,
-                      OCIError      *errhp,
-                      OCISession    *usrhp,
-                      ub4           credt,
-                      ub4           mode);
-
-Comments
-For Oracle8, OCISessionBegin() must be called for any given server handle 
-before requests can be made against it. Also, OCISessionBegin() only supports 
-authenticating the user for access to the Oracle server specified by the 
-server handle in the service context. In other words, after OCIServerAttach() 
-is called to initialize a server handle, OCISessionBegin() must be called to 
-authenticate the user for that given server. 
-When OCISessionBegin() is called for the first time for the given server 
-handle, the initialized authentication handle is called a primary 
-authentication context. A primary authentication context may not be created 
-with the OCI_MIGRATE mode. Also, only one primary authentication context can 
-be created for a given server handle and the primary authentication context c
-an only ever be used with that server handle. If the primary authentication 
-context is set in a service handle with a different server handle, then an 
-error will result.
-After OCISessionBegin() has been called for the server handle, and the primary 
-authentication context is set in the service handle, OCISessionBegin() may be 
-called again to initialize another authentication handle with different (or 
-the same) credentials. When OCISessionBegin() is called with a service handle 
-set with a primary authentication context, the returned authentication context
-in authp is called a user authentication context. As many user authentication 
-contexts may be initialized as desired.
-User authentication contexts may be created with the OCI_MIGRATE mode. 
-If the OCI_MIGRATE mode is not specified, then the user authentication 
-context can only ever be used with the same server handle set in svchp. If 
-OCI_MIGRATE mode is specified, then the user authentication may be set 
-with different server handles. However, the user authentication context is 
-restricted to use with only server handles which resolve to the same database 
-instance and that have equivalent primary authentication contexts. Equivalent 
-authentication contexts are those which were authenticated as the same 
-database user.
-OCI_SYSDBA, OCI_SYSOPER, and OCI_PRELIM_AUTH may only be used 
-with a primary authentication context.
-To provide credentials for a call to OCISessionBegin(), one of two methods are 
-supported. The first is to provide a valid username and password pair for 
-database authentication in the user authentication handle passed to 
-OCISessionBegin(). This involves using OCIAttrSet() to set the 
-OCI_ATTR_USERNAME and OCI_ATTR_PASSWORD attributes on the 
-authentication handle. Then OCISessionBegin() is called with 
-OCI_CRED_RDBMS.
-Note: When the authentication handle is terminated using 
-OCISessionEnd(), the username and password attributes remain 
-unchanged and thus can be re-used in a future call to OCISessionBegin(). 
-Otherwise, they must be reset to new values before the next 
-OCISessionBegin() call.
-The second type of credentials supported are external credentials. No 
-attributes need to be set on the authentication handle before calling 
-OCISessionBegin(). The credential type is OCI_CRED_EXT. This is equivalent 
-to the Oracle7 `connect /' syntax. If values have been set for 
-OCI_ATTR_USERNAME and OCI_ATTR_PASSWORD, then these are 
-ignored if OCI_CRED_EXT is used.
-Parameters
-svchp (IN) - a handle to a service context. There must be a valid server 
-handle set in svchp.
-errhp (IN) - an error handle to the retrieve diagnostic information.
-usrhp (IN/OUT) - a handle to an authentication context, which is initialized 
-by this call.
-credt (IN) - specifies the type of credentials to use for authentication. 
-Valid values for credt are:
-OCI_CRED_RDBMS - authenticate using a database username and 
-password pair as credentials. The attributes OCI_ATTR_USERNAME 
-and OCI_ATTR_PASSWORD should be set on the authentication 
-context before this call.
-OCI_CRED_EXT - authenticate using external credentials. No username 
-or password is provided.
-mode (IN) - specifies the various modes of operation. Valid modes are:
-OCI_DEFAULT - in this mode, the authentication context returned may 
-only ever be set with the same server context specified in svchp. This 
-establishes the primary authentication context.
-OCI_MIGRATE - in this mode, the new authentication context may be 
-set in a service handle with a different server handle. This mode 
-establishes the user authentication context. 
-OCI_SYSDBA - in this mode, the user is authenticated for SYSDBA 
-access.
-OCI_SYSOPER - in this mode, the user is authenticated for SYSOPER 
-access.
-OCI_PRELIM_AUTH - this mode may only be used with OCI_SYSDBA 
-or OCI_SYSOPER to authenticate for certain administration tasks.
-Related Functions
-OCISessionEnd()
-
-
-
-
-
-
-OCISessionEnd()
-Name
-OCI Terminate user Authentication Context
-Purpose
-Terminates a user authentication context created by OCISessionBegin()
-Syntax
-sword OCISessionEnd ( OCISvcCtx       *svchp,
-                    OCIError        *errhp,
-                    OCISession      *usrhp,
-                    ub4             mode);
-
-Comments
-The user security context associated with the service context is invalidated 
-by this call. Storage for the authentication context is not freed. The 
-transaction specified by the service context is implicitly committed. The 
-transaction handle, if explicitly allocated, may be freed if not being used.
-Resources allocated on the server for this user are freed.
-The authentication handle may be reused in a new call to OCISessionBegin().
-Parameters
-svchp (IN/OUT) - the service context handle. There must be a valid server 
-handle and user authentication handle associated with svchp.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-usrhp (IN) - de-authenticate this user. If this parameter is passed as NULL, the 
-user in the service context handle is de-authenticated.
-mode (IN) - the only valid mode is OCI_DEFAULT.
-Example
-In this example, an authentication context is destroyed.
-Related Functions
-OCISessionBegin()
-
-
-
-
-OCIStmtExecute()
-Name
-OCI EXECute
-Purpose
-This call associates an application request with a server.
-Syntax
-sword OCIStmtExecute ( OCISvcCtx           *svchp,
-                     OCIStmt             *stmtp,
-                     OCIError            *errhp,
-                     ub4                 iters,
-                     ub4                 rowoff,
-                     CONST OCISnapshot   *snap_in,
-                     OCISnapshot         *snap_out,
-                     ub4                 mode );
-Comments
-This function  is used to execute a prepared SQL statement.
-Using an execute call, the application associates a request with a server. On 
-success, OCI_SUCCESS is returned.
-If a SELECT statement is executed, the description of the select list follows 
-implicitly as a response. This description is buffered on the client side for 
-describes, fetches and define type conversions. Hence it is optimal to 
-describe a select list only after an execute. 
-Also for SELECT statements, some results are available implicitly. Rows will 
-be received and buffered at the end of the execute. For queries with small row 
-count, a prefetch causes memory to be released in the server if the end of 
-fetch is reached, an optimization that may result in memory usage reduction. 
-Set attribute call has been defined to set the number of rows to be prefetched
-per result set.
-For SELECT statements, at the end of the execute, the statement handle 
-implicitly maintains a reference to the service context on which it is 
-executed. It is the user's responsibility to maintain the integrity of the 
-service context. If the attributes of a service context is changed for 
-executing some operations on this service context, the service context must 
-be restored to have the same attributes, that a statement was executed with, 
-prior to a fetch on the statement handle. The implicit reference is maintained 
-until the statement handle is freed or the fetch is cancelled or an end of 
-fetch condition is reached.
-Note: If output variables are defined for a SELECT statement before a 
-call to OCIStmtExecute(), the number of rows specified by iters will be 
-fetched directly into the defined output buffers and additional rows 
-equivalent to the prefetch count will be prefetched. If there are no 
-additional rows, then the fetch is complete without calling 
-OCIStmtFetch().
-The execute call will return errors if the statement has bind data types that 
-are not supported in an Oracle7 server.
-Parameters
-svchp (IN/OUT) - service context handle. 
-stmtp (IN/OUT) - an statement handle - defines the statement and the 
-associated data to be executed at the server. It is invalid to pass in a 
-statement handle that has bind of data types only supported in release 8.0 
-when srvchp points to an Oracle7 server. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. If the statement is being 
-batched and it is successful, then this handle will contain this particular 
-statement execution specific errors returned from the server when the batch is 
-flushed.
-iters (IN) - the number of times this statement is executed for non-Select 
-statements. For Select statements, if iters is non-zero, then defines must 
-have been done for the statement handle. The execution fetches iters rows into 
-these predefined buffers and prefetches more rows depending upon the prefetch 
-row count. This function returns an error if iters=0 for non-SELECT 
-statements.
-rowoff (IN) - the index from which the data in an array bind is relevant for 
-this multiple row execution. 
-snap_in (IN) - this parameter is optional. if supplied, must point to a 
-snapshot descriptor of type OCI_DTYPE_SNAP.  The contents of this descriptor 
-must be obtained from the snap_out parameter of a previous call.  The 
-descriptor is ignored if the SQL is not a SELECT.  This facility allows 
-multiple service contexts to ORACLE to see the same consistent snapshot of the 
-database's committed data.  However, uncommitted data in one context is not 
-visible to another context even using the same snapshot.
-snap_out (OUT) - this parameter optional. if supplied, must point to a 
-descriptor of type OCI_DTYPE_SNAP. This descriptor is filled in with an 
-opaque representation which is the current ORACLE "system change 
-number" suitable as a snap_in input to a subsequent call to OCIStmtExecute().  
-This descriptor should not be used any longer than necessary in order to avoid 
-"snapshot too old" errors. 
-mode (IN) - The modes are:
-If OCI_DEFAULT_MODE, the default mode, is selected, the request is 
-immediately executed. Error handle contains diagnostics on error if any. 
-OCI_EXACT_FETCH - if the statement is a SQL SELECT, this mode is 
-only valid if the application has set the prefetch row count prior to this 
-call. In this mode, the OCI library will get up to the number of rows 
-specified (i.e., prefetch row count plus iters). If the number of rows 
-returned by the query is greater than this value, OCI_ERROR will be 
-returned with ORA-01422 as the implementation specific error in a 
-diagnostic record. If the number of rows returned by the query is 
-smaller than the prefetch row count, OCI_SUCCESS_WITH_INFO will 
-be returned with ORA-01403 as the implementation specific error. The 
-prefetch buffer size is ignored and the OCI library tries to allocate all the 
-space required to contain the prefetched rows. The exact fetch semantics 
-apply to only the top level rows. No more rows can be fetched for this 
-query at the end of the call. 
-OCI_KEEP_FETCH_STATE - the result set rows (not yet fetched) of this 
-statement executed in this transaction will be maintained when the 
-transaction is detached for migration. By default, a query is cancelled 
-when a transaction is detached for migration. This mode is the default 
-mode when connected to a V7 server. 
-Related Functions
-OCIStmtPrepare()
-
-
-
-
-
-OCIStmtFetch()
-Name
-OCI FetCH
-Purpose
-Fetches rows from a query.
-Syntax
-sword OCIStmtFetch ( OCIStmt     *stmtp,
-                   OCIError    *errhp, 
-                   ub4         nrows,
-                   ub2         orientation,
-                   ub4         mode);
-Comments
-The fetch call is a local call, if prefetched rows suffice. However, this is 
-transparent to the application. If LOB columns are being read, LOB locators 
-are fetched for subsequent LOB operations to be performed on these locators. 
-Prefetching is turned off if LONG columns are involved. 
-A fetch with nrows set to 0 rows effectively cancels the fetch for this 
-statement.
-Parameters
-stmtp (IN) - a statement (application request) handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-nrows (IN) - number of rows to be fetched from the current position.
-orientation (IN) - for release 8.0, the only acceptable value is 
-OCI_FETCH_NEXT, which is also the default value. 
-mode (IN) - for release 8.0, beta-1, the following mode is defined.
-OCI_DEFAULT - default mode
-OCI_EOF_FETCH - indicates that it is the last fetch from the result set. 
-If nrows is non-zero, setting this mode effectively cancels fetching after 
-retrieving nrows, otherwise it cancels fetching immediately. 
-Related Functions
-OCIAttrGet()
-
-
-OCIStmtFetch2()
-Name
-OCI FetCH2
-Purpose
-Fetches rows from a query.
-Syntax
-sword OCIStmtFetch2 ( OCIStmt     *stmtp,
-                   OCIError    *errhp, 
-                   ub4         nrows,
-                   ub2         orientation,
-                   ub4         scrollOffset,
-                   ub4         mode);
-Comments
-The fetch call works similar to the OCIStmtFetch call with the 
-addition of the fetchOffset parameter. It can be used on any 
-statement handle, whether it is scrollable or not. For a 
-non-scrollable statement handle, the only acceptable value 
-will be OCI_FETCH_NEXT, and the fetchOffset parameter will be 
-ignored. Applications are encouraged to use this new call. 
-
-A fetchOffset with OCI_FETCH_RELATIVE is equivalent to 
-OCI_FETCH_CURRENT with a value of 0, is equivalent to 
-OCI_FETCH_NEXT with a value of 1, and equivalent to 
-OCI_FETCH_PRIOR with a value of -1. Note that the range of 
-accessible rows is [1,OCI_ATTR_ROW_COUNT] beyond which an 
-error could be raised if sufficient rows do not exist in 
-
-The fetch call is a local call, if prefetched rows suffice. However, this is 
-transparent to the application. If LOB columns are being read, LOB locators 
-are fetched for subsequent LOB operations to be performed on these locators. 
-Prefetching is turned off if LONG columns are involved. 
-A fetch with nrows set to 0 rows effectively cancels the fetch for this 
-statement.
-Parameters
-stmtp (IN) - a statement (application request) handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-nrows (IN) - number of rows to be fetched from the current position.
-It defaults to 1 for orientation OCI_FETCH_LAST.
-orientation (IN) -  The acceptable values are as follows, with 
-OCI_FETCH_NEXT being the default value.
-OCI_FETCH_CURRENT gets the current row, 
-OCI_FETCH_NEXT gets the next row from the current position,
-OCI_FETCH_FIRST gets the first row in the result set,
-OCI_FETCH_LAST gets the last row in the result set, 
-OCI_FETCH_PRIOR gets the previous row from the current row in the result set, 
-OCI_FETCH_ABSOLUTE will fetch the row number (specified by fetchOffset 
-parameter) in the result set using absolute positioning,
-OCI_FETCH_RELATIVE will fetch the row number (specified by fetchOffset 
-parameter) in the result set using relative positioning.
-scrollOffset(IN) - offset used with the OCI_FETCH_ABSOLUTE and 
-OCI_FETCH_RELATIVE orientation parameters only. It specify
-the new current position for scrollable result set. It is 
-ignored for non-scrollable result sets. 
-mode (IN) - for release 8.0, beta-1, the following mode is defined.
-OCI_DEFAULT - default mode
-OCI_EOF_FETCH - indicates that it is the last fetch from the result set. 
-If nrows is non-zero, setting this mode effectively cancels fetching after 
-retrieving nrows, otherwise it cancels fetching immediately. 
-Related Functions
-OCIAttrGet()
-
-
-OCIStmtGetBindInfo()
-Name
-OCI Get Bind Parameters
-Purpose
-Gets the bind and indicator variable names.
-Syntax
-sword OCIStmtGetBindInfo ( OCIStmt      *stmtp,
-                     OCIError     *errhp,
-                     ub4          size,
-                     ub4          startloc,
-                     sb4          *found,
-                     OraText         *bvnp[],
-                     ub1          bvnl[],
-                     OraText         *invp[],
-                     ub1          inpl[],
-                     ub1          dupl[],
-                     OCIBind      *hndl[] );
-
-Comments
-Gets the bind and indicator variable names. It returns the information for all 
-the bind variables (even the duplicate ones) and sets the found parameter to 
-the total number of bind variables and not just the number of distinct bind 
-variables.
-The statement must have been prepared with a call to OCIStmtPrepare() prior 
-to this call. 
-This call is processed locally.
-Parameters
-stmtp (IN) - the statement handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-size (IN) - the number of elements in each array.
-startloc (IN) - position of the  bind variable at which to start getting  bind 
-information.
-found (IN) - abs(found) gives the total number of bind variables in the 
-statement irrespective of the start position. Positive value if the number of 
-bind variables returned is less than the size provided, otherwise negative.
-bvnp (OUT) - array of pointers to hold bind variable names.
-bvnl (OUT) - array to hold the length of the each bvnp element.
-invp (OUT) - array of pointers to hold indicator variable names.
-inpl (OUT) - array of pointers to hold the length of the each invp element.
-dupl (OUT) - an array whose element value is 0 or 1 depending on whether the 
-bind position is duplicate of another.
-hndl  (OUT) - an array which returns the bind handle if binds have been done 
-for the bind position. No handle is returned for duplicates.
-Related Functions
-OCIStmtPrepare()
-
-
-
-OCIStmtGetPieceInfo()
-Name
-OCI Get Piece Information
-Purpose
-Returns piece information for a piecewise operation.
-Syntax
-sword OCIStmtGetPieceInfo( CONST OCIStmt  *stmtp,
-                         OCIError       *errhp,
-                         dvoid          **hndlpp,
-                         ub4            *typep,
-                         ub1            *in_outp,
-                         ub4            *iterp, 
-                         ub4            *idxp,
-                         ub1            *piecep );
-
-Comments
-When an execute/fetch call returns OCI_NEED_DATA to get/return a 
-dynamic bind/define value or piece, OCIStmtGetPieceInfo() returns the 
-relevant information: bind/define handle, iteration or index number and 
-which piece.
-See the section "Runtime Data Allocation and Piecewise Operations" on page 
-5-16 for more information about using OCIStmtGetPieceInfo().
-Parameters
-stmtp (IN) - the statement when executed returned OCI_NEED_DATA. 
-errhp (OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-hndlpp (OUT) - returns a pointer to the bind or define handle of the bind or 
-define whose runtime data is required or is being provided.
-typep (OUT) - the type of the handle pointed to by hndlpp: OCI_HTYPE_BIND 
-(for a bind handle) or OCI_HTYPE_DEFINE (for a define handle).
-in_outp (OUT) - returns OCI_PARAM_IN if the data is required for an IN bind 
-value. Returns OCI_PARAM_OUT if the data is available as an OUT bind 
-variable or a define position value.
-iterp (OUT) - returns the row number of a multiple row operation.
-idxp (OUT) - the index of an array element of a PL/SQL array bind operation.
-piecep (OUT) - returns one of the following defined values - 
-OCI_ONE_PIECE, OCI_FIRST_PIECE, OCI_NEXT_PIECE and 
-OCI_LAST_PIECE. The default value is always OCI_ONE_PIECE. 
-Related Functions
-OCIAttrGet(), OCIAttrGet(), OCIStmtExecute(), OCIStmtFetch(), 
-OCIStmtSetPieceInfo()
-
-
-
-
-OCIStmtPrepare()
-Name
-OCI Statement REQuest
-Purpose
-This call defines the SQL/PLSQL statement to be executed.
-Syntax
-sword OCIStmtPrepare ( OCIStmt      *stmtp,
-                     OCIError     *errhp,
-                     CONST OraText   *stmt, 
-                     ub4          stmt_len,
-                     ub4          language,
-                     ub4          mode);
-Comments
-This call is used to prepare a SQL or PL/SQL statement for execution. The 
-OCIStmtPrepare() call defines an application request. 
-This is a purely local call. Data values for this statement initialized in 
-subsequent bind calls will be stored in a bind handle which will hang off this 
-statement handle.
-This call does not create an association between this statement handle and any 
-particular server.
-See the section "Preparing Statements" on page 2-21 for more information 
-about using this call.
-Parameters
-stmtp (IN) - a statement handle.
-errhp (IN) - an error handle to retrieve diagnostic information.
-stmt (IN) - SQL or PL/SQL statement to be executed. Must be a null-
-terminated string. The pointer to the text of the statement must be available 
-as long as the statement is executed.
-stmt_len (IN) - length of the statement. Must not be zero.
-language (IN) - V7, V8, or native syntax. Possible values are:
-OCI_V7_SYNTAX - V7 ORACLE parsing syntax
-OCI_V8_SYNTAX - V8 ORACLE parsing syntax
-OCI_NTV_SYNTAX - syntax depending upon the version of the server. 
-mode (IN) - the only defined mode is OCI_DEFAULT for default mode. 
-Example
-This example demonstrates the use of OCIStmtPrepare(), as well as the OCI 
-application initialization calls.
-Related Functions
-OCIAttrGet(), OCIStmtExecute()
-
-
-OCIStmtPrepare2()
-Name
-OCI Statement REQuest with (a) early binding to svchp and/or
-(b) stmt caching
-Purpose
-This call defines the SQL/PLSQL statement to be executed.
-Syntax
-sword OCIStmtPrepare2 ( OCISvcCtx *svchp,
-                     OCIStmt      **stmtp,
-                     OCIError     *errhp,
-                     CONST OraText   *stmt,
-                     ub4          stmt_len,
-                     CONST OraText *key,
-                     ub4          key_len,
-                     ub4          language,
-                     ub4          mode);
-Comments
-This call is used to prepare a SQL or PL/SQL statement for execution. The
-OCIStmtPrepare() call defines an application request.
-This is a purely local call. Data values for this statement initialized in
-subsequent bind calls will be stored in a bind handle which will hang off this
-statement handle.
-This call creates an association between the statement handle and a service
-context. It differs from OCIStmtPrepare in that respect. It also supports
-stmt caching. The stmt will automatically be cached if the authp of the stmt
-has enabled stmt caching.
-Parameters
-svchp (IN) - the service context handle that contains the session that
-             this stmt handle belongs to.
-stmtp (OUT) - an unallocated stmt handle must be pased in. An allocated
-              and prepared  statement handle will be returned.
-errhp (IN) - an error handle to retrieve diagnostic information.
-stmt (IN) - SQL or PL/SQL statement to be executed. Must be a null-
-            terminated string. The pointer to the OraText of the statement 
-            must be available as long as the statement is executed.
-stmt_len (IN) - length of the statement. Must not be zero.
-key (IN) - This is only Valid for OCI Stmt Caching. It indicates the
-           key to search with. It thus optimizes the search in the cache.
-key_len (IN) - the length of the key. This, too, is onlly valid for stmt
-               caching.
-language (IN) - V7, V8, or native syntax. Possible values are:
-OCI_V7_SYNTAX - V7 ORACLE parsing syntax
-OCI_V8_SYNTAX - V8 ORACLE parsing syntax
-OCI_NTV_SYNTAX - syntax depending upon the version of the server.
-mode (IN) - the defined modes are OCI_DEFAULT and OCI_PREP2_CACHE_SEARCHONLY.
-Example
-Related Functions
-OCIStmtExecute(), OCIStmtRelease()
-
-
-OCIStmtRelease()
-Name
-OCI Statement Release. This call is used to relesae the stmt that
-was retreived using OCIStmtPrepare2(). If the stmt is release
-using this call, OCIHandleFree() must not be called on the stmt
-handle.
-Purpose
-This call releases the statement obtained by OCIStmtPrepare2
-Syntax
-sword OCIStmtRelease ( OCIStmt      *stmtp,
-                     OCIError     *errhp,
-                     cONST OraText *key,
-                     ub4          key_len,
-                     ub4          mode);
-Comments
-This call is used to release a handle obtained via OCIStmtPrepare2().
-It also frees the memory associated with the handle.
-This is a purely local call.
-Parameters
-stmtp (IN/OUT) - The statement handle to be released/freed.
-errhp (IN) - an error handle to retrieve diagnostic information.
-key (IN) - This is only Valid for OCI Stmt Caching. It indicates the
-           key to tag the stmt with.
-key_len (IN) - the length of the key. This, too, is only valid for stmt
-               caching.
-mode (IN) - the defined modes are OCI_DEFAULT for default mode and
-            OCI_STRLS_CACHE_DELETE (only used for Stmt Caching).
-Example
-Related Functions
-OCIStmtExecute(), OCIStmtPrepare2()
-
-
-OCIStmtSetPieceInfo()
-Name
-OCI Set Piece Information
-Purpose
-Sets piece information for a piecewise operation.
-Syntax
-sword OCIStmtSetPieceInfo ( dvoid             *hndlp,
-                          ub4               type,
-                          OCIError          *errhp,
-                          CONST dvoid       *bufp,
-                          ub4               *alenp, 
-                          ub1               piece,
-                          CONST dvoid       *indp, 
-                          ub2               *rcodep ); 
-Comments
-When an execute call returns OCI_NEED_DATA to get a dynamic IN/OUT 
-bind value or piece, OCIStmtSetPieceInfo() sets the piece information: the 
-buffer, the length, the indicator and which piece is currently being processed.
-For more information about using OCIStmtSetPieceInfo() see the section 
-"Runtime Data Allocation and Piecewise Operations" on page 5-16.
-Parameters
-hndlp (IN/OUT) - the bind/define handle.
-type (IN) - type of the handle. 
-errhp (OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-bufp (IN/OUT) - bufp is a pointer to a storage containing the data value or 
-the piece when it is an IN bind variable, otherwise bufp is a pointer to 
-storage for getting a piece or a value for OUT binds and define variables. For
-named data types or REFs, a pointer to the object or REF is returned.
-alenp (IN/OUT) - the length of the piece or the value. 
-piece (IN) - the piece parameter. The following are valid values: 
-OCI_ONE_PIECE, OCI_FIRST_PIECE, OCI_NEXT_PIECE, or 
-OCI_LAST_PIECE. 
-The default value is OCI_ONE_PIECE. This parameter is used for IN bind 
-variables only.
-indp (IN/OUT) - indicator. A pointer to a sb2 value or pointer to an indicator 
-structure for named data types (SQLT_NTY) and REFs (SQLT_REF), i.e., *indp 
-is either an sb2 or a dvoid * depending upon the data type.
-rcodep (IN/OUT) - return code. 
-Related Functions
-OCIAttrGet(), OCIAttrGet(), OCIStmtExecute(), OCIStmtFetch(), 
-OCIStmtGetPieceInfo()
-
-
-OCIFormatInit
-Name
-OCIFormat Package Initialize
-Purpose
-Initializes the OCIFormat package.
-Syntax
-sword OCIFormatInit(dvoid *hndl, OCIError *err);
-Comments
-This routine must be called before calling any other OCIFormat routine.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - OCI environment or session handle
-err (IN/OUT) - OCI error handle
-Related Functions
-OCIFormatTerm()
-
-
-OCIFormatString
-Name
-OCIFormat Package Format String
-Purpose
-Writes a text string into the supplied text buffer using the argument
-list submitted to it and in accordance with the format string given.
-Syntax
-sword OCIFormatString(dvoid *hndl, OCIError *err, text *buffer,
-                      sbig_ora bufferLength, sbig_ora *returnLength,
-                      CONST OraText *formatString, ...);
-Comments
-The first call to this routine must be preceded by a call to the
-OCIFormatInit routine that initializes the OCIFormat package
-for use.  When this routine is no longer needed then terminate
-the OCIFormat package by a call to the OCIFormatTerm routine.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl         (IN/OUT) - OCI environment or session handle
-err          (IN/OUT) - OCI error handle
-buffer       (OUT)    - text buffer for the string
-bufferLength (IN)     - length of the text buffer
-returnLength (OUT)    - length of the formatted string
-formatString (IN)     - format specification string
-...          (IN)     - variable argument list
-Related Functions
-
-
-OCIFormatTerm 
-Name
-OCIFormat Package Terminate
-Purpose
-Terminates the OCIFormat package.
-Syntax
-sword OCIFormatTerm(dvoid *hndl, OCIError *err);
-Comments
-It must be called after the OCIFormat package is no longer being used.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - OCI environment or session handle
-err (IN/OUT) - OCI error handle
-Related Functions
-OCIFormatInit()
-
-
-OCIFormatTUb1
-Name
-OCIFormat Package ub1 Type
-Purpose
-Return the type value for the ub1 type.
-Syntax
-sword OCIFormatTUb1(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTUb2
-Name
-OCIFormat Package ub2 Type
-Purpose
-Return the type value for the ub2 type.
-Syntax
-sword OCIFormatTUb2(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTUb4
-Name
-OCIFormat Package ub4 Type
-Purpose
-Return the type value for the ub4 type.
-Syntax
-sword OCIFormatTUb4(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTUword
-Name
-OCIFormat Package uword Type
-Purpose
-Return the type value for the uword type.
-Syntax
-sword OCIFormatTUword(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTUbig_ora
-Name
-OCIFormat Package ubig_ora Type
-Purpose
-Return the type value for the ubig_ora type.
-Syntax
-sword OCIFormatTUbig_ora(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSb1
-Name
-OCIFormat Package sb1 Type
-Purpose
-Return the type value for the sb1 type.
-Syntax
-sword OCIFormatTSb1(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSb2
-Name
-OCIFormat Package sb2 Type
-Purpose
-Return the type value for the sb2 type.
-Syntax
-sword OCIFormatTSb2(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSb4
-Name
-OCIFormat Package sb4 Type
-Purpose
-Return the type value for the sb4 type.
-Syntax
-sword OCIFormatTSb4(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSword
-Name
-OCIFormat Package sword Type
-Purpose
-Return the type value for the sword type.
-Syntax
-sword OCIFormatTSword(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSbig_ora
-Name
-OCIFormat Package sbig_ora Type
-Purpose
-Return the type value for the sbig_ora type.
-Syntax
-sword OCIFormatTSbig_ora(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEb1
-Name
-OCIFormat Package eb1 Type
-Purpose
-Return the type value for the eb1 type.
-Syntax
-sword OCIFormatTEb1(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEb2
-Name
-OCIFormat Package eb2 Type
-Purpose
-Return the type value for the eb2 type.
-Syntax
-sword OCIFormatTEb2(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEb4
-Name
-OCIFormat Package eb4 Type
-Purpose
-Return the type value for the eb4 type.
-Syntax
-sword OCIFormatTEb4(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEword
-Name
-OCIFormat Package eword Type
-Purpose
-Return the type value for the eword type.
-Syntax
-sword OCIFormatTEword(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTChar
-Name
-OCIFormat Package text Type
-Purpose
-Return the type value for the text type.
-Syntax
-sword OCIFormatTChar(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTText
-Name
-OCIFormat Package *text Type
-Purpose
-Return the type value for the *text type.
-Syntax
-sword OCIFormatTText(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTDouble
-Name
-OCIFormat Package double Type
-Purpose
-Return the type value for the double type.
-Syntax
-sword OCIFormatTDouble(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatDvoid
-Name
-OCIFormat Package dvoid Type
-Purpose
-Return the type value for the dvoid type.
-Syntax
-sword OCIFormatTDvoid(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEnd
-Name
-OCIFormat Package end Type
-Purpose
-Return the list terminator's "type".
-Syntax
-sword OCIFormatTEnd(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCISvcCtxToLda()
-Name
-OCI toggle SerVice context handle to Version 7 Lda_Def
-Purpose
-Toggles between a V8 service context handle and a V7 Lda_Def.
-Syntax
-sword OCISvcCtxToLda ( OCISvcCtx    *srvhp,
-                     OCIError     *errhp,
-                     Lda_Def      *ldap );
-Comments
-Toggles between an Oracle8 service context handle and an Oracle7 Lda_Def.
-This function can only be called after a service context has been properly 
-initialized.
-Once the service context has been translated to an Lda_Def, it can be used in 
-release 7.x OCI calls (e.g., obindps(), ofen()).
-Note: If there are multiple service contexts which share the same server 
-handle, only one can be in V7 mode at any time.
-The action of this call can be reversed by passing the resulting Lda_Def to 
-the OCILdaToSvcCtx() function.
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-ldap (IN/OUT) - a Logon Data Area for V7-style OCI calls which is initialized 
-by this call. 
-Related Functions
-OCILdaToSvcCtx()
-
-
-
-
-OCITransCommit()
-Name
-OCI TX (transaction) CoMmit
-Purpose
-Commits the transaction associated with a specified service context.
-Syntax
-sword OCITransCommit ( OCISvcCtx    *srvcp,
-                     OCIError     *errhp,
-                     ub4          flags );
-Comments
-The transaction currently associated with the service context is committed. If 
-it is a distributed transaction that the server cannot commit, this call 
-additionally retrieves the state of the transaction from the database to be 
-returned to the user in the error handle.
-If the application has defined multiple transactions, this function operates 
-on the transaction currently associated with the service context. If the 
-application is working with only the implicit local transaction created when 
-database changes are made, that implicit transaction is committed.
-If the application is running in the object mode, then the modified or updated 
-objects in the object cache for this transaction are also committed.
-The flags parameter is used for one-phase commit optimization in distributed 
-transactions. If the transaction is non-distributed, the flags parameter is 
-ignored, and OCI_DEFAULT can be passed as its value. OCI applications 
-managing global transactions should pass a value of 
-OCI_TRANS_TWOPHASE to the flags parameter for a two-phase commit. The 
-default is one-phase commit.
-Under normal circumstances, OCITransCommit() returns with a status 
-indicating that the transaction has either been committed or rolled back. With 
-distributed transactions, it is possible that the transaction is now in-doubt 
-(i.e., neither committed nor aborted). In this case, OCITransCommit() 
-attempts to retrieve the status of the transaction from the server. 
-The status is returned.
-Parameters
-srvcp (IN) - the service context handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags -see the "Comments" section above.
-Related Functions
-OCITransRollback()
-
-
-
-
-OCITransDetach()
-Name
-OCI TX (transaction) DeTach
-Purpose
-Detaches a transaction.
-Syntax
-sword OCITransDetach ( OCISvcCtx    *srvcp,
-                     OCIError     *errhp,
-                     ub4          flags);
-Comments
-Detaches a global transaction from the service context handle. The transaction 
-currently attached to the service context handle becomes inactive at the end 
-of this call. The transaction may be resumed later by calling OCITransStart(), 
-specifying  a flags value of OCI_TRANS_RESUME.
-When a transaction is detached, the value which was specified in the timeout 
-parameter of OCITransStart() when the transaction was started is used to 
-determine the amount of time the branch can remain inactive before being 
-deleted by the server's PMON process.
-Note: The transaction can be resumed by a different process than the one 
-that detached it, provided that the transaction has the same 
-authorization.
-Parameters
-srvcp (IN) - the service context handle. 
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags (IN) - you must pass a value of OCI_DEFAULT for this parameter.
-Related Functions
-OCITransStart()
-
-
-
-OCITransForget()
-Name
-OCI TX (transaction) ForGeT
-Purpose
-Causes the server to forget a heuristically completed global transaction.
-Syntax
-sword OCITransForget ( OCISvcCtx     *svchp, 
-                     OCIError      *errhp,
-                     ub4           flags);
-
-Comments
-
-Forgets a heuristically completed global transaction. The server deletes the 
-status of the transaction from the system's pending transaction table.
-The XID of the transaction to be forgotten is set as an attribute of the 
-transaction handle (OCI_ATTR_XID).
-Parameters
-srvcp (IN) - the service context handle - the transaction is rolled back.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags (IN) - you must pass OCI_DEFAULT for this parameter.
-Related Functions
-OCITransCommit(), OCITransRollback()
-
-
-
-OCITransMultiPrepare() 
-Name
-OCI Trans(action) Multi-Branch Prepare
-Purpose
-Prepares a transaction with multiple branches in a single call.
-Syntax
-sword OCITransMultiPrepare ( OCISvcCtx    *svchp,
-                             ub4           numBranches,
-                             OCITrans     **txns,
-                             OCIError     **errhp);
-
-Comments
-
-Prepares the specified global transaction for commit.
-This call is valid only for distributed transactions.
-This call is an advanced performance feature intended for use only in
-situations where the caller is responsible for preparing all the branches
-in a transaction. 
-Parameters
-srvcp (IN) - the service context handle. 
-numBranches (IN) - This is the number of branches expected. It is also the
-array size for the next two parameters.
-txns (IN) - This is the array of transaction handles for the branches to
-prepare. They should all have the OCI_ATTR_XID set. The global transaction
-ID should be the same.
-errhp (IN) - This is the array of error handles. If OCI_SUCCESS is not
-returned, then these will indicate which branches received which errors.
-Related Functions
-OCITransPrepare()
-
-
-OCITransPrepare()
-Name
-OCI TX (transaction) PREpare
-Purpose
-Prepares a transaction for commit.
-Syntax
-sword OCITransPrepare ( OCISvcCtx    *svchp, 
-                      OCIError     *errhp,
-                      ub4          flags);
-
-Comments
-
-Prepares the specified global transaction for commit.
-This call is valid only for distributed transactions.
-The call returns OCI_SUCCESS_WITH_INFO if the transaction has not made 
-any changes. The error handle will indicate that the transaction is read-only. 
-The flag parameter is not currently used. 
-Parameters
-srvcp (IN) - the service context handle. 
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags (IN) - you must pass OCI_DEFAULT for this parameter.
-Related Functions
-OCITransCommit(), OCITransForget()
-
-
-
-
-OCITransRollback()
-Name
-OCI TX (transaction) RoLlback
-Purpose
-Rolls back the current transaction.
-Syntax
-sword OCITransRollback ( dvoid        *svchp, 
-                       OCIError     *errhp,
-                       ub4          flags );
-Comments
-The current transaction- defined as the set of statements executed since the 
-last OCITransCommit() or since OCISessionBegin()-is rolled back.
-If the application is running under object mode then the modified or updated 
-objects in the object cache for this transaction are also rolled back.
-An error is returned if an attempt is made to roll back a global transaction 
-that is not currently active.
-Parameters
-svchp (IN) - a service context handle. The transaction currently set in the 
-service context handle is rolled back.
-errhp -(IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags - you must pass a value of OCI_DEFAULT for this parameter.
-Related Functions
-OCITransCommit()
-
-
-
-
-OCITransStart()
-Name
-OCI TX (transaction) STart
-Purpose
-Sets the beginning of a transaction.
-Syntax
-sword OCITransStart ( OCISvcCtx    *svchp, 
-                    OCIError     *errhp, 
-                    uword        timeout,
-                    ub4          flags);
-
-Comments
-This function sets the beginning of a global or serializable transaction. The 
-transaction context currently associated with the service context handle is 
-initialized at the end of the call if the flags parameter specifies that a new 
-transaction should be started.
-The XID of the transaction is set as an attribute of the transaction handle 
-(OCI_ATTR_XID)
-Parameters
-svchp (IN/OUT) - the service context handle. The transaction context in the 
-service context handle is initialized at the end of the call if the flag 
-specified a new transaction to be started.
-errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-err and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-timeout (IN) - the time, in seconds, to wait for a transaction to become 
-available for resumption when OCI_TRANS_RESUME is specified. When 
-OCI_TRANS_NEW is specified, this value is stored and may be used later by 
-OCITransDetach().
-flags (IN) - specifies whether a new transaction is being started or an 
-existing transaction is being resumed. Also specifies serializiability or 
-read-only status. More than a single value can be specified. By default, 
-a read/write transaction is started. The flag values are:
-OCI_TRANS_NEW - starts a new transaction branch. By default starts a 
-tightly coupled and migratable branch.
-OCI_TRANS_TIGHT - explicitly specifies a tightly coupled branch
-OCI_TRANS_LOOSE - specifies a loosely coupled branch
-OCI_TRANS_RESUME - resumes an existing transaction branch. 
-OCI_TRANS_READONLY - start a readonly transaction
-OCI_TRANS_SERIALIZABLE - start a serializable transaction
-Related Functions
-OCITransDetach()
-
-
-******************************************************************************/
-
-/*****************************************************************************
-                         ACTUAL PROTOTYPE DECLARATIONS
-******************************************************************************/
-/*-----------------------Dynamic Callback Function Pointers------------------*/
-typedef sb4 (*OCICallbackInBind)(/*_ dvoid *ictxp, OCIBind *bindp, ub4 iter,
-                                   ub4 index, dvoid **bufpp, ub4 *alenp,
-                                   ub1 *piecep, dvoid **indp _*/);
- 
-typedef sb4 (*OCICallbackOutBind)(/*_ dvoid *octxp, OCIBind *bindp, ub4 iter,
-                                    ub4 index, dvoid **bufpp, ub4 **alenp,
-                                    ub1 *piecep, dvoid **indp,
-                                    ub2 **rcodep _*/);
- 
-typedef sb4 (*OCICallbackDefine)(/*_ dvoid *octxp, OCIDefine *defnp, ub4 iter,
-                                   dvoid **bufpp, ub4 **alenp, ub1 *piecep,
-                                   dvoid **indp, ub2 **rcodep _*/);
-
-typedef sword (*OCIUserCallback)(/*_ dvoid *ctxp, dvoid *hndlp, ub4 type,
-                                     ub4 fcode, ub4 when, sword returnCode,
-                                     sb4 *errnop, va_list arglist _*/);
-
-typedef sword (*OCIEnvCallbackType)(/*_ OCIEnv *env, ub4 mode,
-                                       size_t xtramem_sz, dvoid *usrmemp,
-                                       OCIUcb *ucbDesc _*/); 
-
-typedef sb4 (*OCICallbackLobRead)(/*_ dvoid *ctxp,
-                                      CONST dvoid *bufp,
-                                      ub4 len,
-                                      ub1 piece _*/);
-
-/*
- * Called multiple times when the data is being read from the pipe
- * ctxp (IN) - is the context passed in by the user in OCILobRead call
- * bufp (IN) - the buffer containing the read data
- * len  (IN) - the length of the data in the buffer that is relevant
- * piece (IN) - one of the following, OCI_FIRST_PIECE, OCI_NEXT_PIECE
- */
-
-typedef sb4 (*OCICallbackLobWrite)(/*_ dvoid *ctxp,
-                                       dvoid *bufp,
-                                       ub4 *lenp,
-                                       ub1 *piece _*/);
-
-/*
- * Called multiple times when the data is being written to the pipe
- * ctxp (IN) - is the context passed in by the user in OCILobRead call
- * bufp (IN/OUT) - the buffer into which the data to be written is copied
- * lenp  (OUT) - the length of the data in the buffer that is relevant
- * piece (OUT) - one of the following, OCI_NEXT_PIECE or OCI_LAST_PIECE
- */
-
-/*--------------------------Failover Callback Structure ---------------------*/
-typedef sb4 (*OCICallbackFailover)(/*_ dvoid *svcctx, dvoid *envctx,
-                                       dvoid *fo_ctx, ub4 fo_type,
-                                       ub4 fo_event _*/);
-/* Called at failover time if client has registered it. */
-typedef struct
-{
-  OCICallbackFailover callback_function;
-  dvoid *fo_ctx;
-} 
-OCIFocbkStruct;
-
-
-
-sword   OCIInitialize(/*_ ub4 mode, dvoid *ctxp,
-                          dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-                          dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr,
-                                            size_t newsize),
-                          void (*mfreefp)(dvoid *ctxp, dvoid *memptr) _*/);
-
-sword   OCITerminate(ub4 mode);
-
-sword   OCIEnvCreate (/*_ OCIEnv **envp, ub4 mode, dvoid *ctxp,
-                 dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-                 dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-                 void   (*mfreefp)(dvoid *ctxp, dvoid *memptr),
-                 size_t xtramem_sz, dvoid **usrmempp _*/);
-
-sword   OCIEnvNlsCreate (/*_ OCIEnv **envp, ub4 mode, dvoid *ctxp,
-                 dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-                 dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-                 void   (*mfreefp)(dvoid *ctxp, dvoid *memptr),
-                 size_t xtramem_sz, dvoid **usrmempp,
-                 ub2 charset, ub2 ncharset _*/);
-
-sword   OCIFEnvCreate (/*_ OCIEnv **envp, ub4 mode, dvoid *ctxp,
-                 dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-                 dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-                 void   (*mfreefp)(dvoid *ctxp, dvoid *memptr),
-                 size_t xtramem_sz, dvoid **usrmempp, dvoid *fupg _*/);
-
-sword   OCIHandleAlloc(/*_ CONST dvoid *parenth, dvoid **hndlpp, 
-                           CONST ub4 type, CONST size_t xtramem_sz,
-                           dvoid **usrmempp _*/);
-
-sword   OCIHandleFree(/*_ dvoid *hndlp, CONST ub4 type _*/);
-
-sword   OCIDescriptorAlloc(/*_ CONST dvoid *parenth, dvoid **descpp, 
-                               CONST ub4 type, CONST size_t xtramem_sz, 
-                               dvoid **usrmempp _*/);
-
-sword   OCIDescriptorFree(/*_ dvoid *descp, CONST ub4 type _*/);
-
-sword   OCIEnvInit(/*_ OCIEnv **envp, ub4 mode,
-                       size_t xtramem_sz, dvoid **usrmempp _*/);
-
-sword   OCIServerAttach(/*_ OCIServer *srvhp, OCIError *errhp,
-                            CONST OraText *dblink, sb4 dblink_len, 
-                            ub4 mode _*/);
-
-sword   OCIServerDetach(/*_ OCIServer *srvhp, OCIError *errhp, ub4 mode _*/);
-
-sword   OCISessionBegin(/*_ OCISvcCtx *svchp, OCIError *errhp,
-                            OCISession *usrhp, ub4 credt, ub4 mode _*/);
-
-sword   OCISessionEnd(/*_ OCISvcCtx *svchp, OCIError *errhp,
-                          OCISession *usrhp, ub4 mode _*/);
-
-sword OCILogon       (/*_ OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp, 
-			CONST OraText *username, ub4 uname_len, 
-			CONST OraText *password, ub4 passwd_len, 
-			CONST OraText *dbname, ub4 dbname_len _*/);
-
-sword OCILogon2       (/*_ OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp,
-                        CONST OraText *username, ub4 uname_len,
-                        CONST OraText *password, ub4 passwd_len,
-                        CONST OraText *dbname, ub4 dbname_len,
-                        ub4 mode _*/);
-
-sword OCILogoff      (/*_ OCISvcCtx *svchp, OCIError *errhp _*/);
-
-sword OCIPasswordChange (/*_ OCISvcCtx *svchp, OCIError *errhp,
-                           CONST OraText *user_name, ub4 usernm_len,
-                           CONST OraText *opasswd, ub4 opasswd_len,
-                           CONST OraText *npasswd, ub4 npasswd_len, 
-                            ub4 mode _*/);
-
-sword   OCIStmtPrepare(/*_ OCIStmt *stmtp, OCIError *errhp, CONST OraText *stmt,
-                           ub4 stmt_len, ub4 language, ub4 mode _*/);
-
-sword OCIStmtPrepare2 (/*_ OCISvcCtx *svchp, OCIStmt **stmtp, OCIError *errhp,
-                     CONST OraText *stmt, ub4 stmt_len, CONST OraText *key,
-                     ub4 key_len, ub4 language, ub4 mode _*/);
-
-sword OCIStmtRelease (/*_ OCIStmt *stmtp, OCIError *errhp, CONST OraText *key,
-                       ub4 key_len, ub4 mode _*/);
-
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword OCIBindByPos   (/*_ OCIStmt *stmtp, OCIBind **bindp, OCIError *errhp,
-			ub4 position, dvoid *valuep, sb4 value_sz,
-			ub2 dty, dvoid *indp, ub2 *alenp, ub2 *rcodep,
-			ub4 maxarr_len, ub4 *curelep, ub4 mode _*/);
-#endif /* __STDC__ */
-
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword OCIBindByName  (/*_ OCIStmt *stmtp, OCIBind **bindp, OCIError *errhp,
-			CONST OraText *placeholder, sb4 placeh_len, 
-                        dvoid *valuep, sb4 value_sz, ub2 dty, 
-                        dvoid *indp, ub2 *alenp, ub2 *rcodep, 
-                        ub4 maxarr_len, ub4 *curelep, ub4 mode _*/);
-#endif /* __STDC__ */
-
-sword   OCIBindObject(/*_ OCIBind *bindp, OCIError *errhp,
-                          CONST OCIType *type, dvoid **pgvpp,
-                          ub4 *pvszsp, dvoid **indpp, ub4 *indszp _*/);
-
-sword   OCIBindDynamic(/*_ OCIBind *bindp, OCIError *errhp,
-                           dvoid *ictxp, OCICallbackInBind icbfp,
-                           dvoid *octxp, OCICallbackOutBind ocbfp _*/);
-
-sword   OCIBindArrayOfStruct(/*_ OCIBind *bindp, OCIError *errhp, ub4 pvskip,
-                                 ub4 indskip, ub4 alskip, ub4 rcskip _*/);
-
-sword   OCIStmtGetPieceInfo(/*_ OCIStmt *stmtp, OCIError *errhp,
-                                dvoid **hndlpp, ub4 *typep, ub1 *in_outp,
-                                ub4 *iterp, ub4 *idxp, ub1 *piecep _*/);
-
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword   OCIStmtSetPieceInfo(/*_ dvoid *hndlp, ub4 type, OCIError *errhp,
-                                CONST dvoid *bufp, ub4 *alenp, ub1 piece,
-                                CONST dvoid *indp, ub2 *rcodep _*/);
-#endif /* __STDC__ */
-
-sword   OCIStmtExecute(/*_ OCISvcCtx *svchp, OCIStmt *stmtp, OCIError *errhp,
-                           ub4 iters, ub4 rowoff, CONST OCISnapshot *snap_in,
-                           OCISnapshot *snap_out, ub4 mode _*/);
-
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword OCIDefineByPos (/*_ OCIStmt *stmtp, OCIDefine **defnp, OCIError *errhp,
-			ub4 position, dvoid *valuep, sb4 value_sz, ub2 dty,
-			dvoid *indp, ub2 *rlenp, ub2 *rcodep, ub4 mode _*/);
-#endif /* __STDC__ */
-
-sword   OCIDefineObject(/*_ OCIDefine *defnp, OCIError *errhp,
-                            CONST OCIType *type, dvoid **pgvpp,
-                            ub4 *pvszsp, dvoid **indpp, ub4 *indszp _*/);
-
-sword   OCIDefineDynamic(/*_ OCIDefine *defnp, OCIError *errhp,
-                             dvoid *octxp, OCICallbackDefine ocbfp _*/);
-
-sword   OCIDefineArrayOfStruct(/*_ OCIDefine *defnp, OCIError *errhp, 
-                                 ub4 pvskip, ub4 indskip, ub4 rlskip, 
-                                 ub4 rcskip _*/);
-
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword   OCIStmtFetch(/*_ OCIStmt *stmtp, OCIError *errhp,
-                         ub4 nrows, ub2 orientation, ub4 mode _*/);
-#endif /* __STDC__ */
-
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword   OCIStmtFetch2(/*_ OCIStmt *stmtp, OCIError *errhp,
-                         ub4 nrows, ub2 orientation, sb4 scrollOffset, ub4 mode _*/);
-#endif /* __STDC__ */
-
-sword   OCIStmtGetBindInfo(/*_ OCIStmt *stmtp, OCIError *errhp, ub4 size, 
-                               ub4 startloc, sb4 *found, 
-                               OraText *bvnp[], ub1 bvnl[], OraText *invp[],
-                               ub1 inpl[], ub1 dupl[], OCIBind *hndl[] _*/);
-
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword   OCIDescribeAny(/*_ OCISvcCtx *svchp, OCIError *errhp,
-                           dvoid *objptr, ub4 objnm_len, ub1 objptr_typ,
-                           ub1 info_level, ub1 objtyp, OCIDescribe *dschp _*/);
-#endif /* __STDC__ */
-
-sword   OCIParamGet(/*_ CONST dvoid *hndlp, ub4 htype, OCIError *errhp,
-                        dvoid **parmdpp, ub4 pos _*/);
-
-sword   OCIParamSet(/*_ dvoid *hdlp, ub4 htyp, OCIError *errhp,
-                        CONST dvoid *dscp, ub4 dtyp, ub4 pos _*/);
-
-sword   OCITransStart(/*_ OCISvcCtx *svchp, OCIError *errhp,
-                          uword timeout, ub4 flags _*/);
-
-sword   OCITransDetach(/*_ OCISvcCtx *svchp, OCIError *errhp, ub4 flags _*/);
-
-sword   OCITransCommit(/*_ OCISvcCtx *svchp, OCIError *errhp, ub4 flags _*/);
-
-sword   OCITransRollback(/*_ OCISvcCtx *svchp, OCIError *errhp, ub4 flags _*/);
-
-sword   OCITransPrepare (/*_ OCISvcCtx *svchp, OCIError *errhp, ub4 flags _*/);
-
-sword   OCITransMultiPrepare (/*_ OCISvcCtx *svchp, ub4 numBranches, 
-                                  OCITrans **txns, OCIError **errhp _*/);
-
-sword   OCITransForget ( /*_ OCISvcCtx *svchp, OCIError *errhp, ub4 flags _*/);
-
-sword   OCIErrorGet   ( /*_ dvoid *hndlp, ub4 recordno, OraText *sqlstate,
-			    sb4 *errcodep, OraText *bufp, ub4 bufsiz, 
-			    ub4 type _*/ );
-
-sword   OCILobAppend  ( /*_ OCISvcCtx *svchp, OCIError *errhp, 
-                            OCILobLocator *dst_locp,
-                            OCILobLocator *src_locp _*/ );
-
-sword   OCILobAssign  ( /*_ OCIEnv *envhp, OCIError *errhp, 
-                            CONST OCILobLocator *src_locp, 
-                            OCILobLocator **dst_locpp _*/ );
-
-sword   OCILobCharSetForm  ( /*_ OCIEnv *envhp, OCIError *errhp, 
-                                 CONST OCILobLocator *locp, 
-                                 ub1 *csfrm _*/ );
-
-sword   OCILobCharSetId ( /*_ OCIEnv *envhp, OCIError *errhp, 
-                              CONST OCILobLocator *locp, ub2 *csid _*/ );
-
-sword   OCILobCopy  ( /*_ OCISvcCtx *svchp, OCIError *errhp, 
-                          OCILobLocator *dst_locp,
-		          OCILobLocator *src_locp, 
-                          ub4 amount, ub4 dst_offset, 
-                          ub4 src_offset _*/ );
-
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword OCILobCreateTemporary(/*_ OCISvcCtx          *svchp,
-                            OCIError           *errhp,
-                            OCILobLocator      *locp,
-                            ub2                 csid,
-                            ub1                 csfrm,
-                            ub1                 lobtype,
-                            boolean             cache,
-                            OCIDuration         duration _*/);
-#endif /* __STDC__ */
-
-sword OCILobClose( /*_ OCISvcCtx        *svchp,
-                       OCIError         *errhp,
-                       OCILobLocator    *locp _*/);
-
-
-sword   OCILobDisableBuffering ( /*_ OCISvcCtx      *svchp,
-                                     OCIError       *errhp,
-                                     OCILobLocator  *locp _*/ );
-
-sword   OCILobEnableBuffering ( /*_ OCISvcCtx      *svchp,
-                                    OCIError       *errhp,
-                                    OCILobLocator  *locp _*/ );
-
-sword   OCILobErase  ( /*_ OCISvcCtx *svchp, OCIError *errhp, 
-                           OCILobLocator *locp,
-                           ub4 *amount, ub4 offset _*/ );
-
-sword   OCILobFileClose  ( /*_ OCISvcCtx *svchp, OCIError *errhp, 
-                               OCILobLocator *filep _*/ );
-
-sword   OCILobFileCloseAll (/*_ OCISvcCtx *svchp, OCIError *errhp _*/);
-
-sword   OCILobFileExists   (/*_ OCISvcCtx *svchp, OCIError *errhp, 
-			      OCILobLocator *filep,
-			      boolean *flag _*/);
- 
-sword   OCILobFileGetName  ( /*_ OCIEnv *envhp, OCIError *errhp, 
-                                 CONST OCILobLocator *filep,
-                                 OraText *dir_alias, ub2 *d_length, 
-                                 OraText *filename, ub2 *f_length _*/ );
-                            
-sword   OCILobFileIsOpen  (/*_ OCISvcCtx *svchp, OCIError *errhp, 
-                               OCILobLocator *filep,
-                               boolean *flag _*/);
-
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword   OCILobFileOpen  ( /*_ OCISvcCtx *svchp, OCIError *errhp, 
-                            OCILobLocator *filep, ub1 mode _*/ );
-#endif /* __STDC__ */
-
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword   OCILobFileSetName  ( /*_ OCIEnv *envhp, OCIError *errhp, 
-                                 OCILobLocator **filepp, 
-                                 CONST OraText *dir_alias, ub2 d_length, 
-                                 CONST OraText *filename, ub2 f_length _*/ );
-#endif /* __STDC__ */
-
-sword   OCILobFlushBuffer ( /*_ OCISvcCtx       *svchp,
-                                OCIError        *errhp,
-                                OCILobLocator   *locp,
-                                ub4              flag _*/ );
-
-sword OCILobFreeTemporary(/*_ OCISvcCtx          *svchp,
-                              OCIError           *errhp,
-                              OCILobLocator      *locp _*/);
-
-
-sword OCILobGetChunkSize(/*_ OCISvcCtx         *svchp,
-                             OCIError          *errhp,
-                             OCILobLocator     *locp,
-                             ub4               *chunksizep _*/);
-
-sword   OCILobGetLength  ( /*_ OCISvcCtx *svchp, OCIError *errhp, 
-                               OCILobLocator *locp,
-		               ub4 *lenp _*/ );
-
-sword   OCILobIsEqual  ( /*_ OCIEnv *envhp, CONST OCILobLocator *x, 
-                             CONST OCILobLocator *y, boolean *is_equal _*/ );
-
-sword OCILobIsOpen(/*_ OCISvcCtx     *svchp,
-                       OCIError      *errhp,
-                       OCILobLocator *locp,
-                       boolean       *flag _*/);
-
-sword OCILobIsTemporary(/*_ OCIEnv            *envp,
-                            OCIError          *errhp,
-                            OCILobLocator     *locp,
-                            boolean           *is_temporary _*/);
-
-sword   OCILobLoadFromFile  ( /*_ OCISvcCtx *svchp, OCIError *errhp, 
-                                  OCILobLocator *dst_locp,
-       	                          OCILobLocator *src_filep, 
-                                  ub4 amount, ub4 dst_offset, 
-                                  ub4 src_offset _*/ );
-
-sword   OCILobLocatorAssign  ( /*_ OCISvcCtx *svchp, OCIError *errhp, 
-                            CONST OCILobLocator *src_locp, 
-                            OCILobLocator **dst_locpp _*/ );
-
-
-sword   OCILobLocatorIsInit ( /*_ OCIEnv *envhp, OCIError *errhp, 
-                                CONST OCILobLocator *locp, 
-                                boolean *is_initialized _*/ );
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword   OCILobOpen(/*_ OCISvcCtx        *svchp,
-                       OCIError         *errhp,
-                       OCILobLocator    *locp,
-                       ub1               mode _*/);
-#endif /* __STDC__ */
-
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword   OCILobRead  ( /*_ OCISvcCtx *svchp, OCIError *errhp, 
-                          OCILobLocator *locp,
-                          ub4 *amtp, ub4 offset, dvoid *bufp, ub4 bufl, 
-                          dvoid *ctxp, 
-                          sb4 (*cbfp)( dvoid *ctxp, 
-                                       CONST dvoid *bufp, 
-                                       ub4 len, 
-                                       ub1 piece),
-                          ub2 csid, ub1 csfrm _*/ );
-#endif /* __STDC__ */
-
-sword   OCILobTrim  ( /*_ OCISvcCtx *svchp, OCIError *errhp, 
-                          OCILobLocator *locp,
-                          ub4 newlen _*/ );
-
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword   OCILobWrite  ( /*_ OCISvcCtx *svchp, OCIError *errhp, 
-                         OCILobLocator *locp,
-                         ub4 *amtp, ub4 offset, dvoid *bufp, ub4 buflen, 
-                         ub1 piece, dvoid *ctxp, 
-                         sb4 (*cbfp)(dvoid *ctxp, 
-                                     dvoid *bufp, 
-                                     ub4 *len, 
-                                     ub1 *piece),
-                         ub2 csid, ub1 csfrm _*/ );
-#endif /* __STDC__ */
-
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword OCILobWriteAppend(/*_
-OCISvcCtx         *svchp,
-OCIError          *errhp,
-OCILobLocator     *lobp,
-ub4              *amtp,
-dvoid            *bufp,
-ub4               bufl,
-ub1               piece,
-dvoid            *ctxp,
-sb4             (*cbfp)(dvoid  *ctxp,
-                        dvoid  *bufp,
-                        ub4    *len,
-                        ub1    *piece),
-ub2               csid,
-ub1               csfrm _*/);
-#endif /* __STDC__ */
-
-sword   OCIBreak ( /*_ dvoid *hndlp, OCIError *errhp _*/ );
-
-sword   OCIReset ( /*_ dvoid *hndlp, OCIError *errhp _*/ );
-
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword   OCIServerVersion  ( /*_ dvoid *hndlp, OCIError *errhp, OraText *bufp, 
-                                ub4 bufsz, ub1 hndltype _*/ );
-
-sword   OCIServerRelease  ( /*_ dvoid *hndlp, OCIError *errhp, OraText *bufp,
-                                ub4 bufsz, ub1 hndltype, ub4 *version _*/ );
-
-#endif /* __STDC__ */
-
-sword   OCIAttrGet ( /*_ CONST dvoid *trgthndlp, ub4 trghndltyp, 
-                         dvoid *attributep, ub4 *sizep, ub4 attrtype, 
-                         OCIError *errhp _*/ );
-
-sword   OCIAttrSet ( /*_ dvoid *trgthndlp, ub4 trghndltyp, dvoid *attributep,
-                         ub4 size, ub4 attrtype, OCIError *errhp _*/ );
-
-sword   OCISvcCtxToLda ( /*_ OCISvcCtx *svchp, OCIError *errhp, 
-                             Lda_Def *ldap _*/ );
-
-sword   OCILdaToSvcCtx ( /*_ OCISvcCtx **svchpp, OCIError *errhp, 
-                             Lda_Def *ldap _*/ );
-
-sword   OCIResultSetToStmt ( /*_ OCIResult *rsetdp, OCIError *errhp _*/ );
-
-
-sword	OCIUserCallbackRegister(/*_ dvoid *hndlp, ub4 type, dvoid *ehndlp,
-                                    OCIUserCallback callback, dvoid *ctxp,
-                                    ub4 fcode, ub4 when, OCIUcb *ucbDesc _*/);
-
-sword	OCIUserCallbackGet(/*_ dvoid *hndlp, ub4 type, dvoid *ehndlp,
-                               ub4 fcode, ub4 when, OCIUserCallback *callbackp,
-                               dvoid **ctxpp, OCIUcb *ucbDesc _*/);
-
-sword   OCISharedLibInit(/*_ dvoid *metaCtx, dvoid *libCtx, ub4 argfmt,
-                             sword argc, dvoid *argv[],
-                             OCIEnvCallbackType envCallback _*/);
-
-sword   OCISecurityInitialize (/*_ OCISecurity *osshandle,
-                                 OCIError *error_handle _*/);
-
-sword   OCISecurityTerminate (/*_ OCISecurity *osshandle,
-				OCIError *error_handle _*/);
-
-sword OCISecurityOpenWallet(/*_ OCISecurity *osshandle,
-			      OCIError *error_handle,
-			      size_t wrllen,
-			      OraText *wallet_resource_locator,
-			      size_t pwdlen,
-			      OraText *password,
-			      nzttWallet *wallet _*/);
-
-sword OCISecurityCloseWallet(/*_ OCISecurity *osshandle,
-			       OCIError *error_handle,
-			       nzttWallet *wallet _*/);
-
-sword OCISecurityCreateWallet(/*_ OCISecurity *osshandle,
-				OCIError *error_handle,
-				size_t wrllen,
-				OraText *wallet_resource_locator,
-				size_t pwdlen,
-				OraText *password,
-				nzttWallet *wallet _*/);
-
-sword OCISecurityDestroyWallet(/*_ OCISecurity *osshandle,
-				 OCIError *error_handle,
-				 size_t wrllen,
-				 OraText *wallet_resource_locator,
-				 size_t pwdlen,
-				 OraText *password _*/);
-
-sword OCISecurityStorePersona(/*_ OCISecurity *osshandle,
-				OCIError *error_handle,
-				nzttPersona **persona,
-				nzttWallet *wallet _*/);
-
-sword OCISecurityOpenPersona(/*_ OCISecurity *osshandle,
-			       OCIError *error_handle,
-			       nzttPersona *persona _*/);
-
-sword OCISecurityClosePersona(/*_ OCISecurity *osshandle,
-				OCIError *error_handle,
-				nzttPersona *persona _*/);
-
-sword OCISecurityRemovePersona(/*_ OCISecurity *osshandle,
-				 OCIError *error_handle,
-				 nzttPersona **persona _*/);
-
-sword OCISecurityCreatePersona(/*_ OCISecurity *osshandle,
-				 OCIError *error_handle,
-				 nzttIdentType identity_type,
-				 nzttCipherType cipher_type,
-				 nzttPersonaDesc *desc,
-				 nzttPersona **persona _*/);
-
-sword OCISecuritySetProtection(/*_ OCISecurity *osshandle,
-				 OCIError *error_handle,
-				 nzttPersona *persona,
-				 nzttcef crypto_engine_function,
-				 nztttdufmt data_unit_format,
-				 nzttProtInfo *protection_info _*/);
-
-sword OCISecurityGetProtection(/*_ OCISecurity *osshandle,
-				 OCIError *error_handle,
-				 nzttPersona *persona,
-				 nzttcef crypto_engine_function,
-				 nztttdufmt * data_unit_format_ptr,
-				 nzttProtInfo *protection_info _*/);
-
-sword OCISecurityRemoveIdentity(/*_ OCISecurity *osshandle,
-				  OCIError *error_handle,
-				  nzttIdentity **identity_ptr _*/);
-
-sword OCISecurityCreateIdentity(/*_ OCISecurity *osshandle,
-				  OCIError *error_handle,
-				  nzttIdentType type,
-				  nzttIdentityDesc *desc,
-				  nzttIdentity **identity_ptr _*/);
-
-sword OCISecurityAbortIdentity(/*_ OCISecurity *osshandle,
-				 OCIError *error_handle,
-				 nzttIdentity **identity_ptr _*/);
-
-sword OCISecurityFreeIdentity(/*_ OCISecurity *osshandle,
-			       	  OCIError *error_handle,
-				  nzttIdentity **identity_ptr _*/);
-
-sword OCISecurityStoreTrustedIdentity(/*_ OCISecurity *osshandle,
-					OCIError *error_handle,
-					nzttIdentity **identity_ptr,
-					nzttPersona *persona _*/);
-
-sword OCISecuritySign(/*_ OCISecurity *osshandle,
-			OCIError *error_handle,
-			nzttPersona *persona,
-			nzttces signature_state,
-			size_t input_length,
-			ub1 *input,
-			nzttBufferBlock *buffer_block _*/);
-
-sword OCISecuritySignExpansion(/*_ OCISecurity *osshandle,
-				 OCIError *error_handle,
-				 nzttPersona *persona,
-				 size_t inputlen,
-				 size_t *signature_length _*/);
-
-sword OCISecurityVerify(/*_ OCISecurity *osshandle,
-			  OCIError *error_handle,
-			  nzttPersona *persona,
-			  nzttces signature_state,
-			  size_t siglen,
-			  ub1 *signature,
-			  nzttBufferBlock *extracted_message,
-			  boolean *verified,
-			  boolean *validated,
-			  nzttIdentity **signing_party_identity _*/);
-
-sword OCISecurityValidate(/*_ OCISecurity *osshandle,
-			    OCIError *error_handle,
-			    nzttPersona *persona,
-			    nzttIdentity *identity,
-			    boolean *validated _*/);
-
-sword OCISecuritySignDetached(/*_ OCISecurity *osshandle,
-				OCIError *error_handle,
-				nzttPersona *persona,
-				nzttces signature_state,
-				size_t input_length,
-				ub1 * input,
-				nzttBufferBlock *signature _*/);
-
-sword OCISecuritySignDetExpansion(/*_ OCISecurity *osshandle,
-				    OCIError    *error_handle,
-				    nzttPersona *persona,
-				    size_t       input_length,
-				    size_t *required_buffer_length _*/);
-
-sword OCISecurityVerifyDetached(/*_ OCISecurity *osshandle,
-				  OCIError *error_handle,
-				  nzttPersona *persona,
-				  nzttces signature_state,
-				  size_t data_length,
-				  ub1 *data,
-				  size_t siglen,
-				  ub1 *signature,
-				  boolean *verified,
-				  boolean *validated,
-				  nzttIdentity **signing_party_identity _*/);
-
-sword OCISecurity_PKEncrypt(/*_ OCISecurity *osshandle,
-			      OCIError *error_handle,
-			      nzttPersona *persona,
-			      size_t number_of_recipients,
-			      nzttIdentity *recipient_list,
-			      nzttces encryption_state,
-			      size_t input_length,
-			      ub1 *input,
-			      nzttBufferBlock *encrypted_data _*/);
-
-sword OCISecurityPKEncryptExpansion(/*_ OCISecurity *osshandle,
-				      OCIError *error_handle,
-				      nzttPersona *persona,
-				      size_t number_recipients,
-				      size_t input_length,
-				      size_t *buffer_length_required _*/);
-
-sword OCISecurityPKDecrypt(/*_ OCISecurity *osshandle,
-			     OCIError *error_handle,
-			     nzttPersona *persona,
-			     nzttces encryption_state,
-			     size_t input_length,
-			     ub1 *input,
-			     nzttBufferBlock *encrypted_data _*/);
-
-sword OCISecurityEncrypt(/*_ OCISecurity *osshandle,
-			   OCIError *error_handle,
-			   nzttPersona *persona,
-			   nzttces encryption_state,
-			   size_t input_length,
-			   ub1 *input,
-			   nzttBufferBlock *encrypted_data _*/);
-
-sword OCISecurityEncryptExpansion(/*_ OCISecurity *osshandle,
-				    OCIError *error_handle,
-				    nzttPersona *persona,
-				    size_t input_length,
-				    size_t *encrypted_data_length _*/);
-
-sword OCISecurityDecrypt(/*_ OCISecurity *osshandle,
-			   OCIError *error_handle,
-			   nzttPersona *persona,
-			   nzttces decryption_state,
-			   size_t input_length,
-			   ub1 *input,
-			   nzttBufferBlock *decrypted_data _*/);
-
-sword OCISecurityEnvelope(/*_ OCISecurity *osshandle,
-			    OCIError *error_handle,
-			    nzttPersona *persona,
-			    size_t number_of_recipients,
-			    nzttIdentity *identity,
-			    nzttces encryption_state,
-			    size_t input_length,
-			    ub1 *input,
-			    nzttBufferBlock *enveloped_data _*/);
-
-sword OCISecurityDeEnvelope(/*_ OCISecurity *osshandle,
-                                OCIError *error_handle,
-                                nzttPersona *persona,
-                                nzttces decryption_state,
-                                size_t input_length,
-                                ub1 *input,
-                                nzttBufferBlock *output_message,
-                                boolean *verified,
-                                boolean *validated,
-                                nzttIdentity **sender_identity _*/);
-
-sword OCISecurityKeyedHash(/*_ OCISecurity *osshandle,
-			     OCIError *error_handle,
-			     nzttPersona *persona,
-			     nzttces hash_state,
-			     size_t input_length,
-			     ub1 *input,
-			     nzttBufferBlock *keyed_hash _*/);
-
-sword OCISecurityKeyedHashExpansion(/*_ OCISecurity *osshandle,
-				      OCIError *error_handle,
-				      nzttPersona *persona,
-				      size_t input_length,
-				      size_t *required_buffer_length _*/);
-
-sword OCISecurityHash(/*_ OCISecurity *osshandle,
-			OCIError *error_handle,
-			nzttPersona *persona,
-			nzttces hash_state,
-			size_t input,
-			ub1 *input_length,
-			nzttBufferBlock *hash _*/);
-
-sword OCISecurityHashExpansion(/*_ OCISecurity *osshandle,
-				 OCIError *error_handle,
-				 nzttPersona *persona,
-				 size_t input_length,
-				 size_t *required_buffer_length _*/);
-
-sword OCISecuritySeedRandom(/*_ OCISecurity *osshandle,
-			      OCIError *error_handle,
-			      nzttPersona *persona,
-			      size_t seed_length,
-			      ub1 *seed _*/);
-
-sword OCISecurityRandomBytes(/*_ OCISecurity *osshandle,
-			       OCIError *error_handle,
-			       nzttPersona *persona,
-			       size_t number_of_bytes_desired,
-			       nzttBufferBlock *random_bytes _*/);
-
-sword OCISecurityRandomNumber(/*_ OCISecurity *osshandle,
-				OCIError *error_handle,
-				nzttPersona *persona,
-				uword *random_number_ptr _*/);
-
-sword OCISecurityInitBlock(/*_ OCISecurity *osshandle,
-			     OCIError *error_handle,
-			     nzttBufferBlock *buffer_block _*/);
-
-sword OCISecurityReuseBlock(/*_ OCISecurity *osshandle,
-			      OCIError *error_handle,
-			      nzttBufferBlock *buffer_block _*/);
-
-sword OCISecurityPurgeBlock(/*_ OCISecurity *osshandle,
-			      OCIError *error_handle,
-			      nzttBufferBlock *buffer_block _*/);
-
-sword OCISecuritySetBlock(/*_ OCISecurity *osshandle,
-			    OCIError *error_handle,
-			    uword flags_to_set,
-			    size_t buffer_length,
-			    size_t used_buffer_length,
-			    ub1 *buffer,
-			    nzttBufferBlock *buffer_block _*/);
-
-sword OCISecurityGetIdentity(/*_ OCISecurity  *osshandle,
-			       OCIError       *error_handle,
-			       size_t          namelen,
-			       OraText           *distinguished_name,
-			       nzttIdentity  **identity _*/);
-
-sword OCIAQEnq(/*_ OCISvcCtx *svchp, OCIError *errhp, OraText *queue_name,
-                     OCIAQEnqOptions *enqopt, OCIAQMsgProperties *msgprop, 
-                     OCIType *payload_tdo,dvoid **payload, dvoid **payload_ind,
-		     OCIRaw **msgid, ub4 flags _*/);
-
-sword OCIAQDeq(/*_ OCISvcCtx *svchp, OCIError *errhp, OraText *queue_name,
-		     OCIAQDeqOptions *deqopt, OCIAQMsgProperties *msgprop, 
-                     OCIType *payload_tdo,dvoid **payload, dvoid **payload_ind,
-		     OCIRaw **msgid, ub4 flags _*/);
-
-sword OCIAQListen(/*_ OCISvcCtx *svchp, OCIError *errhp, 
-		      OCIAQAgent **agent_list, ub4 num_agents,
-		      sb4 wait, OCIAQAgent **agent,
-		      ub4 flags _*/);
-
-sword OCIExtractInit(/*_ dvoid *hndl, OCIError *err _*/);
-
-sword OCIExtractTerm(/*_ dvoid *hndl, OCIError *err _*/);
-
-sword OCIExtractReset(/*_ dvoid *hndl, OCIError *err _*/);
-
-sword OCIExtractSetNumKeys(/*_ dvoid *hndl, OCIError *err, uword numkeys _*/);
-
-sword OCIExtractSetKey(/*_ dvoid *hndl, OCIError *err, CONST OraText *name, 
-                           ub1 type, ub4 flag, CONST dvoid *defval, 
-                           CONST sb4 *intrange, 
-                           CONST OraText *CONST *strlist _*/);
-
-sword OCIExtractFromFile(/*_ dvoid *hndl, OCIError *err, ub4 flag, 
-                             OraText *filename _*/);
-
-sword OCIExtractFromStr(/*_ dvoid *hndl, OCIError *err, ub4 flag, 
-                               OraText *input _*/);
-
-sword OCIExtractToInt(/*_ dvoid *hndl, OCIError *err, OraText *keyname, 
-                          uword valno, sb4 *retval _*/);
-
-sword OCIExtractToBool(/*_ dvoid *hndl, OCIError *err, OraText *keyname, 
-                           uword valno, ub1 *retval _*/);
-
-sword OCIExtractToStr(/*_ dvoid *hndl, OCIError *err, OraText *keyname, 
-                          uword valno, OraText *retval, uword buflen _*/);
-
-sword OCIExtractToOCINum(/*_ dvoid *hndl, OCIError *err, OraText *keyname, 
-                             uword valno, OCINumber *retval _*/);
-
-sword OCIExtractToList(/*_ dvoid *hndl, OCIError *err, uword *numkeys _*/);
-
-sword OCIExtractFromList(/*_ dvoid *hndl, OCIError *err, uword index, 
-                             OraText **name, ub1 *type, uword *numvals, 
-                             dvoid ***values _*/);
-
-/* Memory Related Service Interfaces */
-
-sword OCIMemoryAlloc(/*_ dvoid *hdl, OCIError *err, dvoid **mem,
-		OCIDuration dur, ub4 size, ub4 flags _*/);
- 
-sword OCIMemoryResize(/*_ dvoid *hdl, OCIError *err, dvoid **mem,
-                        ub4 newsize, ub4 flags _*/);
-
-sword OCIMemoryFree(/*_ dvoid *hdl, OCIError *err, dvoid *mem _*/);
-
-sword OCIContextSetValue(/*_ dvoid *hdl, OCIError *err, OCIDuration duration,
-                        ub1 *key, ub1 keylen, dvoid *ctx_value _*/);
- 
-sword OCIContextGetValue(/*_ dvoid *hdl, OCIError *err, ub1 *key,
-                        ub1 keylen, dvoid **ctx_value _*/);
- 
-sword OCIContextClearValue(/*_ dvoid *hdl, OCIError *err, ub1 *key, 
-                        ub1 keylen _*/);
- 
-sword OCIContextGenerateKey(/*_ dvoid *hdl, OCIError *err, ub4 *key _*/);
-
-sword OCIMemorySetCurrentIDs(/*_ dvoid *hdl, OCIError *err, 
-        ub4 curr_session_id, ub4 curr_trans_id, ub4 curr_stmt_id _*/);
- 
-sword OCIPicklerTdsCtxInit(/*_ OCIEnv *env, OCIError *err, 
-			OCIPicklerTdsCtx **tdsc _*/);
- 
-sword OCIPicklerTdsCtxFree(/*_ OCIEnv *env, OCIError *err, 
-			OCIPicklerTdsCtx *tdsc _*/);
- 
-sword OCIPicklerTdsInit(/*_ OCIEnv *env, OCIError *err, OCIPicklerTdsCtx *tdsc,
-			OCIPicklerTds **tdsh _*/);
- 
-sword OCIPicklerTdsFree(/*_ OCIEnv *env, OCIError *err, 
-			OCIPicklerTds *tdsh _*/);
- 
-sword OCIPicklerTdsCreateElementNumber(/*_ OCIEnv *env, OCIError *err,
-                                           OCIPicklerTds *tdsh, ub1 prec,
-                                           sb1 scale, 
-                                           OCIPicklerTdsElement *elt _*/);
- 
-sword OCIPicklerTdsCreateElementChar(/*_ OCIEnv *env, OCIError *err,
-                                         OCIPicklerTds *tdsh, ub2 len, 
-                                         OCIPicklerTdsElement *elt _*/);
- 
-sword OCIPicklerTdsCreateElementVarchar(/*_ OCIEnv *env, OCIError *err,
-                                            OCIPicklerTds *tdsh, ub2 len, 
-                                            OCIPicklerTdsElement *elt _*/);
-
-sword OCIPicklerTdsCreateElementRaw(/*_ OCIEnv *env, OCIError *err,
-                                        OCIPicklerTds *tdsh, ub2 len, 
-                                        OCIPicklerTdsElement *elt _*/);
- 
-sword OCIPicklerTdsCreateElement(/*_ OCIEnv *env, OCIError *err,
-                                OCIPicklerTds *tdsh, OCITypeCode dty, 
-				OCIPicklerTdsElement *elt _*/);
- 
-sword OCIPicklerTdsAddAttr(/*_ OCIEnv *env, OCIError *err,
-                               OCIPicklerTds *tdsh, 
-                               OCIPicklerTdsElement elt _*/);
- 
-sword OCIPicklerTdsGenerate(/*_ OCIEnv *env, OCIError *err,
-                                OCIPicklerTds *tdsh _*/);
- 
-sword OCIPicklerTdsGetAttr(/*_ OCIEnv *env, OCIError *err,
-                                CONST OCIPicklerTds *tdsh, ub1  attrno,
-                                OCITypeCode *typ, ub2  *len _*/);
- 
-sword OCIPicklerFdoInit(/*_ OCIEnv *env, OCIError *err,
-                                OCIPicklerFdo **fdoh _*/);
- 
-sword OCIPicklerFdoFree(/*_ OCIEnv *env, OCIError *err,
-                                OCIPicklerFdo *fdoh _*/);
- 
-sword OCIPicklerImageInit(/*_ OCIEnv *env, OCIError *err,
-                              OCIPicklerFdo *fdoh, OCIPicklerTds *tdsh,
-                              OCIPicklerImage **imgh _*/);
- 
-sword OCIPicklerImageFree(/*_ OCIEnv *env, OCIError *err,
-                                OCIPicklerImage *imgh _*/);
- 
-sword OCIPicklerImageAddScalar(/*_ OCIEnv *env, OCIError *err,
-                                   OCIPicklerImage *imgh, dvoid *scalar, 
-                                   ub4 len _*/);
- 
-sword OCIPicklerImageAddNullScalar(/*_ OCIEnv *env, OCIError *err,
-                                OCIPicklerImage *imgh _*/);
- 
-sword OCIPicklerImageGenerate(/*_ OCIEnv *env, OCIError *err,
-                                OCIPicklerImage *imgh _*/);
- 
-sword OCIPicklerImageGetScalarSize(/*_ OCIEnv *env, OCIError *err,
-                                OCIPicklerImage *imgh, 
-				ub4  attrno, ub4  *size _*/);
- 
-sword OCIPicklerImageGetScalar(/*_ OCIEnv *env, OCIError *err,
-                                OCIPicklerImage *imgh, ub4  attrno, 
-				dvoid *buf, ub4  *len, OCIInd *ind _*/);
-
-sword OCIPicklerImageCollBegin(/*_ OCIEnv *env, OCIError *err,
-                OCIPicklerImage *imgh, CONST OCIPicklerTds *colltdsh _*/);
- 
-sword OCIPicklerImageCollAddScalar(/*_  OCIEnv *env, OCIError *err,
-                OCIPicklerImage *imgh, dvoid *scalar,
-                ub4 buflen, OCIInd ind _*/);
- 
-sword OCIPicklerImageCollEnd(/*_ OCIEnv *env, OCIError *err,
-                OCIPicklerImage *imgh _*/);
- 
-/* should take svcctx for locator stuff */
-sword OCIPicklerImageCollBeginScan(/*_ OCIEnv *env, OCIError *err,
-                OCIPicklerImage *imgh, CONST OCIPicklerTds *coll_tdsh,
-                ub4 attrnum, ub4 startidx, OCIInd *ind _*/);
- 
-sword OCIPicklerImageCollGetScalarSize(/*_ OCIEnv *env, OCIError *err,
-                CONST OCIPicklerTds *coll_tdsh, ub4 *size _*/);
- 
-sword OCIPicklerImageCollGetScalar(/*_ OCIEnv *env, OCIError *err,
-                                       OCIPicklerImage *imgh, dvoid *buf,
-                                       ub4 *buflen, OCIInd *ind _*/);
-
-sword OCIAnyDataGetType(/*_ OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-        OCITypeCode *tc, OCIType **type _*/);
-
-sword OCIAnyDataIsNull(/*_ OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-        boolean *isnull _*/);
-
-sword OCIAnyDataConvert(/*_ OCISvcCtx *svchp, OCIError *errhp, OCITypeCode tc,
-        OCIType *type, OCIDuration dur, dvoid *ind, dvoid *data_val,
-        ub4 len, OCIAnyData **sdata _*/);
-
-sword OCIAnyDataBeginCreate(/*_ OCISvcCtx *svchp, OCIError *errhp, OCITypeCode tc,
-        OCIType *type, OCIDuration dur, OCIAnyData **sdata _*/);
-
-sword OCIAnyDataDestroy(/*_ OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata _*/);
-
-sword OCIAnyDataAttrSet(/*_ OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-        OCITypeCode tc, OCIType *type, dvoid *ind, dvoid *attr_val,
-        ub4 length, boolean is_any _*/);
-
-sword OCIAnyDataCollAddElem(/*_ OCISvcCtx *svchp, OCIError *errhp,
-        OCIAnyData *sdata, OCITypeCode tc, OCIType *type, dvoid *ind,
-        dvoid *attr_val, ub4 length, boolean is_any, boolean last_elem _*/);
-
-sword OCIAnyDataEndCreate(/*_ OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata _*/);
-
-sword OCIAnyDataAccess(/*_ OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-        OCITypeCode tc, OCIType *type, dvoid *ind, dvoid **attr_val,
-        ub4 *length _*/);
-
-sword OCIAnyDataGetCurrAttrNum(/*_ OCISvcCtx *svchp, OCIError *errhp, 
-		OCIAnyData *sdata, ub4 *attrnum _*/);
-
-sword OCIAnyDataAttrGet(/*_ OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-  OCITypeCode tc, OCIType *type, dvoid *ind, dvoid **attr_val,
-        ub4 *length, boolean is_any _*/);
-
-sword OCIAnyDataCollGetElem(/*_ OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-  OCITypeCode tc, OCIType *type, dvoid *ind, dvoid **celem_val,
-        ub4 *length, boolean is_any _*/);
-
-sword OCIFormatInit(/*_ dvoid *hndl, OCIError *err _*/);
-
-sword OCIFormatString(/*_ dvoid *hndl, OCIError *err, OraText *buffer,
-                          sbig_ora bufferLength, sbig_ora *returnLength,
-                          CONST OraText *formatString, ... _*/);
-
-sword OCIFormatTerm(/*_ dvoid *hndl, OCIError *err _*/);
-
-sword OCIFormatTUb1(/*_ void _*/);
-sword OCIFormatTUb2(/*_ void _*/);
-sword OCIFormatTUb4(/*_ void _*/);
-sword OCIFormatTUword(/*_ void _*/);
-sword OCIFormatTUbig_ora(/*_ void _*/);
-sword OCIFormatTSb1(/*_ void _*/);
-sword OCIFormatTSb2(/*_ void _*/);
-sword OCIFormatTSb4(/*_ void _*/);
-sword OCIFormatTSword(/*_ void _*/);
-sword OCIFormatTSbig_ora(/*_ void _*/);
-sword OCIFormatTEb1(/*_ void _*/);
-sword OCIFormatTEb2(/*_ void _*/);
-sword OCIFormatTEb4(/*_ void _*/);
-sword OCIFormatTEword(/*_ void _*/);
-sword OCIFormatTChar(/*_ void _*/);
-sword OCIFormatTText(/*_ void _*/);
-sword OCIFormatTDouble(/*_ void _*/);
-sword OCIFormatTDvoid(/*_ void _*/);
-sword OCIFormatTEnd(/*_ void _*/);
-
-sword OCIFileClose (/*_ dvoid  *hndl, OCIError *err, OCIFileObject *filep _*/);
-
-
-sword OCIFileExists (/*_ dvoid  *hndl, OCIError *err, OraText *filename,
-                     OraText *path, ub1 *flag _*/ );
-
-sword OCIFileFlush(/*_ dvoid *hndl, OCIError *err, OCIFileObject *filep _*/ );
-
-sword OCIFileGetLength(/*_ dvoid *hndl, OCIError *err, OraText *filename,
-                        OraText *path, ubig_ora *lenp _*/ );
-
-sword OCIFileInit (/*_ dvoid *hndl, OCIError *err _*/);
-
-sword OCIFileOpen (/*_ dvoid *hndl, OCIError *err, OCIFileObject **filep,
-                    OraText *filename, OraText *path, ub4 mode, ub4 create, 
-                    ub4 type _*/);
-
-sword OCIFileRead (/*_ dvoid *hndl, OCIError *err, OCIFileObject *filep,
-                    dvoid *bufp, ub4 bufl, ub4 *bytesread _*/);
-
-sword OCIFileSeek (/*_ dvoid *hndl, OCIError *err, OCIFileObject *filep,
-                     uword origin, ubig_ora offset, sb1 dir _*/);
-
-sword OCIFileTerm (/*_ dvoid *hndl, OCIError *err _*/);
-
-sword OCIFileWrite (/*_ dvoid *hndl, OCIError *err, OCIFileObject   *filep,
-                     dvoid *bufp, ub4 buflen, ub4 *byteswritten _*/);
-
-
-/*-------------------------- Extensions to XA interface ---------------------*/
-/* ------------------------- xaosvch ----------------------------------------*/
-/*
-   NAME
-     xaosvch  -  XA Oracle get SerViCe Handle
-   DESCRIPTION
-     Given a database name return the service handle that is used by the
-     XA library
-   NOTE
-     This macro has been provided for backward compatibilty with 8.0.2
-*/
-OCISvcCtx *xaosvch(/*_ OraText *dbname _*/);
-
-/* ------------------------- xaoSvcCtx --------------------------------------*/
-/*
-   NAME
-     xaoSvcCtx  -  XA Oracle get SerViCe ConTeXt
-   DESCRIPTION
-     Given a database name return the service handle that is used by the
-     XA library
-   NOTE
-     This routine has been provided for APs to get access to the service
-     handle that XA library uses. Without this routine APs must use SQLLIB
-     routine sqlld2 to get access to the Logon data area registered by the
-     XA library
-*/
-OCISvcCtx *xaoSvcCtx(/*_ OraText *dbname _*/);
-
-/* ------------------------- xaoEnv -----------------------------------------*/
-/*
-   NAME
-     xaoEnv  -  XA Oracle get ENvironment Handle
-   DESCRIPTION
-     Given a database name return the environment handle that is used by the
-     XA library
-   NOTE
-     This routine has been provided for APs to get access to the environment
-     handle that XA library uses. Without this routine APs must use SQLLIB
-     routine sqlld2 to get access to the Logon data area registered by the
-     XA library
-*/
-OCIEnv *xaoEnv(/*_ OraText *dbname _*/);
-
-/* ------------------------- xaosterr ---------------------------------------*/
-/*
-   NAME
-     xaosterr  -  XA Oracle get xa STart ERRor code
-   DESCRIPTION
-     Given an oracle error code return the XA error code
- */
-int xaosterr(/*_ OCISvcCtx *svch, sb4 error _*/);
-/*-------------------------- End Extensions ---------------------------------*/
-
-/*---------------------- Extensions to NLS cartridge service ----------------*/
-/* ----------------------- OCINlsGetInfo ------------------------------------*/
-/*
-   NAME
-     OCINlsGetInfo - Get NLS info from OCI environment handle
-   REMARKS
-     This function generates language information specified by item from OCI 
-     environment handle envhp into an array pointed to by buf within size 
-     limitation as buflen.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR on wrong item.
-   envhp(IN/OUT)
-     OCI environment handle.
-   errhp(IN/OUT)
-     The OCI error handle. If there is an error, it is record in errhp and 
-     this function returns a NULL pointer. Diagnostic information can be 
-     obtained by calling OCIErrorGet().
-   buf(OUT)
-     Pointer to the destination buffer.
-   buflen(IN)
-     The size of destination buffer. The maximum length for each information
-     is 32 bytes.
-   item(IN)
-     It specifies to get which item in OCI environment handle and can be one
-     of following values:
-       OCI_NLS_DAYNAME1 : Native name for Monday.
-       OCI_NLS_DAYNAME2 : Native name for Tuesday.
-       OCI_NLS_DAYNAME3 : Native name for Wednesday.
-       OCI_NLS_DAYNAME4 : Native name for Thursday.
-       OCI_NLS_DAYNAME5 : Native name for Friday.
-       OCI_NLS_DAYNAME6 : Native name for for Saturday.
-       OCI_NLS_DAYNAME7 : Native name for for Sunday.
-       OCI_NLS_ABDAYNAME1 : Native abbreviated name for Monday.
-       OCI_NLS_ABDAYNAME2 : Native abbreviated name for Tuesday.
-       OCI_NLS_ABDAYNAME3 : Native abbreviated name for Wednesday.
-       OCI_NLS_ABDAYNAME4 : Native abbreviated name for Thursday.
-       OCI_NLS_ABDAYNAME5 : Native abbreviated name for Friday.
-       OCI_NLS_ABDAYNAME6 : Native abbreviated name for for Saturday.
-       OCI_NLS_ABDAYNAME7 : Native abbreviated name for for Sunday.
-       OCI_NLS_MONTHNAME1 : Native name for January.
-       OCI_NLS_MONTHNAME2 : Native name for February.
-       OCI_NLS_MONTHNAME3 : Native name for March.
-       OCI_NLS_MONTHNAME4 : Native name for April.
-       OCI_NLS_MONTHNAME5 : Native name for May.
-       OCI_NLS_MONTHNAME6 : Native name for June.
-       OCI_NLS_MONTHNAME7 : Native name for July.
-       OCI_NLS_MONTHNAME8 : Native name for August.
-       OCI_NLS_MONTHNAME9 : Native name for September.
-       OCI_NLS_MONTHNAME10 : Native name for October.
-       OCI_NLS_MONTHNAME11 : Native name for November.
-       OCI_NLS_MONTHNAME12 : Native name for December.
-       OCI_NLS_ABMONTHNAME1 : Native abbreviated name for January.
-       OCI_NLS_ABMONTHNAME2 : Native abbreviated name for February.
-       OCI_NLS_ABMONTHNAME3 : Native abbreviated name for March.
-       OCI_NLS_ABMONTHNAME4 : Native abbreviated name for April.
-       OCI_NLS_ABMONTHNAME5 : Native abbreviated name for May.
-       OCI_NLS_ABMONTHNAME6 : Native abbreviated name for June.
-       OCI_NLS_ABMONTHNAME7 : Native abbreviated name for July.
-       OCI_NLS_ABMONTHNAME8 : Native abbreviated name for August.
-       OCI_NLS_ABMONTHNAME9 : Native abbreviated name for September.
-       OCI_NLS_ABMONTHNAME10 : Native abbreviated name for October.
-       OCI_NLS_ABMONTHNAME11 : Native abbreviated name for November.
-       OCI_NLS_ABMONTHNAME12 : Native abbreviated name for December.
-       OCI_NLS_YES : Native string for affirmative response.
-       OCI_NLS_NO : Native negative response. 
-       OCI_NLS_AM : Native equivalent string of AM.
-       OCI_NLS_PM : Native equivalent string of PM.
-       OCI_NLS_AD : Native equivalent string of AD.
-       OCI_NLS_BC : Native equivalent string of BC.
-       OCI_NLS_DECIMAL : decimal character.
-       OCI_NLS_GROUP : group separator.
-       OCI_NLS_DEBIT : Native symbol of debit.
-       OCI_NLS_CREDIT : Native sumbol of credit.
-       OCI_NLS_DATEFORMAT : Oracle date format.
-       OCI_NLS_INT_CURRENCY: International currency symbol.
-       OCI_NLS_LOC_CURRENCY : Locale currency symbol.
-       OCI_NLS_LANGUAGE : Language name.
-       OCI_NLS_ABLANGUAGE : Abbreviation for language name.
-       OCI_NLS_TERRITORY : Territory name.
-       OCI_NLS_CHARACTER_SET : Character set name.
-       OCI_NLS_LINGUISTIC : Linguistic name.
-       OCI_NLS_CALENDAR : Calendar name.
-       OCI_NLS_DUAL_CURRENCY : Dual currency symbol.
-*/
-sword OCINlsGetInfo(/*_ dvoid *envhp, OCIError *errhp, OraText *buf,
-                    size_t buflen, ub2 item _*/);
-
-/* ----------------------- OCINlsNumericInfoGet ----------------------------*/
-/*
-   NAME
-     OCINlsNumericInfoGet - Get NLS numeric info from OCI environment handle
-   REMARKS
-     This function generates numeric language information specified by item 
-     from OCI environment handle envhp into an output number variable.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR on wrong item.
-   envhp(IN/OUT)
-     OCI environment handle. If handle invalid, returns OCI_INVALID_HANDLE.
-   errhp(IN/OUT)
-     The OCI error handle. If there is an error, it is record in errhp and 
-     this function returns a NULL pointer. Diagnostic information can be 
-     obtained by calling OCIErrorGet().
-   val(OUT)
-     Pointer to the output number variable. On OCI_SUCCESS return, it will
-     contain the requested NLS numeric info.
-   item(IN)
-     It specifies to get which item in OCI environment handle and can be one
-     of following values:
-       OCI_NLS_CHARSET_MAXBYTESZ : Maximum character byte size for OCI
-                                   environment or session handle charset
-       OCI_NLS_CHARSET_FIXEDWIDTH: Character byte size for fixed-width charset;
-                                   0 for variable-width charset
-*/
-sword OCINlsNumericInfoGet(/*_ dvoid *envhp, OCIError *errhp, sb4 *val, 
-                           ub2 item _*/);
-
-/* ----------------------- OCINlsCharSetNameToId -----------------------------*/
-/*
-   NAME
-     OCINlsCharSetNameToId - Get Oracle charset id given Oracle charset name
-   REMARKS
-     This function will get the Oracle character set id corresponding to
-     the given Oracle character set name.
-   RETURNS
-     Oracle character set id for the given Oracle character set name if
-     character set name and OCI handle are valid; otherwise returns 0.
-   envhp(IN/OUT)
-     OCI environment handle.
-   name(IN)
-     Pointer to a null-terminated Oracle character set name whose id 
-     will be returned.
-*/
-ub2 OCINlsCharSetNameToId(/*_ dvoid *envhp, const oratext *name _*/);
-
-/* ----------------------- OCINlsCharSetIdToName -----------------------------*/
-/*
-   NAME
-     OCINlsCharSetIdToName - Get Oracle charset name given Oracle charset id
-   REMARKS
-     This function will get the Oracle character set name corresponding to
-     the given Oracle character set id.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle. If handle invalid, returns OCI_INVALID_HANDLE.
-   buf(OUT)
-     Pointer to the destination buffer. On OCI_SUCCESS return, it will contain
-     the null-terminated string for character set name.
-   buflen(IN)
-     Size of destination buffer. Recommended size is OCI_NLS_MAXBUFSZ for
-     guarantee to store an Oracle character set name. If it's smaller than
-     the length of the character set name, the function will return OCI_ERROR.
-   id(IN)
-     Oracle character set id.
-*/
-sword OCINlsCharSetIdToName(/*_ dvoid *envhp, oratext *buf, size_t buflen, 
-                            ub2 id _*/);
-
-/* ----------------------- OCINlsNameMap ------------------------------------*/
-/*
-   NAME
-     OCINlsNameMap - Map NLS naming from Oracle to other standards and vice 
-                     versa
-   REMARKS
-     This function will map NLS naming from Oracle to other standards (such
-     as ISO, IANA) and vice versa.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle. If handle invalid, returns OCI_INVALID_HANDLE.
-   buf(OUT)
-     Pointer to the destination buffer. On OCI_SUCCESS return, it will 
-     contain null-terminated string for requested mapped name.
-   buflen(IN)
-     The size of destination buffer. Recommended size is OCI_NLS_MAXBUFSZ
-     for guarantee to store an NLS name. If it is smaller than the length
-     of the name, the function will return OCI_ERROR.
-   srcbuf(IN)
-     Pointer to null-terminated NLS name. If it is not a valid name in its
-     define scope, the function will return OCI_ERROR.
-   flag(IN)
-     It specifies name mapping direction and can take the following values:
-       OCI_NLS_CS_IANA_TO_ORA : Map character set name from IANA to Oracle
-       OCI_NLS_CS_ORA_TO_IANA : Map character set name from Oracle to IANA
-       OCI_NLS_LANG_ISO_TO_ORA : Map language name from ISO to Oracle
-       OCI_NLS_LANG_ORA_TO_ISO : Map language name from Oracle to ISO
-       OCI_NLS_TERR_ISO_TO_ORA : Map territory name from ISO to Oracle
-       OCI_NLS_TERR_ORA_TO_ISO : Map territory name from Oracle to ISO
-       OCI_NLS_TERR_ISO3_TO_ORA : Map territory name from 3-letter ISO
-                                  abbreviation to Oracle
-       OCI_NLS_TERR_ORA_TO_ISO3 : Map territory name from Oracle to 3-letter
-                                  ISO abbreviation
-*/
-sword OCINlsNameMap(/*_ dvoid *envhp, oratext *buf, size_t buflen,
-                    const oratext *srcbuf, ub4 flag _*/);
-
-/* -------------------- OCIMultiByteToWideChar ------------------------------*/
-/*
-   NAME
-     OCIMultiByteToWideChar - Convert a null terminated multibyte string into 
-                              wchar
-   REMARKS
-     This routine converts an entire null-terminated string into the wchar 
-     format. The wchar output buffer will be null-terminated.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set of string.
-   dst (OUT)
-     Destination buffer for wchar.
-   src (IN)
-     Source string to be converted.
-   rsize (OUT)
-     Number of characters converted including null-terminator.
-     If it is a NULL pointer, no number return
-*/
-sword OCIMultiByteToWideChar(/*_ dvoid *envhp, OCIWchar *dst, 
-                            CONST OraText *src, size_t *rsize _*/);
-
-
-/* --------------------- OCIMultiByteInSizeToWideChar -----------------------*/
-/*
-   NAME
-     OCIMultiByteInSizeToWideChar - Convert a mulitbyte string in length into
-                                    wchar
-   REMARKS
-     This routine converts part of string into the wchar format. It will
-     convert as many complete characters as it can until it reaches output
-     buffer size or input buffer size or it reaches a null-terminator in
-     source string. The output buffer will be null-terminated if space permits.
-     If dstsz is zero, this function will only return number of characters not
-     including ending null terminator for converted string.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set of string.
-   dst (OUT)
-     Pointer to a destination buffer for wchar. It can be NULL pointer when
-     dstsz is zero.
-   dstsz(IN)
-     Destination buffer size in character. If it is zero, this function just
-     returns number of characters will be need for the conversion.
-   src (IN)
-     Source string to be converted.
-   srcsz(IN)
-     Length of source string in byte.
-   rsize(OUT)
-     Number of characters written into destination buffer, or number of
-     characters for converted string is dstsz is zero.
-     If it is NULL pointer, nothing to return.
-*/
-sword OCIMultiByteInSizeToWideChar(/*_ dvoid *envhp, OCIWchar *dst,
-                                  size_t dstsz, CONST OraText *src, 
-                                  size_t srcsz, size_t *rsize _*/);
-
-
-/* ---------------------- OCIWideCharToMultiByte ----------------------------*/
-/*
-   NAME
-     OCIWideCharToMultiByte - Convert a null terminated wchar string into
-                              multibyte
-   REMARKS
-     This routine converts an entire null-terminated wide character string into
-     multi-byte string. The output buffer will be null-terminated.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set of string.
-   dst (OUT)
-     Destination buffer for multi-byte string.
-   src (IN)
-     Source wchar string to be converted.
-   rsize (OUT)
-     Number of bytes written into the destination buffer.
-     If it is NULL pointer, nothing to return.
-*/
-sword OCIWideCharToMultiByte(/*_ dvoid *envhp, OraText *dst, 
-                            CONST OCIWchar *src, size_t *rsize _*/);
-
-
-/* ---------------------- OCIWideCharInSizeToMultiByte ----------------------*/
-/*
-   NAME
-     OCIWideCharInSizeToMultiByte - Convert a wchar string in length into 
-                                    mulitbyte
-   REMARKS
-     This routine converts part of wchar string into the multi-byte format.
-     It will convert as many complete characters as it can until it reaches
-     output buffer size or input buffer size or it reaches a null-terminator
-     in source string. The output buffer will be null-terminated if space
-     permits. If dstsz is zero, the function just returns the size of byte not 
-     including ending null-terminator need to store the converted string.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set of string.
-   dst (OUT)
-     Destination buffer for multi-byte. It can be NULL pointer if dstsz is zero.
-   dstsz(IN)
-     Destination buffer size in byte. If it is zero, it just returns the size
-     of bytes need for converted string.
-   src (IN)
-     Source wchar string to be converted.
-   srcsz(IN)
-     Length of source string in character.
-   rsize(OUT)
-     Number of bytes written into destination buffer, or number of bytes need
-     to store the converted string if dstsz is zero.
-     If it is NULL pointer, nothing to return.
-*/
-sword OCIWideCharInSizeToMultiByte(/*_ dvoid *envhp, OraText *dst,
-                                    size_t dstsz, CONST OCIWchar *src,
-                                    size_t srcsz, size_t *rsize _*/);
-
-
-
-/* ----------------------- OCIWideCharIsAlnum -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsAlnum - test whether wc is a letter or decimal digit
-   REMARKS
-     It tests whether wc is a letter or decimal digit.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsAlnum(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/* ----------------------- OCIWideCharIsAlpha -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsAlpha - test whether wc is an alphabetic letter
-   REMARKS
-     It tests whether wc is an alphabetic letter
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsAlpha(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/* --------------------- OCIWideCharIsCntrl ---------------------------------*/
-/*
-   NAME
-     OCIWideCharIsCntrl - test whether wc is a control character
-   REMARKS
-     It tests whether wc is a control character.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsCntrl(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/* ----------------------- OCIWideCharIsDigit -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsDigit - test whether wc is a decimal digit character
-   REMARKS
-     It tests whether wc is a decimal digit character.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsDigit(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/* ----------------------- OCIWideCharIsGraph -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsGraph - test whether wc is a graph character
-   REMARKS
-     It tests whether wc is a graph character. A graph character is character
-     with a visible representation and normally includes alphabetic letter,
-     decimal digit, and punctuation.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsGraph(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/* ----------------------- OCIWideCharIsLower -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsLower - test whether wc is a lowercase letter
-   REMARKS
-     It tests whether wc is a lowercase letter.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsLower(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/* ----------------------- OCIWideCharIsPrint -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsPrint - test whether wc is a printable character
-   REMARKS
-     It tests whether wc is a printable character.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsPrint(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/* ----------------------- OCIWideCharIsPunct -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsPunct - test whether wc is a punctuation character
-   REMARKS
-     It tests whether wc is a punctuation character.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsPunct(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/* ----------------------- OCIWideCharIsSpace -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsSpace - test whether wc is a space character
-   REMARKS
-     It tests whether wc is a space character. A space character only causes
-     white space in displayed text(for example, space, tab, carriage return,
-     newline, vertical tab or form feed).
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsSpace(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/* ----------------------- OCIWideCharIsUpper -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsUpper - test whether wc is a uppercase letter
-   REMARKS
-     It tests whether wc is a uppercase letter.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsUpper(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/*----------------------- OCIWideCharIsXdigit -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsXdigit - test whether wc is a hexadecimal digit
-   REMARKS
-     It tests whether wc is a hexadecimal digit ( 0-9, A-F, a-f ).
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsXdigit(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/* --------------------- OCIWideCharIsSingleByte ----------------------------*/
-/*
-   NAME
-     OCIWideCharIsSingleByte - test whether wc is a single-byte character
-   REMARKS
-     It tests whether wc is a single-byte character when converted into
-     multi-byte.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsSingleByte(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/* ----------------------- OCIWideCharToLower -------------------------------*/
-/*
-   NAME
-     OCIWideCharToLower - Convert a wchar into the lowercase
-   REMARKS
-     If there is a lower-case character mapping for wc in the specified locale,
-     it will return the lower-case in wchar, else return wc itself.
-   RETURNS
-     A wchar
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for lowercase mapping.
-*/
-OCIWchar OCIWideCharToLower(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/* ----------------------- OCIWideCharToUpper -------------------------------*/
-/*
-   NAME
-     OCIWideCharToUpper - Convert a wchar into the uppercase
-   REMARKS
-     If there is a upper-case character mapping for wc in the specified locale,
-     it will return the upper-case in wchar, else return wc itself.
-   RETURNS
-     A wchar
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for uppercase mapping.
-*/
-OCIWchar OCIWideCharToUpper(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/* ----------------------- OCIWideCharStrcmp --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrcmp - compare two null terminated wchar string
-   REMARKS
-     It compares two wchar string in binary ( based on wchar encoding value ),
-     linguistic, or case-insensitive.
-   RETURNS
-     0, if wstr1 == wstr2.
-     Positive, if wstr1 > wstr2.
-     Negative, if wstr1 < wstr2.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set.
-   wstr1(IN)
-     Pointer to a null-terminated wchar string.
-   wstr2(IN)
-     Pointer to a null-terminated wchar string.
-   flag(IN)
-     It is used to decide the comparison method. It can be taken one of the
-     following values:
-       OCI_NLS_BINARY : for the binary comparison, this is default value.
-       OCI_NLS_LINGUISTIC : for linguistic comparison specified in the locale.
-     This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive
-     comparison.
-*/
-int OCIWideCharStrcmp(/*_ dvoid *envhp, CONST OCIWchar *wstr1, 
-                CONST OCIWchar *wstr2, int flag _*/);
-
-
-/* ----------------------- OCIWideCharStrncmp -------------------------------*/
-/*
-   NAME
-     OCIWideCharStrncmp - compare twe wchar string in length
-   REMARKS
-     This function is similar to OCIWideCharStrcmp(), except that at most len1
-     characters from wstr1 and len2 characters from wstr1 are compared. The
-     null-terminator will be taken into the comparison.
-   RETURNS
-     0, if wstr1 = wstr2
-     Positive, if wstr1 > wstr2
-     Negative, if wstr1 < wstr2
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wstr1(IN)
-     Pointer to the first wchar string
-   len1(IN)
-     The length for the first string for comparison
-   wstr2(IN)
-     Pointer to the second wchar string
-   len2(IN)
-     The length for the second string for comparison.
-   flag(IN)
-     It is used to decide the comparison method. It can be taken one of the
-     following values:
-       OCI_NLS_BINARY : for the binary comparison, this is default value.
-       OCI_NLS_LINGUISTIC : for linguistic comparison specified in the locale.
-     This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive 
-     comparison.
-*/
-int OCIWideCharStrncmp(/*_ dvoid *envhp, CONST OCIWchar *wstr1, size_t len1,
-                 CONST OCIWchar *wstr2, size_t len2, int flag _*/);
-
-
-/* ----------------------- OCIWideCharStrcat --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrcat - concatenate two wchar strings
-   REMARKS
-     This function appends a copy of the wchar string pointed to by wsrcstr,
-     including the null-terminator to the end of wchar string pointed to by
-     wdststr. It returns the number of character in the result string not
-     including the ending null-terminator.
-   RETURNS
-     number of characters in the result string not including the ending
-     null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wdststr(IN/OUT)
-     Pointer to the destination wchar string for appending.
-   wsrcstr(IN)
-     Pointer to the source wchar string to append.
-*/
-size_t OCIWideCharStrcat(/*_ dvoid *envhp, OCIWchar *wdststr,
-                         CONST OCIWchar *wsrcstr _*/);
-
-
-/* ----------------------- OCIWideCharStrchr --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrchr - Search the first occurrence of wchar in a wchar string
-   REMARKS
-     This function searchs for the first occurrence of wc in the wchar string
-     pointed to by wstr. It returns a pointer to the whcar if successful, or
-     a null pointer.
-   RETURNS
-     wchar pointer if successful, otherwise a null pointer.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wstr(IN)
-     Pointer to the wchar string to search
-   wc(IN)
-     Wchar to search for.
-*/
-OCIWchar *OCIWideCharStrchr(/*_ dvoid *envhp, CONST OCIWchar *wstr,
-                            OCIWchar wc _*/);
-
-
-/* ----------------------- OCIWideCharStrcpy --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrcpy - copy a wchar string
-   REMARKS
-     This function copies the wchar string pointed to by wsrcstr, including the 
-     null-terminator, into the array pointed to by wdststr. It returns the
-     number of character copied not including the ending null-terminator.
-   RETURNS
-     number of characters copied not including the ending null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wdststr(OUT)
-     Pointer to the destination wchar buffer.
-   wsrcstr(IN)
-     Pointer to the source wchar string.
-*/
-size_t OCIWideCharStrcpy(/*_ dvoid *envhp, OCIWchar *wdststr,
-                         CONST OCIWchar *wsrcstr _*/);
-
-
-/* ----------------------- OCIWideCharStrlen --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrlen - Return number of character in a wchar string
-   REMARKS
-     This function computes the number of characters in the wchar string
-     pointed to by wstr, not including the null-terminator, and returns
-    this number. 
-   RETURNS
-     number of characters not including ending null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wstr(IN)
-     Pointer to the source wchar string.
-*/
-size_t OCIWideCharStrlen(/*_ dvoid *envhp, CONST OCIWchar *wstr _*/);
-
-
-/* ----------------------- OCIWideCharStrncat -------------------------------*/
-/*
-   NAME
-     OCIWideCharStrncat - Concatenate wchar string in length
-   REMARKS
-     This function is similar to OCIWideCharStrcat(), except that at most n
-     characters from wsrcstr are appended to wdststr. Note that the
-     null-terminator in wsrcstr will stop appending. wdststr will be
-     null-terminated.. 
-   RETURNS
-     Number of characters in the result string not including the ending
-     null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wdststr(IN/OUT)
-     Pointer to the destination wchar string for appending.
-   wsrcstr(IN)
-     Pointer to the source wchar string to append.
-   n(IN)
-     Number of characters from wsrcstr to append.
-*/
-size_t OCIWideCharStrncat(/*_ dvoid *envhp, OCIWchar *wdststr,
-                          CONST OCIWchar *wsrcstr, size_t n _*/);
-
-
-/* ----------------------- OCIWideCharStrncpy -------------------------------*/
-/*
-   NAME
-     OCIWideCharStrncpy - Copy wchar string in length
-   REMARKS
-     This function is similar to OCIWideCharStrcpy(), except that at most n
-     characters are copied from the array pointed to by wsrcstr to the array
-     pointed to by wdststr. Note that the null-terminator in wdststr will
-     stop coping and result string will be null-terminated.
-   RETURNS
-     number of characters copied not including the ending null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wdststr(OUT)
-     Pointer to the destination wchar buffer.
-   wsrcstr(IN)
-     Pointer to the source wchar string.
-   n(IN)
-     Number of characters from wsrcstr to copy.
-*/
-size_t OCIWideCharStrncpy(/*_ dvoid *envhp, OCIWchar *wdststr,
-                          CONST OCIWchar *wsrcstr, size_t n _*/);
-
-
-/* ----------------------- OCIWideCharStrrchr -------------------------------*/
-/*
-   NAME
-     OCIWideCharStrrchr - search the last occurrence of a wchar in wchar string
-   REMARKS
-     This function searchs for the last occurrence of wc in the wchar string
-     pointed to by wstr. It returns a pointer to the whcar if successful, or
-     a null pointer.
-   RETURNS
-     wchar pointer if successful, otherwise a null pointer.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wstr(IN)
-     Pointer to the wchar string to search
-   wc(IN)
-     Wchar to search for.
-*/
-OCIWchar *OCIWideCharStrrchr(/*_ dvoid *envhp, CONST OCIWchar *wstr,
-                             OCIWchar wc _*/);
-
-
-/* --------------------- OCIWideCharStrCaseConversion -----------------------*/
-/*
-   NAME
-     OCIWideCharStrCaseConversion - convert a wchar string into lowercase or
-                                    uppercase
-   REMARKS
-     This function convert the wide char string pointed to by wsrcstr into the
-     uppercase or lowercase specified by flag and copies the result into the
-     array pointed to by wdststr. The result string will be null-terminated.
-   RETURNS
-     number of characters for result string not including null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle.
-   wdststr(OUT)
-     Pointer to destination array.
-   wsrcstr(IN)
-     Pointer to source string.
-   flag(IN)
-     Specify the case to convert:
-       OCI_NLS_UPPERCASE : convert to uppercase.
-       OCI_NLS_LOWERCASE: convert to lowercase.
-     This flag can be ORed with OCI_NLS_LINGUISTIC to specify that the
-     linguistic setting in the locale will be used for case conversion.
-*/
-size_t OCIWideCharStrCaseConversion(/*_ dvoid *envhp, OCIWchar *wdststr,
-                                    CONST OCIWchar *wsrcstr, ub4 flag _*/);
-
-
-/*---------------------- OCIWideCharDisplayLength ---------------------------*/
-/*
-   NAME
-     OCIWideCharDisplayLength - Calculate the display length for a wchar
-   REMARKS
-     This function determines the number of column positions required for wc
-     in display. It returns number of column positions, or 0 if wc is 
-     null-terminator.
-   RETURNS
-     Number of display positions.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar character.
-*/
-size_t OCIWideCharDisplayLength(/*_ dvoid *envhp, OCIWchar wc  _*/);
-
-
-/*---------------------- OCIWideCharMultiByteLength -------------------------*/
-/*
-   NAME
-     OCIWideCharMultiByteLength - Determine byte size in multi-byte encoding
-   REMARKS
-     This function determines the number of byte required for wc in multi-byte
-     encoding. It returns number of bytes in multi-byte for wc.
-   RETURNS
-     Number of bytes.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar character.
-*/
-size_t OCIWideCharMultiByteLength(/*_ dvoid *envhp, OCIWchar wc _*/);
-
-
-/* ----------------------- OCIMultiByteStrcmp -------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrcmp - Compare two multi-byte strings
-   REMARKS
-     It compares two multi-byte strings in binary ( based on encoding value ),
-     linguistic, or case-insensitive.
-   RETURNS
-     0, if str1 == str2.
-     Positive, if str1 > str2.
-     Negative, if str1 < str2.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set.
-   str1(IN)
-     Pointer to a null-terminated string.
-   str2(IN)
-     Pointer to a null-terminated string.
-   flag(IN)
-     It is used to decide the comparison method. It can be taken one of the
-     following values:
-       OCI_NLS_BINARY: for the binary comparison, this is default value.
-       OCI_NLS_LINGUISTIC: for linguistic comparison specified in the locale.
-     This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive 
-     comparison.
-*/
-int OCIMultiByteStrcmp(/*_ dvoid *envhp, CONST OraText *str1,
-                       CONST OraText *str2, int flag _*/);
-
-
-/*----------------------- OCIMultiByteStrncmp -------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrncmp - compare two strings in length
-   REMARKS
-     This function is similar to OCIMultiBytestrcmp(), except that at most len1 bytes
-     from str1 and len2 bytes from str2 are compared. The null-terminator will
-     be taken into the comparison.
-   RETURNS
-     0, if str1 = str2
-     Positive, if str1 > str2
-     Negative, if str1 < str2
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set.
-   str1(IN)
-     Pointer to the first string
-   len1(IN)
-     The length for the first string for comparison
-   str2(IN)
-     Pointer to the second string
-   len2(IN)
-     The length for the second string for comparison.
-   flag(IN)
-     It is used to decide the comparison method. It can be taken one of the
-     following values:
-       OCI_NLS_BINARY: for the binary comparison, this is default value.
-       OCI_NLS_LINGUISTIC: for linguistic comparison specified in the locale.
-     This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive 
-     comparison.
-*/
-int OCIMultiByteStrncmp(/*_ dvoid *envhp, CONST OraText *str1, size_t len1,
-                        OraText *str2, size_t len2, int flag _*/);
-
-
-/*----------------------- OCIMultiByteStrcat --------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrcat - concatenate multibyte strings
-   REMARKS
-     This function appends a copy of the multi-byte string pointed to by
-     srcstr, including the null-terminator to the end of string pointed to by
-     dststr. It returns the number of bytes in the result string not including
-     the ending null-terminator.
-   RETURNS
-     number of bytes in the result string not including the ending
-     null-terminator.
-   envhp(IN/OUT)
-     Pointer to OCI environment handle
-   dststr(IN/OUT)
-     Pointer to the destination multi-byte string for appending.
-   srcstr(IN)
-     Pointer to the source string to append.
-*/
-size_t OCIMultiByteStrcat(/*_ dvoid *envhp, OraText *dststr,
-                          CONST OraText *srcstr _*/);
-
-
-/*------------------------- OCIMultiByteStrcpy ------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrcpy - copy multibyte string
-   REMARKS
-     This function copies the multi-byte string pointed to by srcstr,
-     including the null-terminator, into the array pointed to by dststr. It
-     returns the number of bytes copied not including the ending 
-     null-terminator.
-   RETURNS
-     number of bytes copied not including the ending null-terminator.
-   envhp(IN/OUT)
-     Pointer to the OCI environment handle.
-   srcstr(OUT)
-     Pointer to the destination buffer.
-   dststr(IN)
-     Pointer to the source multi-byte string.
-*/
-size_t OCIMultiByteStrcpy(/*_ dvoid *envhp, OraText *dststr,
-                          CONST OraText *srcstr _*/);
-
-
-/*----------------------- OCIMultiByteStrlen --------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrlen - Calculate multibyte string length
-   REMARKS
-     This function computes the number of bytes in the multi-byte string
-     pointed to by str, not including the null-terminator, and returns this
-     number. 
-   RETURNS
-     number of bytes not including ending null-terminator.
-   str(IN)
-     Pointer to the source multi-byte string.
-*/
-size_t OCIMultiByteStrlen(/*_ dvoid *envhp, CONST OraText *str _*/);
-
-
-/*----------------------- OCIMultiByteStrncat -------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrncat - concatenate string in length
-   REMARKS
-     This function is similar to OCIMultiBytestrcat(), except that at most n
-     bytes from srcstr are appended to dststr. Note that the null-terminator in
-     srcstr will stop appending and the function will append as many character
-     as possible within n bytes. dststr will be null-terminated. 
-   RETURNS
-     Number of bytes in the result string not including the ending
-     null-terminator.
-   envhp(IN/OUT)
-     Pointer to OCI environment handle.
-   srcstr(IN/OUT)
-     Pointer to the destination multi-byte string for appending.
-   dststr(IN)
-     Pointer to the source multi-byte string to append.
-   n(IN)
-     Number of bytes from srcstr to append.
-*/
-size_t OCIMultiByteStrncat(/*_ dvoid *envhp, OraText *dststr,
-                           CONST OraText *srcstr, size_t n _*/);
-
-
-/*----------------------- OCIMultiByteStrncpy -------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrncpy - copy multibyte string in length
-   REMARKS
-     This function is similar to OCIMultiBytestrcpy(), except that at most n
-     bytes are copied from the array pointed to by srcstr to the array pointed
-     to by dststr. Note that the null-terminator in srcstr will stop coping and
-     the function will copy as many character as possible within n bytes. The 
-     result string will be null-terminated.
-   RETURNS
-     number of bytes copied not including the ending null-terminator.
-   envhp(IN/OUT)
-     Pointer to a OCI environment handle.
-   dststr(IN)
-     Pointer to the source multi-byte string.
-   srcstr(OUT)
-     Pointer to the destination buffer.
-   n(IN)
-     Number of bytes from srcstr to copy.
-*/
-size_t OCIMultiByteStrncpy(/*_ dvoid *envhp, OraText *dststr,
-                           CONST OraText *srcstr, size_t n _*/);
-
-
-/*----------------------- OCIMultiByteStrnDisplayLength ---------------------*/
-/*
-   NAME
-     OCIMultiByteStrnDisplayLength - calculate the display length for a
-                                     multibyt string
-   REMARKS
-     This function returns the number of display positions occupied by the 
-     complete characters within the range of n bytes.
-   RETURNS
-     number of display positions.
-   envhp(IN/OUT)
-     OCI environment handle.
-   str(IN)
-     Pointer to a multi-byte string.
-   n(IN)
-     Number of bytes to examine.
-*/
-size_t OCIMultiByteStrnDisplayLength(/*_ dvoid *envhp, CONST OraText *str1,
-                                     size_t n _*/);
-
-
-/*---------------------- OCIMultiByteStrCaseConversion  ---------------------*/
-/*
-   NAME
-     OCIMultiByteStrCaseConversion
-   REMARKS
-     This function convert the multi-byte string pointed to by srcstr into the
-     uppercase or lowercase specified by flag and copies the result into the
-     array pointed to by dststr. The result string will be null-terminated.
-   RETURNS
-     number of bytes for result string not including null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle.
-   dststr(OUT)
-     Pointer to destination array.
-   srcstr(IN)
-     Pointer to source string.
-   flag(IN)
-     Specify the case to convert:
-       OCI_NLS_UPPERCASE: convert to uppercase.
-       OCI_NLS_LOWERCASE: convert to lowercase.
-     This flag can be ORed with OCI_NLS_LINGUISTIC to specify that the 
-     linguistic setting in the locale will be used for case conversion.
-*/
-size_t OCIMultiByteStrCaseConversion(/*_ dvoid *envhp, OraText *dststr,
-                                     CONST OraText *srcstr, ub4 flag _*/);
-
-
-/*------------------------- OCICharSetToUnicode -----------------------------*/
-/*
-   NAME
-     OCICharSetToUnicode - convert multibyte string into Unicode as UCS2
-   REMARKS
-     This function converts a multi-byte string pointed to by src to Unicode 
-     into the array pointed to by dst. The conversion will stop when it reach
-     to the source limitation or destination limitation. 
-     The function will return number of characters converted into Unicode.
-     If dstlen is zero, it will just return the number of characters for the
-     result without real conversion.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     Pointer to an OCI environment handle
-   dst(OUT)
-     Pointer to a destination buffer
-   dstlen(IN)
-     Size of destination buffer in character
-   src(IN)
-     Pointer to multi-byte source string.
-   srclen(IN)
-     Size of source string in bytes.
-   rsize(OUT)
-     Number of characters converted.
-     If it is a NULL pointer, nothing to return.
-*/
-sword OCICharSetToUnicode(/*_ dvoid *envhp, ub2 *dst, size_t dstlen,
-                        CONST OraText *src, size_t  srclen, size_t *rsize _*/);
-
-
-/*------------------------- OCIUnicodeToCharSet -----------------------------*/
-/*
-   NAME
-     OCIUnicodeToCharSet - convert Unicode into multibyte
-   REMARKS
-     This function converts a Unicode string pointed to by src to multi-byte
-     into the array pointed to by dst. The conversion will stop when it reach
-     to the source limitation or destination limitation. The function will
-     return number of bytes converted into multi-byte. If dstlen is zero, it
-     will just return the number of bytes for the result without real 
-     conversion. If a Unicode character is not convertible for the character
-     set specified in OCI environment handle, a replacement character will be
-     used for it. In this case, OCICharSetConversionIsReplacementUsed() will
-     return ture.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     Pointer to an OCI environment handle.
-   dst(OUT)
-     Pointer to a destination buffer.
-   dstlen(IN)
-     Size of destination buffer in byte.
-   src(IN)
-     Pointer to a Unicode string.
-   srclen(IN)
-     Size of source string in characters.
-   rsize(OUT)
-     Number of bytes converted.
-     If it is a NULL pointer, nothing to return.
-*/
-sword OCIUnicodeToCharSet(/*_ dvoid *envhp, OraText *dst, size_t dstlen, 
-                           CONST ub2 *src, size_t srclen, size_t *rsize _*/);
-
-
-/*----------------------- OCINlsCharSetConvert ------------------------------*/
-/*
-   NAME
-     OCINlsCharSetConvert - convert between any two character set.
-   REMARKS
-     This function converts a string pointed to by src in the character set
-     specified with srcid to the array pointed to by dst in the character set
-     specified with dstid. The conversion will stop when it reaches the source
-     limitation or destination limitation. The function will return the number
-     of bytes converted into the destination buffer. Even though either source
-     or destination character set id is OCI_UTF16ID, given and return data
-     length will be represented with the byte length as this function is
-     intended for generic purpose. Note the conversion will not stop at null
-     data.
-     To get character set id from name, OCINlsCharSetNameToId can be used.
-     To check if derived data in the destination buffer contains any
-     replacement character resulting from conversion failure,
-     OCICharSetConversionIsReplacementUsed can be used to get the status.
-     Data alignment should be guaranteed by a caller. For example, UTF-16 data
-     should be aligned to ub2 type.
-
-   RETURNS
-     OCI_SUCCESS or OCI_ERROR.
-   errhp(IN/OUT)
-     OCI error handle. If there is an error, it is recorded in errhp and this
-     function returns a NULL pointer. Diagnostic information can be obtained
-     by calling OCIErrorGet().
-   dstid(IN)
-     Character set id for the destination buffer.
-   dstp(OUT)
-     Pointer to the destination buffer.
-   dstlen(IN)
-     The maximum byte size of destination buffer.
-   srcid(IN)
-     Character set id for the source buffer.
-   srcp(IN)
-     Pointer to the source buffer.
-   srclen(IN)
-     The length byte size of source buffer.
-   rsize(OUT)
-     The number of characters converted. If it is a NULL pointer, nothing to
-     return.
-*/
-sword OCINlsCharSetConvert(/*_ dvoid *envhp, OCIError *errhp, 
-                        ub2 dstid, dvoid *dstp, size_t dstlen,
-                        ub2 srcid, CONST dvoid *srcp, size_t srclen,
-                        size_t *rsize _*/);
-
-/* ------------------- OCICharsetConversionIsReplacementUsed ----------------*/
-/*
-   NAME
-     OCICharsetConversionIsReplacementUsed - chech if replacement is used in 
-                                             conversion
-   REMARKS
-     This function indicates whether or not the replacement character was used
-     for nonconvertible characters in character set conversion in last invoke
-     of OCICharsetUcs2ToMb().
-   RETURNS
-     TRUE is the replacement character was used in last OCICharsetUcs2ToMb()
-     invoking, else FALSE.
-   envhp(IN/OUT)
-     OCI environment handle. This should be the first handle passed to 
-     OCICharsetUcs2ToMb().
-*/
-boolean OCICharSetConversionIsReplacementUsed(/*_ dvoid *envhp _*/);
-
-/*------------------- OCINlsEnvironmentVariableGet -----------------*/
-/*
-   NAME
-     OCINlsEnvironmentVariableGet - get a value of NLS environment variable.
-
-   DESCRIPTION
-     This function retrieves a value of NLS environment variable to the buffer
-     pointed to by val. Data type is determined by the parameter specified by
-     item. Either numeric data or string data can be retrieved.
-
-   RETURNS
-     OCI_SUCCESS or OCI_ERROR.
-
-   PARAMETERS
-   valp(OUT) -
-     Pointer to the buffer.
-   size(IN) -
-     Size of the buffer. This argument is only applicable to string data type,
-     but not to numerical data, in such case, it is ignored.
-   item(IN) -
-     NLS item value, which can be one of following values:
-       OCI_NLS_CHARSET_ID  - NLS_LANG character set id in ub2 data type.
-       OCI_NLS_NCHARSET_ID - NLS_NCHAR character set id in ub2 data type.
-   charset(IN) -
-     Character set id for retrieved string data. If it is 0, NLS_LANG will be
-     used. OCI_UTF16ID is a valid id. In case of numeric data, this argument
-     is ignored.
-   rsize(OUT) -
-     Size of return value.
-
-   NOTE
-     This functions is mainly used for retrieving character set id from either
-     NLS_LANG or NLS_NCHAR environment variables. If NLS_LANG is not set,
-     the default character set id is returned.
-     For future extension, the buffer is capable for storing other data types.
-*/
-sword OCINlsEnvironmentVariableGet(/*_ dvoid  *valp, size_t size, ub2 item,
-                                   ub2 charset, size_t *rsize _*/);
-
-
-/*------------------------- OCIMessageOpen ----------------------------------*/
-/*
-   NAME
-     OCIMessageOpen - open a locale message file
-   REMARKS
-     This function opens a message handle for facility of product in a language
-     pointed to by envhp. It first try to open the message file corresponding
-     to envhp for the facility. If it successes, it will use that file to
-     initialize a message handle, else it will use the default message file
-     which is for American language for the facility. The function return a
-     pointer pointed to a message handle into msghp parameter.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     A pointer to OCI environment handle for message language.
-   errhp(IN/OUT)
-     The OCI error handle. If there is an error, it is record in errhp and this
-     function returns a NULL pointer. Diagnostic information can be obtained by
-     calling OCIErrorGet().
-   msghp(OUT)
-     a message handle for return
-   product(IN)
-     A pointer to a product name. Product name is used to locate the directory
-     for message in a system dependent way. For example, in Solaris, the
-     directory of message files for the product `rdbms' is
-     `${ORACLE_HOME}/rdbms'.
-   facility(IN)
-     A pointer to a facility name in the product. It is used to construct a
-     message file name. A message file name follows the conversion with 
-     facility as prefix. For example, the message file name for facility
-     `img' in American language will be `imgus.msb' where `us' is the 
-     abbreviation of American language and `msb' as message binary file 
-     extension.
-   dur(IN)
-     Duration for memory allocation for the return message handle. It can be
-     the following values:
-        OCI_DURATION_CALL
-        OCI_DURATION_STATEMENT
-        OCI_DURATION_SESSION
-        OCI_DURATION_TRANSACTION
-     For the detail description, please refer to Memory Related Service
-     Interfaces section.
-*/
-sword OCIMessageOpen(/*_ dvoid *envhp, OCIError *errhp, OCIMsg **msghp,
-                      CONST OraText *product, CONST OraText *facility, 
-                      OCIDuration dur _*/);
- 
-
-/*------------------------- OCIMessageGet -----------------------------------*/
-/*
-   NAME
-     OCIMessageGet - get a locale message from a message handle
-   REMARKS
-     This function will get message with message number identified by msgno and
-     if buflen is not zero, the function will copy the message into the buffer
-     pointed to by msgbuf. If buflen is zero, the message will be copied into
-     a message buffer inside the message handle pointed to by msgh. For both
-     cases. it will return the pointer to the null-terminated message string.
-     If it cannot get the message required, it will return a NULL pointer.
-   RETURNS
-     A pointer to a null-terminated message string on success, otherwise a NULL
-     pointer.
-   msgh(IN/OUT)
-     Pointer to a message handle which was previously opened by OCIMessageOpen().
-   msgno(IN)
-     The message number for getting message.
-   msgbuf(OUT)
-     Pointer to a destination buffer to the message retrieved. If buflen is
-     zero, it can be NULL pointer.
-   buflen(IN)
-     The size of the above destination buffer.
-*/
-OraText *OCIMessageGet(/*_ OCIMsg *msgh, ub4 msgno, OraText *msgbuf,
-                        size_t buflen _*/);
-
-
-/*------------------------- OCIMessageClose ---------------------------------*/
-/*
-   NAME
-     OCIMessageClose - close a message handle
-   REMARKS
-     This function closes a message handle pointed to by msgh and frees any
-     memory associated with this handle.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     A pointer to OCI environment handle for message language.
-   errhp(IN/OUT)
-     The OCI error handle. If there is an error, it is record in errhp and this
-     function returns a NULL pointer. Diagnostic information can be obtained by
-     calling OCIErrorGet().
-   msghp(IN/OUT)
-     A pointer to a message handle which was previously opened by
-     OCIMessageOpen().
-*/
-sword OCIMessageClose(/*_ dvoid *envhp, OCIError *errhp, OCIMsg *msghp _*/);
-
-/*--------------- End of Extensions to NLS cartridge service ----------------*/
-
-/*----------------- Extensions to OCI Thread interface ---------------------*/
-/*****************************************************************************
-                              DESCRIPTION
-******************************************************************************
-1 Threads Interface
-
-The OCIThread package provides a number of commonly used threading
-primitives for use by Oracle customers.  It offers a portable interface to
-threading capabilities native to various platforms.  It does not implement
-threading on platforms which do not have native threading capability.
-
-OCIThread does not provide a portable implementation of multithreaded 
-facilities.  It only serves as a set of portable covers for native 
-multithreaded facilities.  Therefore, platforms that do not have native 
-support for multi-threading will only be able to support a limited 
-implementation of OCIThread.  As a result, products that rely on all of 
-OCIThread's functionality will not port to all platforms.  Products that must 
-port to all platforms must use only a subset of OCIThread's functionality.  
-This issue is discussed further in later sections of this document.
-
-The OCIThread API is split into four main parts.  Each part is described
-briefly here.  The following subsections describe each in greater detail.
-
- 1. Initialization and Termination Calls
-
-     These calls deal with the initialization and termination of OCIThread.
-     Initialization of OCIThread initializes the OCIThread context which is
-     a member of the OCI environment or session handle.  This context is 
-     required for other OCIThread calls.
-
- 2. Passive Threading Primitives
-
-     The passive threading primitives include primitives to manipulate mutual
-     exclusion (mutex) locks, thread ID's, and thread-specific data keys.
-
-     The reason that these primitives are described as 'passive' is that while
-     their specifications allow for the existence of multiple threads, they do
-     not require it.  This means that it is possible for these primitives to
-     be implemented according to specification in both single-threaded and
-     multi-threaded environments.
-
-     As a result, OCIThread clients that use only these primitives will not
-     require the existence of multiple threads in order to work correctly,
-     i.e., they will be able to work in single-threaded environments without 
-     branching code.
-
- 3. Active Threading Primitives
-
-     Active threading primitives include primitives dealing with the creation,
-     termination, and other manipulation of threads.
-
-     The reason that these primitives are described as 'active' is that they
-     can only be used in true multi-threaded environments.  Their
-     specifications explicitly require that it be possible to have multiple
-     threads.  If you need to determine at runtime whether or not you are in a
-     multi-threaded environment, call OCIThreadIsMulti() before calling an
-     OCIThread active primitive.
-
-
-1.1 Initialization & Termination
-==================================
-
-The types and functions described in this section are associated with the
-initialization and termination of the OCIThread package.  OCIThread must
-be properly initialized before any of its functionality can be used.
-OCIThread's process initialization function, 'OCIThreadProcessInit()',
-must be called with care; see below.
-
-The observed behavior of the initialization and termination functions is the
-same regardless of whether OCIThread is in single-threaded or multi-threaded
-environment.  It is OK to call the initialization functions from both generic
-and operating system specific (OSD) code.
-
-1.1.1 Types
-
-  OCIThreadContext - OCIThread Context
-  -------------------------------------
-
-    Most calls to OCIThread functions take the OCI environment or session 
-    handle as a parameter.  The OCIThread context is part of the OCI 
-    environment or session handle and it must be initialized by calling 
-    'OCIThreadInit()'.  Termination of the OCIThread context occurs by calling
-    'OCIThreadTerm()'.
-
-    The OCIThread context is a private data structure.  Clients must NEVER
-    attempt to examine the contents of the context.
-
-1.1.2  OCIThreadProcessInit
-
-  OCIThreadProcessInit - OCIThread Process INITialization
-  --------------------------------------------------------
-
-    Description
-
-      This function should be called to perform OCIThread process
-      initialization.
-
-    Prototype
-
-      void OCIThreadProcessInit();
-
-    Returns
-
-      Nothing.
-
-    Notes
-
-      Whether or not this function needs to be called depends on how OCI
-      Thread is going to be used.
-
-        * In a single-threaded application, calling this function is optional.
-          If it is called at all, the first call to it must occur before calls
-          to any other OCIThread functions.  Subsequent calls can be made
-          without restriction; they will not have any effect.
-
-        * In a multi-threaded application, this function MUST be called.  The
-          first call to it MUST occur 'strictly before' any other OCIThread
-          calls; i.e., no other calls to OCIThread functions (including other
-          calls to this one) can be concurrent with the first call.
-          Subsequent calls to this function can be made without restriction;
-          they will not have any effect.
-
-
-1.1.3 OCIThreadInit
-
-  OCIThreadInit - OCIThread INITialize
-  -------------------------------------
-
-    Description
-
-      This initializes OCIThread context.
-
-    Prototype
-
-      sword OCIThreadInit(dvoid *hndl, OCIError *err);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal for OCIThread clients to try an examine the memory
-      pointed to by the returned pointer.
-
-      It is safe to make concurrent calls to 'OCIThreadInit()'.  Unlike
-      'OCIThreadProcessInit()',  there is no need to have a first call
-      that occurs before all the others.
-
-      The first time 'OCIThreadInit()' is called, it initilaizes the OCI
-      Thread context.  It also saves a pointer to the context in some system
-      dependent manner.  Subsequent calls to 'OCIThreadInit()' will return
-      the same context.
-
-      Each call to 'OCIThreadInit()' must eventually be matched by a call to
-      'OCIThreadTerm()'.
-
-  OCIThreadTerm - OCIThread TERMinate
-  ------------------------------------
-
-    Description
-
-      This should be called to release the OCIThread context.  It should be
-      called exactly once for each call made to 'OCIThreadInit()'.
-
-    Prototype
-
-      sword OCIThreadTerm(dvoid *hndl, OCIError *err);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is safe to make concurrent calls to 'OCIThreadTerm()'.
-
-      'OCIThreadTerm()' will not do anything until it has been called as
-      many times as 'OCIThreadInit()' has been called.  When that happens,
-      it terminates the OCIThread layer and frees the memory allocated for
-      the context.  Once this happens, the context should not be re-used.
-      It will be necessary to obtain a new one by calling 'OCIThreadInit()'.
-
-
-  OCIThreadIsMulti - OCIThread Is Multi-Threaded?
-  ------------------------------------------------
-
-    Description
-
-      This tells the caller whether the application is running in a
-      multi-threaded environment or a single-threaded environment.
-
-    Prototype
-      boolean OCIThreadIsMulti(void);
-
-    Returns
-
-      TRUE if the environment is multi-threaded;
-      FALSE if the environment is single-threaded.
-
-
-1.2 Passive Threading Primitives
-==================================
-
-1.2.1 Types
-
-The passive threading primitives deal with the manipulation of mutex, 
-thread ID's, and thread-specific data.  Since the specifications of these 
-primitives do not require the existence of multiple threads, they can be 
-used both on multithreaded and single-threaded platforms.
-
-1.2.1.1  OCIThreadMutex - OCIThread Mutual Exclusion Lock
------------------------------------------------------------
-
-  The type 'OCIThreadMutex' is used to represent a mutual exclusion lock
-  (mutex).  A mutex is typically used for one of two purposes: (i) to
-  ensure that only one thread accesses a given set of data at a time, or
-  (ii) to ensure that only one thread executes a given critical section of
-  code at a time.
-
-  Mutexes pointer can be declared as parts of client structures or as 
-  stand-alone variables.  Before they can be used, they must be initialized 
-  using 'OCIThreadMutexInit()'.  Once they are no longer needed, they must be
-  destroyed using 'OCIThreadMutexDestroy()'.  A mutex pointer must NOT be 
-  used after it is destroyed.
-
-  A thread can acquire a mutex by using either 'OCIThreadMutexAcquire()' or
-  'OCIThreadMutexTry()'.  They both ensure that only one thread at a time is
-  allowed to hold a given mutex.  A thread that holds a mutex can release it
-  by calling 'OCIThreadMutexRelease()'.
-
-
-1.2.1.2  OCIThreadKey - OCIThread Key for Thread-Specific Data
-----------------------------------------------------------------
-
-  A key can be thought of as a process-wide variable that has a
-  thread-specific value.  What this means is that all the threads in a
-  process can use any given key.  However, each thread can examine or modify
-  that key independently of the other threads.  The value that a thread sees
-  when it examines the key will always be the same as the value that it last
-  set for the key.  It will not see any values set for the key by the other
-  threads.
-
-  The type of the value held by a key is a 'dvoid *' generic pointer.
-
-  Keys can be created using 'OCIThreadKeyInit()'.  When a key is created, its
-  value is initialized to 'NULL' for all threads.
-
-  A thread can set a key's value using 'OCIThreadKeySet()'.  A thread can
-  get a key's value using 'OCIThreadKeyGet()'.
-
-  The OCIThread key functions will save and retrieve data SPECIFIC TO THE
-  THREAD.  When clients maintain a pool of threads and assign the threads to
-  different tasks, it *may not* be appropriate for a task to use OCIThread
-  key functions to save data associated with it.  Here is a scenario of how
-  things can fail: A thread is assigned to execute the initialization of a
-  task.  During the initialization, the task stored some data related to it
-  in the thread using OCIThread key functions.  After the initialization,
-  the thread is returned back to the threads pool.  Later, the threads pool
-  manager assigned another thread to perform some operations on the task,
-  and the task needs to retrieve those data it stored earlier in
-  initialization.  Since the task is running in another thread, it will not
-  be able to retrieve the same data back!  Applications that use thread
-  pools should be aware of this and be cautious when using OCIThread key
-  functions.
-
-
-1.2.1.3  OCIThreadKeyDestFunc - OCIThread Key Destructor Function Type
-------------------------------------------------------------------------
-
-  This is the type of a pointer to a key's destructor routine.  Keys can be
-  associated with a destructor routine when they are created (see
-  'OCIThreadKeyInit()').
-
-  A key's destructor routine will be called whenever a thread that has a
-  non-NULL value for the key terminates.
-
-  The destructor routine returns nothing and takes one parameter.  The
-  parameter will be the value that was set for key when the thread
-  terminated.
-
-  The destructor routine is guaranteed to be called on a thread's value
-  in the key after the termination of the thread and before process
-  termination.  No more precise guarantee can be made about the timing
-  of the destructor routine call; thus no code in the process may assume
-  any post-condition of the destructor routine.  In particular, the
-  destructor is not guaranteed to execute before a join call on the
-  terminated thread returns.
-
-
-1.2.1.4  OCIThreadId - OCIThread Thread ID
---------------------------------------------
-
-  Type 'OCIThreadId' is the type that will be used to identify a thread.
-  At any given time, no two threads will ever have the same 'OCIThreadId'.
-  However, 'OCIThreadId' values can be recycled; i.e., once a thread dies,
-  a new thread may be created that has the same 'OCIThreadId' as the one
-  that died.  In particular, the thread ID must uniquely identify a thread
-  T within a process, and it must be consistent and valid in all threads U
-  of the process for which it can be guaranteed that T is running
-  concurrently with U.  The thread ID for a thread T must be retrievable
-  within thread T.  This will be done via OCIThreadIdGet().
-
-  The 'OCIThreadId' type supports the concept of a NULL thread ID: the NULL
-  thread ID will never be the same as the ID of an actual thread.
-
-
-
-1.2.2 Function prototypes for passive primitives
---------------------------------------------------
-
-1.2.2.1 Mutex functions
--------------------------
-
-  OCIThreadMutexInit - OCIThread MuteX Initialize
-  -----------------------------------------------
-
-    Description
-
-      This allocate and initializes a mutex.  All mutexes must be 
-      initialized prior to use.
-
-    Prototype
-
-      sword OCIThreadMutexInit(dvoid *hndl, OCIError *err, 
-                               OCIThreadMutex **mutex);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        mutex(OUT):  The mutex to initialize.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      Multiple threads must not initialize the same mutex simultaneously.
-      Also, a mutex must not be reinitialized until it has been destroyed (see
-      'OCIThreadMutexDestroy()').
-
-  OCIThreadMutexDestroy - OCIThread MuteX Destroy
-  -----------------------------------------------
-
-    Description
-
-      This destroys and deallocate a mutex.  Each mutex must be destroyed 
-      once it is no longer needed.
-
-    Prototype
-
-      sword OCIThreadMutexDestroy(dvoid *hndl, OCIError *err,
-                                  OCIThreadMutex **mutex);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        mutex(IN/OUT):   The mutex to destroy.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is not legal to destroy a mutex that is uninitialized or is currently
-      held by a thread.  The destruction of a mutex must not occur concurrently
-      with any other operations on the mutex.  A mutex must not be used after
-      it has been destroyed.
-
-
-  OCIThreadMutexAcquire - OCIThread MuteX Acquire
-  -----------------------------------------------
-
-    Description
-
-      This acquires a mutex for the thread in which it is called.  If the mutex
-      is held by another thread, the calling thread is blocked until it can
-      acquire the mutex.
-
-    Prototype
-
-     sword OCIThreadMutexAcquire(dvoid *hndl, OCIError *err,
-                                 OCIThreadMutex *mutex);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error, it is 
-                     recorded in err and this function returns OCI_ERROR.  
-                     Diagnostic information can be obtained by calling 
-                     OCIErrorGet().
-
-        mutex(IN/OUT):   The mutex to acquire.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal to attempt to acquire an uninitialized mutex.
-
-      This function's behavior is undefined if it is used by a thread to
-      acquire a mutex that is already held by that thread.
-
-
-
-  OCIThreadMutexRelease - OCIThread MuteX Release
-  -----------------------------------------------
-
-    Description
-
-      This releases a mutex.  If there are any threads blocked on the mutex,
-      one of them will acquire it and become unblocked.
-
-    Prototype
-
-      sword OCIThreadMutexRelease(dvoid *hndl, OCIError *err,
-                                  OCIThreadMutex *mutex);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        mutex(IN/OUT):   The mutex to release.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal to attempt to release an uninitialized mutex.  It is also
-      illegal for a thread to release a mutex that it does not hold.
-
-
-  OCIThreadKeyInit - OCIThread KeY Initialize
-  -------------------------------------------
-
-    Description
-
-      This creates a key.  Each call to this routine allocate and generates 
-      a new key that is distinct from all other keys.
-
-    Prototype
-
-      sword OCIThreadKeyInit(dvoid *hndl, OCIError *err, OCIThreadKey **key,
-                             OCIThreadKeyDestFunc destFn);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        key(OUT):    The 'OCIThreadKey' in which to create the new key.
-
-        destFn(IN):  The destructor for the key.  NULL is permitted.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      Once this function executes successfully, a pointer to an allocated and 
-      initialized key is return.  That key can be used with 'OCIThreadKeyGet()'
-      and 'OCIThreadKeySet()'.  The initial value of the key will be 'NULL' for
-      all threads.
-
-      It is illegal for this function to be called more than once to create the
-      same key (i.e., to be called more than once with the same value for the
-      'key' parameter).
-
-      If the 'destFn' parameter is not NULL, the routine pointed to by 'destFn'
-      will be called whenever a thread that has a non-NULL value for the key
-      terminates.  The routine will be called with one parameter.  The
-      parameter will be the key's value for the thread at the time at which the
-      thread terminated.
-      If the key does not need a destructor function, pass NULL for 'destFn'.
-
-
-  OCIThreadKeyDestroy - OCIThread KeY DESTROY
-  -------------------------------------------
-
-   Description
-
-     Destroy and deallocate the key pointed to by 'key'.
-
-    Prototype
-
-      sword OCIThreadKeyDestroy(dvoid *hndl, OCIError *err, 
-                                OCIThreadKey **key);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        key(IN/OUT):  The 'OCIThreadKey' in which to destroy the key.
- 
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      This is different from the destructor function callback passed to the
-      key create routine.  This new destroy function 'OCIThreadKeyDestroy' is 
-      used to terminate any resources OCI THREAD acquired when it created 
-      'key'.  [The 'OCIThreadKeyDestFunc' callback type is a key VALUE 
-      destructor; it does in no way operate on the key itself.]
-
-      This must be called once the user has finished using the key.  Not
-      calling the key destroy function may result in memory leaks.
-
-
-
-
-1.2.2.2 Thread Key operations
--------------------------------
-
-  OCIThreadKeyGet - OCIThread KeY Get value
-  -----------------------------------------
-
-    Description
-
-      This gets the calling thread's current value for a key.
-
-    Prototype
-
-      sword OCIThreadKeyGet(dvoid *hndl, OCIError *err, OCIThreadKey *key,
-                            dvoid **pValue);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        key(IN):          The key.
-
-        pValue(IN/OUT):   The location in which to place the thread-specific
-                          key value.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal to use this function on a key that has not been created
-      using 'OCIThreadKeyInit()'.
-
-      If the calling thread has not yet assigned a value to the key, 'NULL' is
-      placed in the location pointed to by 'pValue'.
-
-
-  OCIThreadKeySet - OCIThread KeY Set value
-  -----------------------------------------
-
-    Description
-
-      This sets the calling thread's value for a key.
-
-    Prototype
-
-      sword OCIThreadKeySet(dvoid *hndl, OCIError *err, OCIThreadKey *key,
-                            dvoid *value);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        key(IN/OUT): The key.
-
-        value(IN):   The thread-specific value to set in the key.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal to use this function on a key that has not been created
-      using 'OCIThreadKeyInit()'.
-
-1.2.2.3  Thread Id
---------------------
-
-  OCIThreadIdInit - OCIThread Thread Id INITialize
-  --------------------------------------------------
-
-    Description
-
-      Allocate and initialize the thread id 'tid'.
-
-    Prototype
-
-      sword OCIThreadIdInit(dvoid *hndl, OCIError *err, OCIThreadId **tid);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid (OUT):   Pointer to the thread ID to initialize.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-
-  OCIThreadIdDestroy - OCIThread Thread Id DESTROY
-  --------------------------------------------------
-
-    Description
-
-      Destroy and deallocate the thread id 'tid'.
-
-    Prototype
-
-      sword OCIThreadIdDestroy(dvoid *hndl, OCIError *err, OCIThreadId **tid);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid(IN/OUT):        Pointer to the thread ID to destroy.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Note
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-
-  OCIThreadIdSet - OCIThread Thread Id Set
-  -----------------------------------------
-
-    Description
-
-      This sets one 'OCIThreadId' to another.
-
-    Prototype
-
-      sword OCIThreadIdSet(dvoid *hndl, OCIError *err, 
-                           OCIThreadId *tidDest,
-                           OCIThreadId *tidSrc);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tidDest(OUT):   This should point to the location of the 'OCIThreadId'
-                        to be set to.
-
-        tidSrc(IN):     This should point to the 'OCIThreadId' to set from.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-
-  OCIThreadIdSetNull - OCIThread Thread Id Set Null
-  ---------------------------------------------------------
-
-    Description
-
-      This sets the NULL thread ID to a given 'OCIThreadId'.
-
-    Prototype
-
-      sword OCIThreadIdSetNull(dvoid *hndl, OCIError *err,
-                               OCIThreadId *tid);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error, it is 
-                     recorded in err and this function returns OCI_ERROR.  
-                     Diagnostic information can be obtained by calling 
-                     OCIErrorGet().
-
-        tid(OUT):    This should point to the 'OCIThreadId' in which to put
-                     the NULL thread ID.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-
-  OCIThreadIdGet - OCIThread Thread Id Get
-  ------------------------------------------
-
-    Description
-
-      This retrieves the 'OCIThreadId' of the thread in which it is called.
-
-    Prototype
-
-      sword OCIThreadIdGet(dvoid *hndl, OCIError *err,
-                           OCIThreadId *tid);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid(OUT):    This should point to the location in which to place the
-                     ID of the calling thread.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-      When OCIThread is used in a single-threaded environment,
-      OCIThreadIdGet() will always place the same value in the location
-      pointed to by 'tid'.  The exact value itself is not important.  The
-      important thing is that it is not the same as the NULL thread ID and
-      that it is always the same value.
-
-
-  OCIThreadIdSame - OCIThread Thread Ids Same?
-  ----------------------------------------------
-
-    Description
-
-      This determines whether or not two 'OCIThreadId's represent the same
-      thread.
-
-    Prototype
-
-      sword OCIThreadIdSame(dvoid *hndl, OCIError *err,
-                            OCIThreadId *tid1, OCIThreadId *tid2,
-                            boolean *result);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid1(IN):   Pointer to the first 'OCIThreadId'.
-
-        tid2(IN):   Pointer to the second 'OCIThreadId'.
-	
-	result(IN/OUT): Pointer to the result.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      If 'tid1' and 'tid2' represent the same thread, 'result' is set to TRUE.
-      Otherwise, 'result' is set to FALSE.
-
-      'result' is set to TRUE if both 'tid1' and 'tid2' are the NULL thread ID.
-
-      'ti1d' and 'tid2' should be initialized by OCIThreadIdInit().
-
-
-  OCIThreadIdNull - OCIThread Thread Id NULL?
-  ---------------------------------------------
-
-    Description
-
-      This determines whether or not a given 'OCIThreadId' is the NULL thread
-      ID.
-
-    Prototype
-
-      sword OCIThreadIdNull(dvoid *hndl, OCIError *err,
-                            OCIThreadId *tid,
-                            boolean *result);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid(IN):    Pointer to the 'OCIThreadId' to check.
-
-	result(IN/OUT): Pointer to the result.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      If 'tid' is the NULL thread ID, 'result' is set to TRUE.  Otherwise, 
-      'result' is set to FALSE.
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-
-1.3 Active Threading Primitives
-=================================
-
-The active threading primitives deal with the manipulation of actual
-threads.  Because the specifications of most of these primitives require
-that it be possible to have multiple threads, they work correctly only in
-the enabled OCIThread; In the disabled OCIThread, they always return
-failure.  The exception is OCIThreadHandleGet(); it may be called in a 
-single-threaded environment, in which case it will have no effect.
-
-Active primitives should only be called by code running in a multi-threaded
-environment.  You can call OCIThreadIsMulti() to determine whether the 
-environment is multi-threaded or single-threaded.
-
-
-1.3.1  Types
---------------
-
-1.3.1.1    OCIThreadHandle - OCIThread Thread Handle
-------------------------------------------------------
-
-  Type 'OCIThreadHandle' is used to manipulate a thread in the active
-  primitives:  OCIThreadJoin()and OCIThreadClose().  A thread handle opened by
-  OCIThreadCreate() must be closed in a matching call to
-  OCIThreadClose().  A thread handle is invalid after the call to
-  OCIThreadClose().
-
-  The distinction between a thread ID and a thread handle in OCIThread usage
-  follows the distinction between the thread ID and the thread handle on
-  Windows NT.  On many platforms, the underlying native types are the same.
-
-
-1.3.2  Functions
-------------------
-
-  OCIThreadHndInit - OCIThread HaNDle Initialize
-  ----------------------------------------------
-
-    Description
-
-      Allocate and initialize the thread handle.
-
-    Prototype
-
-      sword OCIThreadHndInit(dvoid *hndl, OCIError *err, 
-                             OCIThreadHandle **thnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        thnd(OUT):   The address of pointer to the thread handle to initialize.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-
-  OCIThreadHndDestroy - OCIThread HaNDle Destroy
-  ----------------------------------------------
-
-    Description
-
-      Destroy and deallocate the thread handle.
-
-    Prototype
-
-      sword OCIThreadHndDestroy(dvoid *hndl, OCIError *err, 
-                                OCIThreadHandle **thnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        thnd(IN/OUT):  The address of pointer to the thread handle to destroy.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'thnd' should be initialized by OCIThreadHndInit().
-
-
-  OCIThreadCreate - OCIThread Thread Create
-  -----------------------------------------
-
-    Description
-
-      This creates a new thread.
-
-    Prototype
-
-      sword OCIThreadCreate(dvoid *hndl, OCIError *err,
-                            void (*start)(dvoid *), dvoid *arg,
-                            OCIThreadId *tid, OCIThreadHandle *tHnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        start(IN):    The function in which the new thread should begin
-                      execution.
-
-        arg(IN):      The argument to give the function pointed to by 'start'.
-
-        tid(IN/OUT):  If not NULL, gets the ID for the new thread.
-
-        tHnd(IN/OUT): If not NULL, gets the handle for the new thread.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      The new thread will start by executing a call to the function pointed
-      to by 'start' with the argument given by 'arg'.  When that function
-      returns, the new thread will terminate.  The function should not
-      return a value and should accept one parameter, a 'dvoid *'.
-
-      The call to OCIThreadCreate() must be matched by a call to
-      OCIThreadClose() if and only if tHnd is non-NULL.
-
-      If tHnd is NULL, a thread ID placed in *tid will not be valid in the
-      calling thread because the timing of the spawned thread's termination
-      is unknown.
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-      'thnd' should be initialized by OCIThreadHndInit().
-
-
-
-  OCIThreadJoin - OCIThread Thread Join
-  -------------------------------------
-
-    Description
-
-      This function allows the calling thread to 'join' with another thread.
-      It blocks the caller until the specified thread terminates.
-
-    Prototype
-
-      sword OCIThreadJoin(dvoid *hndl, OCIError *err, OCIThreadHandle *tHnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tHnd(IN):    The 'OCIThreadHandle' of the thread to join with.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'thnd' should be initialized by OCIThreadHndInit().
-
-      The result of multiple threads all trying to join with the same thread is
-      undefined.
-
-
-  OCIThreadClose - OCIThread Thread Close
-  ---------------------------------------
-
-   Description
-
-     This function should be called to close a thread handle.
-
-   Prototype
-
-     sword OCIThreadClose(dvoid *hndl, OCIError *err, OCIThreadHandle *tHnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tHnd(IN/OUT):    The OCIThread thread handle to close.
-
-   Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-   Notes
-
-      'thnd' should be initialized by OCIThreadHndInit().
-
-      Both thread handle and the thread ID that was returned by the same call
-      to OCIThreadCreate() are invalid after the call to OCIThreadClose().
-
-
-
-  OCIThreadHandleGet - OCIThread Thread Get Handle
-  ------------------------------------------------
-
-    Description
-
-      Retrieve the 'OCIThreadHandle' of the thread in which it is called.
-
-    Prototype
-
-      sword OCIThreadHandleGet(dvoid *hndl, OCIError *err,
-                               OCIThreadHandle *tHnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tHnd(IN/OUT):      If not NULL, the location to place the thread
-                           handle for the thread.
-
-     Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'thnd' should be initialized by OCIThreadHndInit().   
-
-      The thread handle 'tHnd' retrieved by this function must be closed 
-      with OCIThreadClose() and destroyed by OCIThreadHndDestroy() after it
-      is used.
-
-
-
-
-1.4 Using OCIThread
-=====================
-
-This section summarizes some of the more important details relating to the use
-of OCIThread.
-
-  * Process initialization
-
-    OCIThread only requires that the process initialization function
-    ('OCIThreadProcessInit()') be called when OCIThread is being used in a
-    multi-threaded application.  Failing to call 'OCIThreadProcessInit()' in
-    a single-threaded application is not an error.
-
-  * OCIThread initialization
-
-    Separate calls to 'OCIThreadInit()' will all return the same OCIThread
-    context.
-
-    Also, remember that each call to 'OCIThreadInit()' must eventually be
-    matched by a call to 'OCIThreadTerm()'.
-
-  * Active vs. Passive Threading primitives
-
-    OCIThread client code written without using any active primitives can be
-    compiled and used without change on both single-threaded and
-    multi-threaded platforms.
-
-    OCIThread client code written using active primitives will only work
-    correctly on multi-threaded platforms.  In order to write a version of the
-    same application to run on single-threaded platform, it is necessary to 
-    branch the your code, whether by branching versions of the source file or 
-    by branching at runtime with the OCIThreadIsMulti() call.
-******************************************************************************/
-
-/*****************************************************************************
-                         ACTUAL PROTOTYPE DECLARATIONS
-******************************************************************************/
-
-void OCIThreadProcessInit(/*_ _*/);
-
-sword OCIThreadInit(/*_ dvoid *hndl, OCIError *err _*/);
-
-sword OCIThreadTerm(/*_ dvoid *hndl, OCIError *err _*/);
-
-boolean OCIThreadIsMulti(/*_ void _*/);
-
-sword OCIThreadMutexInit(/*_ dvoid *hndl, OCIError *err, 
-                             OCIThreadMutex **mutex _*/);
-
-sword OCIThreadMutexDestroy(/*_ dvoid *hndl, OCIError *err, 
-                                OCIThreadMutex **mutex _*/);
-
-sword OCIThreadMutexAcquire(/*_ dvoid *hndl, OCIError *err,
-                                OCIThreadMutex *mutex _*/);
-
-sword OCIThreadMutexRelease(/*_ dvoid *hndl, OCIError *err,
-                                OCIThreadMutex *mutex _*/);
-
-sword OCIThreadKeyInit(/*_ dvoid *hndl, OCIError *err, OCIThreadKey **key,
-                           OCIThreadKeyDestFunc destFn _*/);
-
-sword OCIThreadKeyDestroy(/*_ dvoid *hndl, OCIError *err, 
-                              OCIThreadKey **key _*/);
-
-sword OCIThreadKeyGet(/*_ dvoid *hndl, OCIError *err, OCIThreadKey *key,
-                          dvoid **pValue _*/);
-
-sword OCIThreadKeySet(/*_ dvoid *hndl, OCIError *err, OCIThreadKey *key,
-                          dvoid *value _*/);
-
-sword OCIThreadIdInit(/*_ dvoid *hndl, OCIError *err, OCIThreadId **tid _*/);
-
-sword OCIThreadIdDestroy(/*_ dvoid *hndl, OCIError *err, 
-                             OCIThreadId **tid _*/);
-
-sword OCIThreadIdSet(/*_ dvoid *hndl, OCIError *err, 
-                         OCIThreadId *tidDest, OCIThreadId *tidSrc _*/);
-
-sword OCIThreadIdSetNull(/*_ dvoid *hndl, OCIError *err, OCIThreadId *tid _*/);
-
-sword OCIThreadIdGet(/*_ dvoid *hndl, OCIError *err, OCIThreadId *tid _*/);
-
-sword OCIThreadIdSame(/*_ dvoid *hndl, OCIError *err,
-                          OCIThreadId *tid1, OCIThreadId *tid2,
-                          boolean *result _*/);
-
-sword OCIThreadIdNull(/*_ dvoid *hndl, OCIError *err,
-                          OCIThreadId *tid, boolean *result _*/);
-
-sword OCIThreadHndInit(/*_ dvoid *hndl, OCIError *err, 
-                           OCIThreadHandle **thnd _*/);
-
-sword OCIThreadHndDestroy(/*_ dvoid *hndl, OCIError *err, 
-                              OCIThreadHandle **thnd _*/);
-
-sword OCIThreadCreate(/*_ dvoid *hndl, OCIError *err,
-                          void (*start)(dvoid *), dvoid *arg,
-                          OCIThreadId *tid, OCIThreadHandle *tHnd _*/);
-
-sword OCIThreadJoin(/*_ dvoid *hndl, OCIError *err, OCIThreadHandle *tHnd _*/);
-
-sword OCIThreadClose(/*_ dvoid *hndl, OCIError *err, 
-                         OCIThreadHandle *tHnd _*/);
-
-sword OCIThreadHandleGet(/*_ dvoid *hndl, OCIError *err, 
-                             OCIThreadHandle *tHnd _*/);
-/*----------------- End OCI Thread interface Extensions ---------------------*/
-
-/*--------------- Begin OCI Client Notification Interfaces ------------------*/
-
-typedef ub4 (*OCISubscriptionNotify)(/*_ dvoid *ctx, OCISubscription *subscrhp,
-                                         dvoid *pay, ub4 payl,
-                                         dvoid *desc, ub4 mode _*/);
-
-sword OCISubscriptionRegister (/*_ OCISvcCtx *svchp, 
-                              OCISubscription **subscrhpp, ub2 count, 
-                              OCIError *errhp, ub4 mode _*/);
-
-sword OCISubscriptionPost (/*_ OCISvcCtx *svchp, OCISubscription **subscrhpp,
-                               ub2 count, OCIError *errhp, ub4 mode _*/);
-
-sword OCISubscriptionUnRegister (/*_ OCISvcCtx *svchp, 
-                                OCISubscription *subscrhp, OCIError *errhp, 
-                                ub4 mode _*/);
-
-sword OCISubscriptionDisable (/*_ OCISubscription *subscrhp,
-                                  OCIError *errhp, ub4 mode _*/);
-
-sword OCISubscriptionEnable (/*_ OCISubscription *subscrhp,
-                                 OCIError *errhp, ub4 mode _*/);
-
-/*------------------- End OCI Client Notification Interfaces ----------------*/
-
-/*----------------- Extensions to Datetime interfaces -----------------------*/
-
-sword OCIDateTimeGetTime(/*_ dvoid *hndl, OCIError *err, 
-			   OCIDateTime *datetime, ub1 *hour, ub1 *min, 
-			   ub1 *sec, ub4 *fsec_*/);
-
-sword OCIDateTimeGetDate(/*_dvoid *hndl, OCIError *err, 
-			   CONST OCIDateTime *date,
-			   sb2 *year, ub1 *month, ub1 *day _*/);
-
-sword OCIDateTimeGetTimeZoneOffset(/*_ dvoid *hndl,OCIError *err,
-                  CONST OCIDateTime   *datetime,sb1 *hour,sb1 *minute _*/);
-
-sword OCIDateTimeConstruct(/*_ dvoid  *hndl,OCIError *err,
-               OCIDateTime *datetime,
-               sb2 yr,ub1 mnth,ub1 dy,ub1 hr,ub1 mm,ub1 ss,ub4 fsec,
-               OraText  *timezone,size_t timezone_length _*/);
-
-sword OCIDateTimeSysTimeStamp(/*_ dvoid *hndl, OCIError *err, 
-                              OCIDateTime *sys_date _*/);
-
-sword OCIDateTimeAssign(/*_dvoid *hndl, OCIError *err, CONST OCIDateTime *from,
-			 OCIDateTime *to_*/);
-
-sword OCIDateTimeToText(/*_ dvoid *hndl, OCIError *err, 
-                  CONST OCIDateTime *date, CONST OraText *fmt, 
-                  ub1 fmt_length, ub1 fsprec, CONST OraText *lang_name, 
-                  size_t lang_length,
-                  ub4 *buf_size, OraText *buf _*/);
-
-sword OCIDateTimeFromText(/*_ dvoid *hndl, OCIError *err, CONST OraText *dstr,
-                     size_t d_str_length, CONST OraText *fmt, ub1 fmt_length, 
-                     CONST OraText *lang_name, size_t lang_length, 
-                     OCIDateTime *date _*/);
-
-sword OCIDateTimeCompare(/*_ dvoid *hndl, OCIError *err, 
-                     CONST OCIDateTime *date1, CONST OCIDateTime *date2, 
-                     sword *result _*/);
-
-sword OCIDateTimeCheck(/*_ dvoid *hndl, OCIError *err, CONST OCIDateTime *date,
-		 ub4 *valid _*/);
-
-sword OCIDateTimeConvert(/*_ dvoid *hndl, OCIError *err, OCIDateTime *indate, 
-                      OCIDateTime *outdate_*/);
-
-sword OCIDateTimeSubtract(/*_ dvoid *hndl, OCIError *err, OCIDateTime *indate1,
-        OCIDateTime *indate2,	 OCIInterval *inter_*/);
-
-sword OCIDateTimeIntervalAdd(/*_ dvoid *hndl, OCIError *err, 
-                        OCIDateTime *datetime, OCIInterval *inter, 
-                        OCIDateTime *outdatetime_*/);
-
-sword OCIDateTimeIntervalSub(/*_ dvoid *hndl, OCIError *err, 
-                        OCIDateTime *datetime, OCIInterval *inter, 
-                        OCIDateTime *outdatetime_*/);
-
-sword OCIIntervalSubtract(/*_ dvoid *hndl, OCIError *err, 
-       OCIInterval *minuend, OCIInterval *subtrahend, OCIInterval *result _*/);
-
-sword OCIIntervalAdd(/*_ dvoid *hndl, OCIError *err, OCIInterval *addend1, 
-			OCIInterval *addend2, OCIInterval *result _*/);
-
-sword OCIIntervalMultiply(/*_ dvoid *hndl, OCIError *err, 
-                        CONST OCIInterval *ifactor, OCINumber *nfactor, 
-                        OCIInterval *result _*/);
-
-sword OCIIntervalDivide(/*_ dvoid *hndl, OCIError *err, OCIInterval *dividend, 
-		OCINumber *divisor, OCIInterval *result _*/);
-
-sword OCIIntervalCompare(/*_ dvoid *hndl, OCIError *err, OCIInterval *inter1, 
-			OCIInterval *inter2, sword *result _*/);
-
-sword OCIIntervalFromNumber(/*_ dvoid *hndl, OCIError *err, 
-              OCIInterval *interval, OCINumber *number _*/);
-
-sword OCIIntervalFromText(/*_dvoid *hndl, OCIError *err, CONST OraText *inpstr,
-		size_t str_len, OCIInterval *result _*/);
-
-sword OCIIntervalToText(/*_  dvoid *hndl, OCIError *err,
-                     CONST OCIInterval *interval, ub1 lfprec, ub1 fsprec, 
-                     OraText *buffer, size_t buflen, size_t *resultlen _*/);
-
-sword OCIIntervalToNumber(/*_ dvoid *hndl, OCIError *err, 
-              CONST OCIInterval *interval, OCINumber *number _*/);
-
-sword OCIIntervalCheck(/*_dvoid *hndl, OCIError *err, CONST OCIInterval *inter,
-			 ub4 *valid _*/);
-
-sword OCIIntervalAssign(/*_ dvoid *hndl, OCIError *err, 
-                  CONST OCIInterval *inpinter, OCIInterval *outinter _*/);
-
-sword OCIIntervalSetYearMonth(/*_dvoid *hndl, OCIError *err, sb4 yr, sb4 mnth,
-                        OCIInterval *result _*/);
-
-sword OCIIntervalGetYearMonth(/*_dvoid *hndl, OCIError *err, sb4 *yr, sb4 *mnt,
-                        CONST OCIInterval *result _*/);
-
-sword OCIIntervalSetDaySecond(/*_dvoid *hndl, OCIError *err, sb4 dy, sb4 hr,
-                        sb4 mm, sb4 ss, sb4 fsec, OCIInterval *result _*/);
-
-sword OCIIntervalGetDaySecond(/*_dvoid *hndl, OCIError *err, sb4 *dy, sb4 *hr,
-                   sb4 *mm, sb4 *ss, sb4 *fsec, CONST OCIInterval *result _*/);
-
-sword OCIDateTimeToArray(/*_dvoid *hndl, OCIError *err,
-                         CONST OCIDateTime *datetime, CONST OCIInterval *reftz,
-                         ub1 *outarray, ub4 len, ub1 fsprec _*/);
-
-sword OCIDateTimeFromArray(/*_dvoid *hndl, OCIError *err, ub1 *inarray,
-                           ub4 len, ub1 type, OCIDateTime *datetime,
-                           CONST OCIInterval *reftz, ub1 fsprec _*/);
-
-sword OCIDateTimeGetTimeZoneName(/*_dvoid *hndl, OCIError *err,
-                                 CONST OCIDateTime *datetime, 
-                                 ub1 *buf, ub4 *buflen _*/);
-
-sword OCIIntervalFromTZ(/*_ dvoid *hndl, OCIError *err,
-                        CONST oratext *inpstring, size_t str_len,
-                        OCIInterval *result _*/);
-
-/*----------------- End Datetime interface Extensions -----------------------*/
-
-/*------------------------ OCIAnyDataSet interfaces -------------------------*/
-
-/*
-   NAME
-     OCIAnyDataSetBeginCreate - OCIAnyDataSet Begin Creation
-   PARAMETERS
-     svchp (IN/OUT) - The OCI service context.
-     errhp (IN/OUT) - The OCI error handle. If there is an error, it is
-                      recorded in errhp and this function returns OCI_ERROR.
-                      Diagnostic information can be obtained by calling
-                      OCIErrorGet().
-     typecode       - typecode corresponding to the OCIAnyDataSet.
-     type (IN)      - type corresponding to the OCIAnyDataSet. If the typecode
-                      corresponds to a built-in type (OCI_TYPECODE_NUMBER etc.)
-                      , this parameter can be NULL. It should be non NULL for
-                      user defined types (OCI_TYPECODE_OBJECT,
-                      OCI_TYPECODE_REF, collection types etc.)
-     dur (IN)       - duration for which OCIAnyDataSet is allocated.
-     data_set (OUT) - Initialized OCIAnyDataSet.
-     RETURNS        - error code
-   NOTES
-     This call allocates an OCIAnyDataSet for the duration of dur and
-     initializes it with the type information. The OCIAnyDataSet can hold
-     multiple instances of the given type. For performance reasons, the 
-     OCIAnyDataSet will end up pointing to the passed in OCIType parameter.
-     It is the responsibility of the caller to ensure that the OCIType is
-     longer lived (has allocation duration >= the duration of the OCIAnyData
-     if the OCIType is a transient one, allocation/pin duration >= duration of
-     the OCIAnyData if the OCIType is a persistent one).
-
-*/
-sword OCIAnyDataSetBeginCreate(/*_ OCISvcCtx *svchp, OCIError *errhp,
-     OCITypeCode typecode, CONST OCIType *type, OCIDuration dur,
-     OCIAnyDataSet ** data_set _*/);
-
-/*
-   NAME
-     OCIAnyDataSetDestroy  - OCIAnyDataSet Destroy
-   DESCRIPTION
-     This call frees the OCIAnyDataSet allocated using
-     OCIAnyDataSetBeginCreate().
-   RETURNS
-     error code.
-   PARAMETERS
-     svchp (IN/OUT)    - The OCI service context.
-     errhp (IN/OUT)    - The OCI Error handle.
-     data_set (IN/OUT) - OCIAnyDataSet to be freed.
-*/
-sword OCIAnyDataSetDestroy(/*_ OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set _*/);
-
-/*
-   NAME
-     OCIAnyDataSetAddInstance - OCIAnyDataSet Add an instance
-   DESCRIPTION
-     This call adds a new skeleton instance to the OCIAnyDataSet and all the
-     attributes of the instance are set to NULL. It returns this skeleton
-     instance through the OCIAnyData parameter which can be constructed
-     subsequently by invoking the OCIAnyData API.
-   RETURNS
-     error code.
-   PARAMETERS
-     svchp (IN/OUT)      - The OCI service context.
-     errhp (IN/OUT)      - The OCI Error handle.
-     data_set (IN/OUT)   - OCIAnyDataSet to which a new instance is added.
-     data (IN/OUT)       - OCIAnyData corresponding to the newly added
-                           instance. If (*data) is NULL, a new OCIAnyData will
-                           be allocated for same duration as the OCIAnyDataSet.
-                           If (*data) is not NULL, it will get reused. This
-                           OCIAnyData can be subseqently constructed using the
-                           OCIAnyDataConvert() call or it can be constructed
-                           piece-wise using the OCIAnyDataAttrSet and
-                           OCIAnyDataCollAddElem calls.
-   NOTES
-     No Destruction of the old value is done here. It is the responsibility of
-     the caller to destroy the old value pointed to by (*data) and set (*data)
-     to a null pointer before beginning to make a sequence of this call. No
-     deep copying (of OCIType information nor the data part.) is done in the
-     returned OCIAnyData. This OCIAnyData cannot be used beyond the allocation
-     duration of the OCIAnyDataSet (it is like a reference into the
-     OCIAnyDataSet). The returned OCIAnyData can be reused on subsequent calls
-     to this function, to sequentially add new data instances to the
-     OCIAnyDataSet.
-*/
-sword OCIAnyDataSetAddInstance(/*_ OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set, OCIAnyData **data _*/);
-
-/*
-   NAME
-     OCIAnyDataSetEndCreate - OCIAnyDataSet End Creation process.
-   DESCRIPTION
-     This call marks the end of OCIAnyDataSet creation. It should be called
-     after constructing all of its instance(s).
-   RETURNS
-     error code.
-   PARAMETERS
-     svchp (IN/OUT)        - The OCI service context.
-     errhp (IN/OUT)        - The OCI error handle. If there is an error, it is
-                             recorded in errhp and this function returns
-                             OCI_ERROR. Diagnostic information can be obtained
-                             by calling OCIErrorGet().
-     data_set (IN/OUT)     - OCIAnyDataSet that has been fully constructed.
-*/
-sword OCIAnyDataSetEndCreate(/*_ OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set _*/);
-
-/*
-   NAME
-     OCIAnyDataSetGetType - OCIAnyDataSet Get Type of an OCIAnyDataSet
-   DESCRIPTION
-     Gets the Type corresponding to an OCIAnyDataSet. It returns the actual
-     pointer to the type maintained inside an OCIAnyDataSet. No copying is
-     done for performance reasons. The client is responsible for not using
-     this type once the OCIAnyDataSet is freed (or its duration ends).
-   RETURNS
-     error code.
-   PARAMETERS
-     svchp (IN/OUT)      - The OCI service context.
-     errhp (IN/OUT)      - The OCI Error handle.
-     data_set (IN)       - Initialized OCIAnyDataSet.
-     tc (OUT)            - The typecode of the type.
-     type (OUT)          - The type corresponding to the OCIAnyDataSet. This
-                           could be null if the OCIAnyData corresponds to a
-                           built-in type.
-*/
-sword OCIAnyDataSetGetType (/*_ OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set, OCITypeCode *tc, OCIType **type _*/);
-
-/*
-  NAME
-    OCIAnyDataSetGetCount - OCIAnyDataSet Get Count of instances.
-  DESCRIPTION
-    This call gets the number of instances in the OCIAnyDataSet.
-  RETURNS
-    error code.
-  PARAMETERS
-    svchp (IN/OUT)      - OCI Service Context
-    errhp (IN/OUT)      - OCI Error handle
-    data_set (IN)       - Well formed OCIAnyDataSet.
-    count (OUT)         - number of instances in OCIAnyDataSet
-*/
-sword OCIAnyDataSetGetCount(/*_ OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set, ub4 *count _*/);
-
-/*
-  NAME
-    OCIAnyDataSetGetInstance - OCIAnyDataSet Get next instance.
-  DESCRIPTION
-    Only sequential access to the instances in an OCIAnyDataSet is allowed.
-    This call returns the OCIAnyData corresponding to an instance at the
-    current position and updates the current position. Subsequently, the
-    OCIAnyData access routines may be used to access the instance.
-  RETURNS
-    error code. Returns OCI_NO_DATA if the current position is at the end of
-    the set, OCI_SUCCESS otherwise.
-  PARAMETERS
-    svchp (IN/OUT)      - OCI Service Context
-    errhp (IN/OUT)      - OCI Error handle
-    data_set (IN)       - Well formed OCIAnyDataSet
-    data (IN/OUT)       - OCIAnyData corresponding to the instance. If (*data)
-                          is NULL, a new OCIAnyData will be allocated for same
-                          duration as the OCIAnyDataSet. If (*data) is not NULL
-                          , it will get reused. This OCIAnyData can be
-                          subsequently accessed using the OCIAnyDataAccess()
-                          call or piece-wise by using the OCIAnyDataAttrGet()
-                          call.
-  NOTE
-    No Destruction of the old value is done here. It is the responsibility of
-    the caller to destroy the old value pointed to by (*data) and set (*data)
-    to a null pointer before beginning to make a sequence of this call. No deep
-    copying (of OCIType information nor the data part.) is done in the returned
-    OCIAnyData. This OCIAnyData cannot be used beyond the allocation duration
-    of the OCIAnyDataSet (it is like a reference into the OCIAnyDataSet). The
-    returned OCIAnyData can be reused on subsequent calls to this function to
-    sequentially access the OCIAnyDataSet.
-*/
-sword OCIAnyDataSetGetInstance(/*_ OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set, OCIAnyData **data _*/);
-
-/*--------------------- End of OCIAnyDataSet interfaces ---------------------*/
-
-/*--------------------- Connection Pooling prototypes -----------------------*/
-sword OCIConnectionPoolCreate(/*_ OCIEnv *envhp, OCIError *errhp,
-                              OCICPool *poolhp,
-                              OraText **poolName, sb4 *poolNameLen,
-                              CONST OraText *dblink, sb4 dblinkLen,
-                              ub4 connMin, ub4 connMax, ub4 connIncr,
-                              CONST OraText *poolUserName, sb4 poolUserLen,
-                              CONST OraText *poolPassword, sb4 poolPassLen,
-                              ub4 mode _*/);
-
-sword OCIConnectionPoolDestroy(/*_ OCICPool *poolhp,
-                               OCIError *errhp, ub4 mode _*/);
-
-/*----------------- End of Connection Pooling prototypes --------------------*/
-
-/*-------------------- Session Pooling prototypes ---------------------------*/
-
-sword OCISessionPoolCreate (/*_ OCIEnv *envhp, OCIError *errhp, 
-                              OCISPool *spoolhp, 
-                              OraText **poolName, ub4 *poolNameLen, 
-                              CONST OraText *connStr, ub4 connStrLen,
-                              ub4 sessMin, ub4 sessMax, ub4 sessIncr,
-                              OraText *userid, ub4 useridLen,
-                              OraText *password, ub4 passwordLen,
-                              ub4 mode _*/);
-                                                  
-sword OCISessionPoolDestroy (/*_ OCISPool *spoolhp,
-                               OCIError *errhp,
-                               ub4 mode _*/);
-                             
-sword OCISessionGet (/*_ OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp,
-                       OCIAuthInfo *authhp,
-                       OraText *poolName, ub4 poolName_len, 
-                       CONST OraText *tagInfo, ub4 tagInfo_len,
-                       OraText **retTagInfo, ub4 *retTagInfo_len,
-                       boolean *found, ub4 mode _*/);
-
-sword OCISessionRelease (/*_ OCISvcCtx *svchp, OCIError *errhp,
-                         OraText *tag, ub4 tag_len,
-                         ub4 mode _*/);
-
-/*-------------------- End Session Pooling prototypes -----------------------*/
-
-sword  OCIXMLTypeNew(/*_ OCISvcCtx *svchp, OCIError *errhp, OCIDuration dur,
-                     OraText *elname, ub4 elname_Len,
-                     OraText *schemaURL, ub4 schemaURL_Len,
-                     OCIXMLType **retInstance _*/);
-
-sword  OCIXMLTypeCreateFromSrc(/*_ OCISvcCtx *svchp, OCIError *errhp,
-                     OCIDuration dur, ub1 src_type, dvoid *src_ptr,
-                     sb4 ind, OCIXMLType **retInstance _*/);
-
-sword OCIXMLTypeExtract(/*_ OCIError *errhp,
-              OCIXMLType *doc, OCIDuration dur,
-              OraText *xpathexpr, ub4 xpathexpr_Len,
-              OraText *nsmap, ub4 nsmap_Len,
-              OCIXMLType **retDoc _*/);
-
-sword OCIXMLTypeTransform(/*_ OCIError *errhp, OCIDuration dur,
-               OCIXMLType *doc, OCIXMLType *xsldoc,
-               OCIXMLType **retDoc _*/);
-
-sword OCIXMLTypeExists(/*_ OCIError *errhp, OCIXMLType *doc,
-                 OraText *xpathexpr, ub4 xpathexpr_Len,
-                 OraText *nsmap, ub4 nsmap_Len,
-                 boolean *retval _*/);
-
-sword OCIXMLTypeIsSchemaBased(/*_ OCIError *errhp,
-                              OCIXMLType *doc, boolean *retval _*/);
-
-sword OCIXMLTypeGetSchema(/*_ OCIError *errhp, OCIXMLType *doc,
-             OCIXMLType **schemadoc,
-             OraText **schemaURL, ub4 *schemaURL_Len,
-             OraText **rootelem, ub4 *rootelem_Len _*/);
-
-sword OCIXMLTypeValidate(/*_ OCIError *errhp, OCIXMLType *doc,
-                   OraText *schemaURL, ub4 schemaURL_Len, boolean *retval _*/);
-
-sword OCIXMLTypeGetDOM(/*_ OCIError *errhp, OCIXMLType *doc, OCIDuration dur,
-                       OCIDOMDocument **retDom _*/);
-
-sword OCIXMLTypeGetFromDOM(/*_ OCIError *errhp, OCIDOMDocument *domdoc,
-                           OCIXMLType **retXMLType _*/);
-
-sword OCIDOMFree(/*_ OCIError *errhp, OCIDOMDocument *domdoc _*/);
-
-/*--------------------------------------------------------------------------- 
-  PRIVATE FUNCTIONS 
-  ---------------------------------------------------------------------------*/
-
-/* these calls are deprecated and should not be used */
-#ifdef NEVER 
-#if !defined(__STDC__) && !defined(__cplusplus)
-sword   OCIStmtBindByPos (/*_ OCIStmt *stmtp, OCIBind *bindp, OCIError *errhp, 
-                     ub4 position, dvoid *valuep, sb4 value_sz, ub2 dty, 
-                     dvoid *indp, ub2 *alenp, ub2 *rcodep, 
-                     ub4 maxarr_len, ub4 *curelep, ub4 mode _*/);
-
-sword   OCIStmtBindByName(/*_ OCIStmt *stmtp, OCIBind *bindp, OCIError *errhp,
-                    CONST OraText *placeholder, sb4 placeh_len, dvoid *valuep,
-                    sb4 value_sz, ub2 dty, dvoid *indp, ub2 *alenp,
-                    ub2 *rcodep, ub4 maxarr_len, ub4 *curelep, ub4 mode _*/);
-
-sword   ocidefn(/*_ OCIStmt *stmtp, OCIDefine *defnp, OCIError *errhp,
-                    ub4 position, dvoid *valuep, sb4 value_sz, ub2 dty,
-                    dvoid *indp, ub2 *rlenp, ub2 *rcodep, ub4 mode _*/);
-
-#endif /* __STDC__ */
-#endif /* NEVER */
-
-#endif                                                              /* ocikp */
diff --git a/src/terralib/drivers/Oracle/OCI/include/ocikpr.h b/src/terralib/drivers/Oracle/OCI/include/ocikpr.h
deleted file mode 100644
index bc24217..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/ocikpr.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * $Header$ 
- */
-
-/* Copyright (c) 1991, 1995, 1996, 1998 by Oracle Corporation */
-/*
-   NAME
-     ocikpr.h - header of K & R compilers
-   MODIFIED   (MM/DD/YY)
-    porangas   12/04/00 - Forward merge bug#974710 to 9i
-    sgollapu   05/19/98 - Change text to OraText
-    dchatter   04/21/96 -
-    dchatter   11/10/95 -  add ognfd() - get native fd
-    lchidamb   04/06/95 -  drop maxdsz from obindps/odefinps
-    slari      04/07/95 -  add opinit
-    dchatter   03/08/95 -  osetpi and ogetpi
-    lchidamb   12/09/94 -  add obindps() and odefinps()
-    dchatter   03/06/95 -  merge changes from branch 1.1.720.2
-    dchatter   11/14/94 -  merge changes from branch 1.1.720.1
-    dchatter   02/08/95 -  olog call; drop onblon
-    dchatter   10/31/94 -  new functions for non-blocking oci
-    rkooi2     11/27/92 -  Changing datatypes (in comments) and return types 
-    rkooi2     10/26/92 -  More portability mods 
-    rkooi2     10/18/92 -  Changed to agree with oci.c 
-    sjain      03/16/92 -  Creation 
-*/
-
-/*
- *  Declare the OCI functions.
- *  Prototype information is commented out.
- *  Use this header for non-ANSI C compilers.
- *  Note that you will need to include ocidfn.h in the .c files
- *    to get the definition for cda_def.
- */
-
-#ifndef OCIKPR
-#define OCIKPR
-
-#include <oratypes.h>
-
-/*
- * Oci BIND (Piecewise or with Skips) 
- */
-sword  obindps( /*_ struct cda_def *cursor, ub1 opcode, OraText *sqlvar, 
-		  sb4 sqlvl, ub1 *pvctx, sb4 progvl, 
-		  sword ftype, sword scale,
-		  sb2 *indp, ub2 *alen, ub2 *arcode, 
-		  sb4 pv_skip, sb4 ind_skip, sb4 alen_skip, sb4 rc_skip,
-		  ub4 maxsiz, ub4 *cursiz, 
-		  OraText *fmt, sb4 fmtl, sword fmtt _*/ );
-sword  obreak( /*_ struct cda_def *lda _*/ );
-sword  ocan  ( /*_ struct cda_def *cursor _*/ );
-sword  oclose( /*_ struct cda_def *cursor _*/ );
-sword  ocof  ( /*_ struct cda_def *lda _*/ );
-sword  ocom  ( /*_ struct cda_def *lda _*/ );
-sword  ocon  ( /*_ struct cda_def *lda _*/ );
-
-
-/*
- * Oci DEFINe (Piecewise or with Skips) 
- */
-sword  odefinps( /*_ struct cda_def *cursor, ub1 opcode, sword pos,ub1 *bufctx,
-		   sb4 bufl, sword ftype, sword scale, 
-		   sb2 *indp, OraText *fmt, sb4 fmtl, sword fmtt, 
-		   ub2 *rlen, ub2 *rcode,
-		   sb4 pv_skip, sb4 ind_skip, sb4 alen_skip, sb4 rc_skip _*/ );
-sword  odescr( /*_ struct cda_def *cursor, sword pos, sb4 *dbsize,
-                   sb2 *dbtype, sb1 *cbuf, sb4 *cbufl, sb4 *dsize,
-                   sb2 *prec, sb2 *scale, sb2 *nullok _*/ );
-sword  odessp( /*_ struct cda_def *cursor, OraText *objnam, size_t onlen,
-                   ub1 *rsv1, size_t rsv1ln, ub1 *rsv2, size_t rsv2ln,
-                   ub2 *ovrld, ub2 *pos, ub2 *level, OraText **argnam,
-                   ub2 *arnlen, ub2 *dtype, ub1 *defsup, ub1* mode,
-                   ub4 *dtsiz, sb2 *prec, sb2 *scale, ub1 *radix,
-                   ub4 *spare, ub4 *arrsiz _*/ );
-sword  oerhms( /*_ struct cda_def *lda, sb2 rcode, OraText *buf,
-                   sword bufsiz _*/ );
-sword  oermsg( /*_ sb2 rcode, OraText *buf _*/ );
-sword  oexec ( /*_ struct cda_def *cursor _*/ );
-sword  oexfet( /*_ struct cda_def *cursor, ub4 nrows,
-                   sword cancel, sword exact _*/ );
-sword  oexn  ( /*_ struct cda_def *cursor, sword iters, sword rowoff _*/ );
-sword  ofen  ( /*_ struct cda_def *cursor, sword nrows _*/ );
-sword  ofetch( /*_ struct cda_def *cursor _*/ );
-sword  oflng ( /*_ struct cda_def *cursor, sword pos, ub1 *buf,
-                   sb4 bufl, sword dtype, ub4 *retl, sb4 offset _*/ );
-sword  ogetpi( /*_ struct cda_def *cursor, ub1 *piecep, dvoid **ctxpp, 
-                   ub4 *iterp, ub4 *indexp _*/ );
-sword  opinit( /*_ ub4 mode _*/ );
-sword  olog  ( /*_ struct cda_def *lda, ub1 *hst, 
-                   OraText *uid, sword uidl,
-                   OraText *psw, sword pswl, 
-                   OraText *conn, sword connl, 
-                   ub4 mode _*/ );
-sword  ologof( /*_ struct cda_def *lda _*/ );
-sword  oopen ( /*_ struct cda_def *cursor, struct cda_def *lda,
-                   OraText *dbn, sword dbnl, sword arsize,
-                   OraText *uid, sword uidl _*/ );
-sword  oopt  ( /*_ struct cda_def *cursor, sword rbopt, sword waitopt _*/ );
-sword  oparse( /*_ struct cda_def *cursor, OraText *sqlstm, sb4 sqllen,
-                   sword defflg, ub4 lngflg _*/ );
-sword  orol  ( /*_ struct cda_def *lda _*/ );
-sword  osetpi( /*_ struct cda_def *cursor, ub1 piece, dvoid *bufp, 
-                   ub4 *lenp _*/ );
-void sqlld2  ( /*_ struct cda_def *lda, OraText *cname, sb4 *cnlen _*/ );
-void sqllda  ( /*_ struct cda_def *lda _*/ );
-
-/* non-blocking functions */
-sword onbset( /*_ struct cda_def *lda _*/ ); 
-sword onbtst( /*_ struct cda_def *lda _*/ ); 
-sword onbclr( /*_ struct cda_def *lda _*/ ); 
-sword ognfd ( /*_ struct cda_def *lda, dvoid *fdp _*/ );
-
-
-
-/* 
- * OBSOLETE FUNCTIONS 
- */
-
-/* 
- * OBSOLETE BIND CALLS-- use obindps() 
- */
-sword  obndra( /*_ struct cda_def *cursor, OraText *sqlvar, sword sqlvl,
-                 ub1 *progv, sword progvl, sword ftype, sword scale,
-                 sb2 *indp, ub2 *alen, ub2 *arcode, ub4 maxsiz,
-                 ub4 *cursiz, OraText *fmt, sword fmtl, sword fmtt _*/ );
-sword  obndrn( /*_ struct cda_def *cursor, sword sqlvn, ub1 *progv,
-                 sword progvl, sword ftype, sword scale, sb2 *indp,
-                 OraText *fmt, sword fmtl, sword fmtt _*/ );
-sword  obndrv( /*_ struct cda_def *cursor, OraText *sqlvar, sword sqlvl,
-                 ub1 *progv, sword progvl, sword ftype, sword scale,
-                 sb2 *indp, OraText *fmt, sword fmtl, sword fmtt _*/ );
-
-/* 
- * OBSOLETE DEFINE CALLS-- use odefinps() 
- */
-sword  odefin( /*_ struct cda_def *cursor, sword pos, ub1 *buf,
-                 sword bufl, sword ftype, sword scale, sb2 *indp,
-                 OraText *fmt, sword fmtl, sword fmtt, ub2 *rlen, 
-                 ub2 *rcode _*/ );
-
-
-/* older calls ; preferred equivalent calls above */
-sword  odsc  ( /*_ struct cda_def *cursor, sword pos, sb2 *dbsize,
-                   sb2 *fsize, sb2 *rcode, sb2 *dtype, sb1 *buf,
-                   sb2 *bufl, sb2 *dsize _*/ );
-sword  oname ( /*_ struct cda_def *cursor, sword pos, sb1 *tbuf,
-                   sb2 *tbufl, sb1 *buf, sb2 *bufl _*/ );
-sword  olon  ( /*_ struct cda_def *lda, OraText *uid, sword uidl,
-                   OraText *pswd, sword pswdl, sword audit _*/ );
-sword  orlon ( /*_ struct cda_def *lda, ub1 *hda, OraText *uid,
-                   sword uidl, OraText *pswd, sword pswdl, sword audit _*/ );
-sword  osql3 ( /*_ struct cda_def *cda, OraText *sqlstm, sword sqllen _*/ );
-
-
-
-
-
-
-
-#endif  /* OCIKPR */
-
-
-
-
-
-
-
diff --git a/src/terralib/drivers/Oracle/OCI/include/ocixad.h b/src/terralib/drivers/Oracle/OCI/include/ocixad.h
deleted file mode 100644
index 3b72fd9..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/ocixad.h
+++ /dev/null
@@ -1,316 +0,0 @@
-/* Copyright (c) 1999, 2001, Oracle Corporation.  All rights reserved.  */
- 
-/* 
-   NAME 
-     ocixad.h - OCI eXtensible Access Driver (for external tables)
-
-   DESCRIPTION 
-     Provides handles for XAD support.
-
-   RELATED DOCUMENTS 
-     External Tables Design specification (external_tab_ds.doc)
- 
-   EXPORT FUNCTION(S) 
-
-   INTERNAL FUNCTION(S)
-
-   EXAMPLES
-
-   NOTES
-     Currently these interfaces are for Oracle internal use only.
-
-   MODIFIED   (MM/DD/YY)
-   cmlim       08/10/01 - date cache: add XADSESSION attrs: DCACHE_SIZE 
-   abrumm      04/18/01 - define interface method signatures in OCIXAD
-   abrumm      02/20/01 - add attributes for ACCESS_PARM_TYPE
-   abrumm      01/18/01 - more OCI_ATTR_XADSESSION attributes
-   abrumm      10/09/00 - use oratypes.h, not s.h
-   abrumm      03/30/00 - external table support
-   abrumm      03/30/00 - Creation
-
-*/
-
-#ifndef OCIXAD_ORACLE
-#define OCIXAD_ORACLE
-
-#ifndef ORATYPES
-#include <oratypes.h>
-#endif
-
-#ifndef OCIDFN
-#include <ocidfn.h>
-#endif
-
-#ifndef OCI_ORACLE
-#include <oci.h>
-#endif
-
-#ifndef OCIEXTP_ORACLE
-#include <ociextp.h>
-#endif
-
-/*---------------------------------------------------------------------------
-                     PUBLIC TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-/*----- Handles and descriptors for access driver operations (OCIXAD*)  -----*/
-typedef struct OCIXADSession      OCIXADSession;           /* session handle */
-typedef struct OCIXADTable        OCIXADTable;               /* table handle */
-typedef struct OCIXADField        OCIXADField;               /* field handle */
-typedef struct OCIXADGranule      OCIXADGranule;           /* granule handle */
-
-/*---------------- Access Driver method interface signatures ----------------*/
-
-/* Each of the following access driver methods are logically member functions
- * of the OCIXADSession handle.  As such, the first argument to the method is
- * the OCIXADSession handle (i.e. "this").
- *
- * An access driver writer must provide these entry points at configure
- * time via the OCIXADMethodEntry structure.
- */
-
-typedef sword (*OCIXADMethodOpen)(OCIXADSession *xadses,
-                                  OCIExtProcContext *withCtx,
-                                  OCIXADTable *xadtbl,
-                                  OCILobLocator *accessParm);
-
-typedef sword (*OCIXADMethodFetchInit)(OCIXADSession *xadses,
-                                       OCIExtProcContext *withCtx,
-                                       OCIXADTable *xadtbl,
-                                       OCINumber *gnum, ub4 maxRowCnt);
-
-typedef sword (*OCIXADMethodFetch)(OCIXADSession *xadses,
-                                   OCIExtProcContext *withCtx,
-                                   OCIXADTable *xadtbl, void *opaqueCtx,
-                                   ub4 rowCnt, sb4 rejctLmt,
-                                   sb4 *rejctCntp);
-
-typedef void (*OCIXADMethodPopulateInit)(OCIXADSession *xadses,
-                                         OCIExtProcContext *withCtx);
-
-typedef void (*OCIXADMethodPopulate)(OCIXADSession *xadses,
-                                     OCIExtProcContext *withCtx);
-
-typedef void (*OCIXADMethodPopulateTerm)(OCIXADSession *xadses,
-                                         OCIExtProcContext *withCtx);
-
-typedef sword  (*OCIXADMethodClose)(OCIXADSession *xadses,
-                                    OCIExtProcContext *withCtx,
-                                    OCIXADTable *xadtbl);
-
-typedef void (*OCIXADMethodErrorCallback)(OCIXADSession *xadses,
-                                          OCIExtProcContext *withCtx,
-                                          void *opaqueCtx, OCIError *errhp,
-                                          ub4 rowidx, ub2 colIdx);
-
-/* Access Driver Method Entry points provided at "configure" time. */
-struct OCIXADMethodEntry
-{
-  ub4                       Version_OCIXADMethodEntry;
-#define OCIXAD_METHOD_ENTRY_VERSION_1   100
-#define OCIXAD_METHOD_ENTRY_VERSION_CUR OCIXAD_METHOD_ENTRY_VERSION_1
-
-  OCIXADMethodOpen          Open_OCIXADMethodEntry;
-  OCIXADMethodFetchInit     FetchInit_OCIXADMethodEntry;
-  OCIXADMethodFetch         Fetch_OCIXADMethodEntry;
-  OCIXADMethodPopulateInit  PopulateInit_OCIXADMethodEntry;
-  OCIXADMethodPopulate      Populate_OCIXADMethodEntry;
-  OCIXADMethodPopulateTerm  PopulateTerm_OCIXADMethodEntry;
-  OCIXADMethodClose         Close_OCIXADMethodEntry;
-  OCIXADMethodErrorCallback ErrorCallback_OCIXADMethodEntry;
-};
-typedef struct OCIXADMethodEntry OCIXADMethodEntry;
-
-/* Each access driver type (e.g. "ORACLE_LOADER") must provide a
- * configure function (currently via the kpxdconf[] array).
- * The configure function must set the
- * OCI_ATTR_XADSESSION_METHOD_ENTRY_POINTS attribute of the passed in
- * 'hndl' argument.  The OCI_ATTR_XADSESSION_METHOD_ENTRY_POINTS attribute
- * is a pointer to an OCIXADMethodEntry structure.
- */
-typedef sword (*OCIXADConfig)(OraText *driverType,       /* driver type name */
-                              void     *hndl,        /* OCIXADSession handle */
-                              ub4       hndlType,             /* handle type */
-                              OCIError *errhp);          /* OCI error handle */
-
-/* Granule handle client callback prototypes for external tables.
- * The granulesPerSrc vector is allocated with numsrc_kpxg entries.
- * The access drivers granule info method (if present) should populate
- * each entry of the granulesPerSrc vector with the number of granules
- * for the corresponding source number.
- */
-typedef void (*OCIXADMethodGranuleInfo)(OCIXADGranule *xadgran,
-                                        OCIExtProcContext *withCtx,
-                                        ub4 *granulesPerSrc);
-
-/*------------------------------ OCIXADSession ------------------------------*/
-               /*----- Defines for OCIXADSession Attributes -----*/
-#define OCI_ATTR_XADSESSION_TABLE                 1
-#define OCI_ATTR_XADSESSION_LOCATIONS             2
-#define OCI_ATTR_XADSESSION_NAMES                 2 /* synonym for locations */
-#define OCI_ATTR_XADSESSION_DIRECTORIES           3
-#define OCI_ATTR_XADSESSION_GRANULE               4
-#define OCI_ATTR_XADSESSION_OPCODE                5
-#define OCI_ATTR_XADSESSION_CALLERID              6
-#define OCI_ATTR_XADSESSION_GRANULESIZE           7
-#define OCI_ATTR_XADSESSION_DATAMODE              8
-#define OCI_ATTR_XADSESSION_AGENT_NUMBER          9
-#define OCI_ATTR_XADSESSION_OPAQUECTX            10
-
-      /*----- OCIXADSession virtual methods (methods as attributes) -----*/
-#define OCI_ATTR_XADSESSION_METHOD_ENTRY_POINTS  11
-                                                        /* type for GET, SET */
-                              /* (OCIXADMethodEntry **, OCIXADMethodEntry *) */
-
-      /* more OCIXADSession Attributes (numbering starts after entry points) */
-                                                        /* type for GET, SET */
-#define OCI_ATTR_XADSESSION_DEFAULT_DIRECTORY    12     /* (text **, text *) */
-#define OCI_ATTR_XADSESSION_DRIVER_TYPE          13     /* (text **, text *) */
-#define OCI_ATTR_XADSESSION_SAMPLE_TYPE          14     /* (ub4 *,   ub4 *)  */
-#define OCI_ATTR_XADSESSION_SAMPLE_PERCENT       15     /* (ub4 *,   ub4 *)  */
-#define OCI_ATTR_XADSESSION_ACCESS_PARM_TYPE     16     /* (ub1 *,   ub1 *)  */
-#define OCI_ATTR_XADSESSION_DCACHE_SIZE          17     /* (ub4 *,   ub4 *)  */
-#define OCI_ATTR_XADSESSION_DCACHE_NUM           18     /* (ub4 *),  n/a  )  */
-#define OCI_ATTR_XADSESSION_DCACHE_DISABLE       19     /* (ub1 *),  n/a  )  */
-#define OCI_ATTR_XADSESSION_DCACHE_HITS          20     /* (ub4 *),  n/a  )  */
-#define OCI_ATTR_XADSESSION_DCACHE_MISSES        21     /* (ub4 *),  n/a  )  */
-
-
-             /*----- Values for OCI_ATTR_XADSESSION_OPCODE -----*/
-#define OCI_XADSESSION_OPCODE_FETCH               1
-#define OCI_XADSESSION_OPCODE_POPULATE            2
-
-            /*----- Values for OCI_ATTR_XADSESSION_CALLERID -----*/
-#define OCI_XADSESSION_CALLERID_QC                1     /* query coordinator */
-#define OCI_XADSESSION_CALLERID_SHADOW            2
-#define OCI_XADSESSION_CALLERID_SLAVE             3
-
-            /*----- Values for OCI_ATTR_XADSESSION_DATAMODE -----*/
-#define OCI_XADSESSION_DATAMODE_STREAM            1
-#define OCI_XADSESSION_DATAMODE_FIELD             2
-
-            /*----- Values for OCI_ATTR_XADSESSION_SAMPLE_TYPE -----*/
-#define OCI_XADSESSION_SAMPLE_NONE                0          /* not sampling */
-#define OCI_XADSESSION_SAMPLE_ROW                 1    /* row level sampling */
-#define OCI_XADSESSION_SAMPLE_BLOCK               2  /* block level sampling */
-
-           /*----- Values for OCI_ATTR_XADSESSION_ACCESS_PARM_TYPE -----*/
-#define OCI_XADSESSION_ACCESS_PARM_TYPE_CLOB      1    /* accessParm is CLOB */
-#define OCI_XADSESSION_ACCESS_PARM_TYPE_BLOB      2    /* accessParm is BLOB */
-
-/*------------------------------- OCIXADTable -------------------------------*/
-                /*----- Defines for OCIXADTable Attributes -----*/
-#define OCI_ATTR_XADTABLE_SESSION                 1
-#define OCI_ATTR_XADTABLE_NAME                    2
-#define OCI_ATTR_XADTABLE_COLUMNS                 3
-#define OCI_ATTR_XADTABLE_REF_COLUMNS             4
-#define OCI_ATTR_XADTABLE_FIELDS                  5
-#define OCI_ATTR_XADTABLE_NUM_FIELDS              6
-#define OCI_ATTR_XADTABLE_OPAQUECTX               7
-#define OCI_ATTR_XADTABLE_NUM_COLS                8
-#define OCI_ATTR_XADTABLE_NUM_REF_COLS            9
-#define OCI_ATTR_XADTABLE_SCHEMA                 10
-
-/*------------------------------- OCIXADField -------------------------------*/
-                /*----- Defines for OCIXADField Attributes -----*/
-#define OCI_ATTR_XADFIELD_COLUMN_NUM              1
-#define OCI_ATTR_XADFIELD_DATA_TYPE               2
-#define OCI_ATTR_XADFIELD_PRECISION               3
-#define OCI_ATTR_XADFIELD_SCALE                   4
-#define OCI_ATTR_XADFIELD_CHARSET_ID              5
-#define OCI_ATTR_XADFIELD_FORMAT_MASK             6
-#define OCI_ATTR_XADFIELD_ADDR                    7
-#define OCI_ATTR_XADFIELD_LENGTH                  8
-#define OCI_ATTR_XADFIELD_ISNULL                  9
-#define OCI_ATTR_XADFIELD_ISPARTIAL              10
-#define OCI_ATTR_XADFIELD_OPAQUECTX              11
-
-/*------------------------------ OCIXADGranule ------------------------------*/
-               /*----- Defines for OCIXADGranule Attributes -----*/
-#define OCI_ATTR_XADGRANULE_NUM_GRANULES          1
-#define OCI_ATTR_XADGRANULE_NUM_SRC               2
-#define OCI_ATTR_XADGRANULE_INTRA_SRC_CONCURRENCY 3
-#define OCI_ATTR_XADGRANULE_OPAQUECTX             4
-
-      /*----- OCIXADGranule virtual methods (methods as attributes) -----*/
-#define OCI_ATTR_XADGRANULE_INFO_METHOD           5
-
-
-/*---------------------------------------------------------------------------
-                     PRIVATE TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-/* NONE */
-
-/*---------------------------------------------------------------------------
-                           EXPORT FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-/*-------------------------- OCIXADSession Methods --------------------------*/
-/* NONE */
-
-/*--------------------------- OCIXADTable Methods ---------------------------*/
-/*
-  NAME
-    OCIXADTableSetRowValues
-
-  DESCRIPTION
-    To set the individual column values for a row by iterating through the
-    OCIXADField handle vector which is attached to the passed in OCIXADTable
-    handle.  The OCIXADTableSetRowValues method is called once for complete
-    rows, multiple times for pieced rows.
-    The column array row index is returned as an OUT parameter (*rowIdxp).
-    
-  RETURNS
-    OCI_SUCCESS:  all column array entries set.
-    OCI_CONTINUE: a partial Field was encountered.
-    OCI_ERROR:    a partial field encountered for a column which
-                  does not allow partial fields (partials are only allowed
-                  for LOB and LONG columns).
-  NOTES
- */
-sword
-#if defined(__STDC__) || defined(__cplusplus)
-OCIXADTableSetRowValues(OCIXADTable *tblhp, ub4 *rowIdxp,OCIError *errhp);
-#else
-OCIXADTableSetRowValues(/*_ OCIXADTable *tblhp, ub4 *rowIdxp ,
-                            OCIError *errhp _*/);
-#endif
-
-
-/*--------------------------- OCIXADField Methods ---------------------------*/
-/*
-  NAME
-    OCIXADFieldSet
-
-  DESCRIPTION
-    Sets run-time (data dependent) attributes of the OCIXADField handle.
-    
-  RETURNS
-    OCI_SUCCESS:  Field attributes successfully set.
-    OCI_ERROR:    Invalid combination of flags,
-                  or NULL addr value for a non-NULL field,
-                  or length of zero for a non-NULL field,
-  NOTES
-    Basically for convenience and efficiency, so the application does
-    not have to do four OCIAttrSet calls to set these attributes.
- */
-sword
-#if defined(__STDC__) || defined(__cplusplus)
-OCIXADFieldSet(OCIXADField *fldhp, ub1 *addr, ub4 length, ub1 isnull,
-               ub1 ispartial);
-#else
-OCIXADFieldSet(/*_ OCIXADField *fldhp, ub1 *addr, ub4 length, ub1 isnull,
-                   ub1 ispartial _*/);
-#endif
-
-/*-------------------------- OCIXADGranule Methods --------------------------*/
-/* NONE */
-
-
-/*---------------------------------------------------------------------------
-                          INTERNAL FUNCTIONS
-  ---------------------------------------------------------------------------*/
-/* NONE */
-
-
-#endif                                                      /* OCIXAD_ORACLE */
diff --git a/src/terralib/drivers/Oracle/OCI/include/ocixmldb.h b/src/terralib/drivers/Oracle/OCI/include/ocixmldb.h
deleted file mode 100644
index 1ddc318..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/ocixmldb.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Copyright (c) 2003, Oracle Corporation.  All rights reserved.  */
- 
-/* 
-   NAME 
-     ocixmldb.h - XDB public functions
-
-   DESCRIPTION 
-     This file contains XDB specific public functions required for DOM C-API. 
-
-   RELATED DOCUMENTS 
-
- 
-   EXPORT FUNCTION(S) 
-   struct xmlctx *OCIXmlDbInitXmlCtx(OCIEnv *, OCISvcCtx *, OCIError *,
-                               ocixmldbparam *params, int num_params);
-
-   void    OCIXmlDbFreeXmlCtx(struct xmlctx *xctx);
-
-
-  ------------------------------------------------------------------------
-   EXAMPLES
-   
-   NOTES
-
-   MODIFIED   (MM/DD/YY)
-   ataracha    05/28/03 - change names
-   ataracha    02/18/03 - add oratypes, remove XMLERR_*
-   imacky      02/01/03 - remove xml.h; xdbs fix
-   ataracha    01/24/03 - use "struct xmlctx" instead of xmlctx
-   imacky      01/28/03 - fix XMLERR defs
-   ataracha    01/21/03 - ataracha_uni_capi_cleanup
-   ataracha    01/09/03 - Creation
-
-*/
-
-#ifndef ORATYPES 
-#include <oratypes.h> 
-#endif
- 
-#ifndef OCI_ORACLE
-# include <oci.h>
-#endif
-
-#ifndef OCIXMLDB_ORACLE
-# define OCIXMLDB_ORACLE
-
-
-/*---------------------------------------------------------------------------
-                     PUBLIC TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-#ifndef XMLCTX_DEFINED
-# define XMLCTX_DEFINED
-/* DATATYPE xmlctx - XML top-level context
-*/
-struct xmlctx; typedef struct xmlctx xmlctx;
-#endif
-
-typedef enum 
-{
-  XCTXINIT_OCIDUR  = 1,
-  XCTXINIT_ERRHDL  = 2
-} ocixmldbpname;
-
-typedef struct ocixmldbparam
-{
-  ocixmldbpname   name_ocixmldbparam;
-  void           *value_ocixmldbparam;
-} ocixmldbparam;
-
-#define NUM_OCIXMLDBPARAMS 2
-
-/*---------------------------------------------------------------------------
-                     PRIVATE TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                           EXPORT FUNCTIONS
-  ---------------------------------------------------------------------------*/
-/*****************************************************************************
-                              DESCRIPTION
-
------------------------------OCIXmlDbInitXmlCtx---------------------------------
-Name
-OCIXmlDbInitXmlCtx
-Purpose
-To get a xmlctx structure initialized with error-handler and XDB callbacks. 
-Syntax
-struct xmlctx *OCIXmlDbInitXmlCtx (OCIEnv           *envhp,
-                                 OCISvcCtx        *svchp, 
-                                 OCIError         *err, 
-                                 params_ocixmldb *params,
-                                 int               num_params);
-Parameters
-envhp (IN) - The OCI environment handle
-svchp (IN) - The OCI service handle
-errhp (IN) - The OCI error handle
-params (IN)- This contains the following optional parameters :
-   (a) OCIDuration dur (IN - The OCI Duration (Default: OCI_DURATION_SESSION)
-   (b) void (*err_handler) (sword, (const oratext *) (IN) - 
-       Pointer to the error handling function (Default: null)
-num_params (IN) - Number of parameters to be read from parameter params.
-                  If the value of num_params exceeds the size of array 
-                  "params", unexpected behavior will result.
-
-Returns
-A pointer to xmlctx structure, with xdb context, error handler and callbacks 
-populated with appropriate values. This is later used for all API calls. NULL
-if no database connection available.
-
------------------------------OCIXmlDbFreeXmlCtx----------------------------
-Name
-OCIXmlDbFreeXmlCtx
-Pupose
-To free any allocations done during OCIXmlDbInitXmlCtx.
-Syntax
-void OCIXmlDbFreeXmlCtx (struct xmlctx *xctx)
-Parameters
-xctx (IN) - The xmlctx to terminate
-Returns
--
-******************************************************************************/
-
-struct xmlctx *OCIXmlDb_CtxInit(OCIEnv *, OCISvcCtx *, OCIError *, 
-                            ocixmldbparam *, int);
-
-void    OCIXmlDb_CtxFree(struct xmlctx *xctx);
-
-struct xmlctx *OCIXmlDbInitXmlCtx(OCIEnv *, OCISvcCtx *, OCIError *, 
-                            ocixmldbparam *, int);
-
-void    OCIXmlDbFreeXmlCtx(struct xmlctx *xctx);
-/*---------------------------------------------------------------------------
-                          INTERNAL FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-#endif                                              /* OCIXMLDB_ORACLE */
diff --git a/src/terralib/drivers/Oracle/OCI/include/odci.h b/src/terralib/drivers/Oracle/OCI/include/odci.h
deleted file mode 100644
index 7a1bb22..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/odci.h
+++ /dev/null
@@ -1,657 +0,0 @@
-/*
- * $Header$
- */
-
-/* Copyright (c) 1998, 2003, Oracle Corporation.  All rights reserved.  */
- 
-/* 
-   NAME 
-     odci.h - Oracle Data Cartridge Interface definitions
-
-   DESCRIPTION 
-     This file contains Oracle Data Cartridge Interface definitions. These
-     include the ODCI Types and Constants.
-
-   RELATED DOCUMENTS 
- 
-   INSPECTION STATUS 
-     Inspection date: 
-     Inspection status: 
-     Estimated increasing cost defects per page: 
-     Rule sets: 
- 
-   ACCEPTANCE REVIEW STATUS 
-     Review date: 
-     Review status: 
-     Reviewers: 
- 
-   PUBLIC FUNCTION(S) 
-     None.
-
-   PRIVATE FUNCTION(S)
-     None.
-
-   EXAMPLES
-
-   NOTES
-     - The constants defined here are replica of the constants defined 
-       in ODCIConst Package defined as part of catodci.sql. If you change
-       these do make the similar change in catodci.sql.
-
-   MODIFIED   (MM/DD/YY)
-   ayoaz       04/21/03 - add CursorNum to ODCIEnv
-   abrumm      12/30/02 - Bug #2223225: add define for
-                          ODCI_ARG_DESC_LIST_MAXSIZE
-   ayoaz       10/14/02 - Add Cardinality to ODCIArgDesc
-   ayoaz       09/11/02 - add ODCIQueryInfo to ODCIIndexCtx
-   yhu         09/19/02 - add ODCI_DEBUGGING_ON for ODCIEnv.EnvFlags
-   hsbedi      10/10/02 - add object number into ODCIExtTableInfo
-   ayoaz       08/30/02 - add ODCITable2 types
-   tchorma     07/29/02 - Add ODCIFuncCallInfo type for WITH COLUMN CONTEXT
-   hsbedi      06/29/02 - External table populate
-   yhu         07/20/01 - add parallel degree in ODCIIndexInfo.
-   abrumm      02/20/01 - ODCIExtTableInfo: add AccessParmBlob attribute
-   abrumm      01/18/01 - ODCIExtTableInfo: add default directory
-   spsundar    08/24/00 - Update attrbiute positions
-   abrumm      08/04/00 - external tables changes: ODCIExtTableInfo, constants
-   tchorma     09/11/00 - Add return code ODCI_FATAL
-   tchorma     08/08/00 - Add Update Block References Option for Alter Index
-   ayoaz       08/01/00 - Add ODCI_AGGREGATE_REUSE_CTX
-   spsundar    06/19/00 - add ODCIEnv type
-   abrumm      06/27/00 - add defines for ODCIExtTable flags
-   abrumm      06/04/00 - external tables: ODCIExtTableInfo change; add ODCIEnv
-   ddas        04/28/00 - extensible optimizer enhancements for 8.2
-   yhu         06/05/00 - add a bit in IndexInfoFlags for trans. tblspc
-   yhu         04/10/00 - add ODCIPartInfo & remove ODCIIndexPartList
-   abrumm      03/29/00 - external table support
-   spsundar    02/14/00 - update odci definitions for 8.2
-   nagarwal    03/07/99 - bug# 838308 - set estimate_stats=1
-   rmurthy     11/09/98 - add blocking flag
-   ddas        10/31/98 - add ODCI_QUERY_SORT_ASC and ODCI_QUERY_SORT_DESC
-   ddas        05/26/98 - fix ODCIPredInfo flag bits
-   rmurthy     06/03/98 - add macro for RegularCall
-   spsundar    05/08/98 - add constants related to ODCIIndexAlter options
-   rmurthy     04/30/98 - remove include s.h
-   rmurthy     04/20/98 - name fixes
-   rmurthy     04/13/98 - add C mappings for odci types
-   alsrivas    04/10/98 - adding defines for ODCI_INDEX1
-   jsriniva    04/04/98 - Creation
-
-*/
-
-#ifndef OCI_ORACLE
-# include <oci.h>
-#endif
-#ifndef ODCI_ORACLE
-# define ODCI_ORACLE
-
-/*---------------------------------------------------------------------------*/
-/*                         SHORT NAMES SUPPORT SECTION                       */
-/*---------------------------------------------------------------------------*/
-
-#ifdef SLSHORTNAME
-
-/* The following are short names that are only supported on IBM mainframes
- *   with the SLSHORTNAME defined.
- * With this all subsequent long names will actually be substituted with
- *  the short names here
- */
-
-#define ODCIColInfo_ref             odcicir
-#define ODCIColInfoList             odcicil
-#define ODCIColInfoList2            odcicil2
-#define ODCIIndexInfo_ref           odciiir
-#define ODCIPredInfo_ref            odcipir
-#define ODCIRidList                 odcirl
-#define ODCIIndexCtx_ref            odciicr
-#define ODCIObject_ref              odcior
-#define ODCIObjectList              odciol
-#define ODCIQueryInfo_ref           odciqir
-#define ODCIFuncInfo_ref            odcifir
-#define ODCICost_ref                odcicr
-#define ODCIArgDesc_ref             odciadr
-#define ODCIArgDescList             odciadl
-#define ODCIStatsOptions_ref        odcisor
-#define ODCIColInfo                 odcici
-#define ODCIColInfo_ind             odcicii
-#define ODCIIndexInfo               odciii
-#define ODCIIndexInfo_ind           odciiii
-#define ODCIPredInfo                odcipi
-#define ODCIPredInfo_ind            odcipii
-#define ODCIIndexCtx                odciic
-#define ODCIIndexCtx_ind            odciici
-#define ODCIObject                  odcio
-#define ODCIObject_ind              odcioi
-#define ODCIQueryInfo               odciqi
-#define ODCIQueryInfo_ind           odciqii
-#define ODCIFuncInfo                odcifi
-#define ODCIFuncInfo_infd           odcifii
-#define ODCICost                    odcic
-#define ODCICost_ind                odcici
-#define ODCIArgDesc                 odciad
-#define ODCIArgDesc_ind             odciadi
-#define ODCIStatsOptions            odciso
-#define ODCIStatsOptions_ind        odcisoi
-#define ODCIPartInfo                odcipti
-#define ODCIPartInfo_ind            odciptii
-#define ODCIPartInfo_ref            odciptir
-#define ODCIExtTableInfo            odcixt
-#define ODCIExtTableInfo_ind        odcixti
-#define ODCIExtTableInfo_ref        odcixtr
-#define ODCIExtTableQCInfo          odcixq
-#define ODCIExtTableQCInfo_ind      odcixqi
-#define ODCIExtTableQCInfo_ref      odcixqr
-#define ODCIFuncCallInfo            odcifc
-#define ODCIFuncCall_ind            odcifci
-#define ODCIFuncCall_ref            odcifcr
-
-#endif                                                        /* SLSHORTNAME */
-
-/*---------------------------------------------------------------------------
-                     PUBLIC TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-/* Constants for Return Status */
-#define ODCI_SUCCESS             0
-#define ODCI_ERROR               1
-#define ODCI_WARNING             2
-#define ODCI_ERROR_CONTINUE      3
-#define ODCI_FATAL               4
-
-/* Constants for ODCIPredInfo.Flags */
-#define ODCI_PRED_EXACT_MATCH    0x0001
-#define ODCI_PRED_PREFIX_MATCH   0x0002
-#define ODCI_PRED_INCLUDE_START  0x0004
-#define ODCI_PRED_INCLUDE_STOP   0x0008
-#define ODCI_PRED_OBJECT_FUNC    0x0010
-#define ODCI_PRED_OBJECT_PKG     0x0020
-#define ODCI_PRED_OBJECT_TYPE    0x0040
-#define ODCI_PRED_MULTI_TABLE    0x0080
-
-/* Constants for QueryInfo.Flags */
-#define ODCI_QUERY_FIRST_ROWS    0x01
-#define ODCI_QUERY_ALL_ROWS      0x02
-#define ODCI_QUERY_SORT_ASC      0x04
-#define ODCI_QUERY_SORT_DESC     0x08
-#define ODCI_QUERY_BLOCKING      0x10
-
-/* Constants for ScnFlg(Func /w Index Context) */
-#define ODCI_CLEANUP_CALL        1
-#define ODCI_REGULAR_CALL        2
-
-/* Constants for ODCIFuncInfo.Flags */
-#define ODCI_OBJECT_FUNC         0x01
-#define ODCI_OBJECT_PKG          0x02
-#define ODCI_OBJECT_TYPE         0x04
-
-/* Constants for ODCIArgDesc.ArgType */
-#define ODCI_ARG_OTHER           1
-#define ODCI_ARG_COL             2                                 /* column */
-#define ODCI_ARG_LIT             3                                /* literal */
-#define ODCI_ARG_ATTR            4                       /* object attribute */
-#define ODCI_ARG_NULL            5
-#define ODCI_ARG_CURSOR          6
-
-/* Maximum size of ODCIArgDescList array */
-#define ODCI_ARG_DESC_LIST_MAXSIZE 32767
-
-/* Constants for ODCIStatsOptions.Options */
-#define ODCI_PERCENT_OPTION      1
-#define ODCI_ROW_OPTION          2
-
-/* Constants for ODCIStatsOptions.Flags */
-#define ODCI_ESTIMATE_STATS     0x01
-#define ODCI_COMPUTE_STATS      0x02
-#define ODCI_VALIDATE           0x04
-
-/* Constants for ODCIIndexAlter parameter alter_option */
-#define ODCI_ALTIDX_NONE               0
-#define ODCI_ALTIDX_RENAME             1
-#define ODCI_ALTIDX_REBUILD            2
-#define ODCI_ALTIDX_REBUILD_ONL        3
-#define ODCI_ALTIDX_MODIFY_COL         4
-#define ODCI_ALTIDX_UPDATE_BLOCK_REFS  5
-
-/* Constants for ODCIIndexInfo.IndexInfoFlags */
-#define ODCI_INDEX_LOCAL         0x0001
-#define ODCI_INDEX_RANGE_PARTN   0x0002
-#define ODCI_INDEX_HASH_PARTN    0x0004
-#define ODCI_INDEX_ONLINE        0x0008
-#define ODCI_INDEX_PARALLEL      0x0010
-#define ODCI_INDEX_UNUSABLE      0x0020
-#define ODCI_INDEX_ONIOT         0x0040
-#define ODCI_INDEX_TRANS_TBLSPC  0x0080
-#define ODCI_INDEX_FUNCTION_IDX  0x0100
-
-/* Constants for ODCIIndexInfo.IndexParaDegree */
-#define ODCI_INDEX_DEFAULT_DEGREE 32767
-
-/* Constants for ODCIEnv.EnvFlags */
-#define ODCI_DEBUGGING_ON        0x01
-
-/* Constants for ODCIEnv.CallProperty */
-#define ODCI_CALL_NONE           0
-#define ODCI_CALL_FIRST          1
-#define ODCI_CALL_INTERMEDIATE   2
-#define ODCI_CALL_FINAL          3
-
-/* Constants for ODCIExtTableInfo.OpCode */
-#define ODCI_EXTTABLE_INFO_OPCODE_FETCH           1
-#define ODCI_EXTTABLE_INFO_OPCODE_POPULATE        2
-
-/* Constants (bit definitions) for ODCIExtTableInfo.Flag */
-    /* sampling type: row or block */
-#define ODCI_EXTTABLE_INFO_FLAG_SAMPLE           0x00000001
-#define ODCI_EXTTABLE_INFO_FLAG_SAMPLE_BLOCK     0x00000002
-    /* AccessParmClob, AccessParmBlob discriminator */
-#define ODCI_EXTTABLE_INFO_FLAG_ACCESS_PARM_CLOB 0x00000004
-#define ODCI_EXTTABLE_INFO_FLAG_ACCESS_PARM_BLOB 0x00000008
-
-/* Constants for ODCIExtTableInfo.IntraSourceConcurrency */
-#define ODCI_TRUE  1
-#define ODCI_FALSE 0
-
-/* Constants (bit definitions) for ODCIExtTable{Open,Fetch,Populate,Close}
- * Flag argument.
- */
-#define ODCI_EXTTABLE_OPEN_FLAGS_QC     0x00000001  /* caller is Query Coord */
-#define ODCI_EXTTABLE_OPEN_FLAGS_SHADOW 0x00000002  /* caller is shadow proc */
-#define ODCI_EXTTABLE_OPEN_FLAGS_SLAVE  0x00000004  /* caller is slave  proc */
-
-#define ODCI_EXTTABLE_FETCH_FLAGS_EOS   0x00000001 /* end-of-stream on fetch */
-
-/* Constants for Flags argument to ODCIAggregateTerminate */
-#define ODCI_AGGREGATE_REUSE_CTX  1
-
-/*---------------------------------------------------------------------------
-                     ODCI TYPES
-  ---------------------------------------------------------------------------*/
-/*
- * These are C mappings for the OTS types defined in catodci.sql
- */
-
-typedef OCIRef   ODCIColInfo_ref;
-typedef OCIArray ODCIColInfoList;
-typedef OCIArray ODCIColInfoList2;
-typedef OCIRef   ODCIIndexInfo_ref;
-typedef OCIRef   ODCIPredInfo_ref;
-typedef OCIArray ODCIRidList;
-typedef OCIRef   ODCIIndexCtx_ref;
-typedef OCIRef   ODCIObject_ref;
-typedef OCIArray ODCIObjectList;
-typedef OCIRef   ODCIQueryInfo_ref;
-typedef OCIRef   ODCIFuncInfo_ref;
-typedef OCIRef   ODCICost_ref;
-typedef OCIRef   ODCIArgDesc_ref;
-typedef OCIArray ODCIArgDescList;
-typedef OCIRef   ODCIStatsOptions_ref;
-typedef OCIRef ODCIPartInfo_ref;
-typedef OCIRef   ODCIEnv_ref;
-typedef OCIRef   ODCIExtTableInfo_ref;             /* external table support */
-typedef OCIArray ODCIGranuleList;                  /* external table support */
-typedef OCIRef   ODCIExtTableQCInfo_ref;           /* external table support */
-typedef OCIRef   ODCIFuncCallInfo_ref;
-typedef OCIArray ODCINumberList;
- 
-struct ODCIColInfo
-{
-   OCIString* TableSchema;
-   OCIString* TableName;
-   OCIString* ColName;
-   OCIString* ColTypName;
-   OCIString* ColTypSchema;
-   OCIString* TablePartition;
-};
-typedef struct ODCIColInfo ODCIColInfo;
- 
-struct ODCIColInfo_ind
-{
-   OCIInd atomic;
-   OCIInd TableSchema;
-   OCIInd TableName;
-   OCIInd ColName;
-   OCIInd ColTypName;
-   OCIInd ColTypSchema;
-   OCIInd TablePartition;
-};
-typedef struct ODCIColInfo_ind ODCIColInfo_ind;
-
-struct ODCIFuncCallInfo
-{
-   struct ODCIColInfo ColInfo;
-};
-
-struct ODCIFuncCallInfo_ind
-{
-  struct ODCIColInfo_ind ColInfo;
-};
- 
-struct ODCIIndexInfo
-{
-   OCIString*       IndexSchema;
-   OCIString*       IndexName;
-   ODCIColInfoList* IndexCols;
-   OCIString*       IndexPartition;
-   OCINumber        IndexInfoFlags;
-   OCINumber        IndexParaDegree;
-};
-typedef struct ODCIIndexInfo ODCIIndexInfo;
- 
-struct ODCIIndexInfo_ind
-{
-   OCIInd atomic;
-   OCIInd IndexSchema;
-   OCIInd IndexName;
-   OCIInd IndexCols;
-   OCIInd IndexPartition;
-   OCIInd IndexInfoFlags;
-   OCIInd IndexParaDegree;
-};
-typedef struct ODCIIndexInfo_ind ODCIIndexInfo_ind;
- 
-struct ODCIPredInfo
-{
-   OCIString* ObjectSchema;
-   OCIString* ObjectName;
-   OCIString* MethodName;
-   OCINumber  Flags;
-};
-typedef struct ODCIPredInfo ODCIPredInfo;
- 
-struct ODCIPredInfo_ind
-{
-   OCIInd atomic;
-   OCIInd ObjectSchema;
-   OCIInd ObjectName;
-   OCIInd MethodName;
-   OCIInd Flags;
-};
-typedef struct ODCIPredInfo_ind ODCIPredInfo_ind;
- 
-struct ODCIObject
-{
-   OCIString* ObjectSchema;
-   OCIString* ObjectName;
-};
-typedef struct ODCIObject ODCIObject;
- 
-struct ODCIObject_ind
-{
-   OCIInd atomic;
-   OCIInd ObjectSchema;
-   OCIInd ObjectName;
-};
-typedef struct ODCIObject_ind ODCIObject_ind;
- 
-struct ODCIQueryInfo
-{
-   OCINumber       Flags;
-   ODCIObjectList* AncOps;
-};
-typedef struct ODCIQueryInfo ODCIQueryInfo;
-
- 
-struct ODCIQueryInfo_ind
-{
-   OCIInd atomic;
-   OCIInd Flags;
-   OCIInd AncOps;
-};
-typedef struct ODCIQueryInfo_ind ODCIQueryInfo_ind;
- 
-struct ODCIIndexCtx
-{
-   struct ODCIIndexInfo IndexInfo;
-   OCIString*           Rid;
-   struct ODCIQueryInfo QueryInfo;
-};
-typedef struct ODCIIndexCtx ODCIIndexCtx;
- 
-struct ODCIIndexCtx_ind
-{
-   OCIInd                   atomic;
-   struct ODCIIndexInfo_ind IndexInfo;
-   OCIInd                   Rid;
-   struct ODCIQueryInfo_ind QueryInfo;
-};
-typedef struct ODCIIndexCtx_ind ODCIIndexCtx_ind;
- 
-struct ODCIFuncInfo
-{
-   OCIString* ObjectSchema;
-   OCIString* ObjectName;
-   OCIString* MethodName;
-   OCINumber Flags;
-};
-typedef struct ODCIFuncInfo ODCIFuncInfo;
- 
-struct ODCIFuncInfo_ind
-{
-   OCIInd atomic;
-   OCIInd ObjectSchema;
-   OCIInd ObjectName;
-   OCIInd MethodName;
-   OCIInd Flags;
-};
-typedef struct ODCIFuncInfo_ind ODCIFuncInfo_ind;
- 
-struct ODCICost
-{
-   OCINumber  CPUcost;
-   OCINumber  IOcost;
-   OCINumber  NetworkCost;
-   OCIString* IndexCostInfo;
-};
-typedef struct ODCICost ODCICost;
- 
-struct ODCICost_ind
-{
-   OCIInd atomic;
-   OCIInd CPUcost;
-   OCIInd IOcost;
-   OCIInd NetworkCost;
-   OCIInd IndexCostInfo;
-};
-typedef struct ODCICost_ind ODCICost_ind;
- 
-struct ODCIArgDesc
-{
-   OCINumber  ArgType;
-   OCIString* TableName;
-   OCIString* TableSchema;
-   OCIString* ColName;
-   OCIString* TablePartitionLower;
-   OCIString* TablePartitionUpper;
-   OCINumber  Cardinality;
-};
-typedef struct ODCIArgDesc ODCIArgDesc;
- 
-struct ODCIArgDesc_ind
-{
-   OCIInd atomic;
-   OCIInd ArgType;
-   OCIInd TableName;
-   OCIInd TableSchema;
-   OCIInd ColName;
-   OCIInd TablePartitionLower;
-   OCIInd TablePartitionUpper;
-   OCIInd Cardinality;
-};
-typedef struct ODCIArgDesc_ind ODCIArgDesc_ind;
- 
-struct ODCIStatsOptions
-{
-   OCINumber Sample;
-   OCINumber Options;
-   OCINumber Flags;
-};
-typedef struct ODCIStatsOptions ODCIStatsOptions;
- 
-struct ODCIStatsOptions_ind
-{
-   OCIInd atomic;
-   OCIInd Sample;
-   OCIInd Options;
-   OCIInd Flags;
-};
-typedef struct ODCIStatsOptions_ind ODCIStatsOptions_ind;
-
-struct ODCIEnv
-{
-   OCINumber EnvFlags;
-   OCINumber CallProperty;
-   OCINumber DebugLevel;
-   OCINumber CursorNum;
-};
-typedef struct ODCIEnv ODCIEnv;
-
-struct ODCIEnv_ind
-{
-   OCIInd _atomic;
-   OCIInd EnvFlags;
-   OCIInd CallProperty;
-   OCIInd DebugLevel;
-   OCIInd CursorNum;
-};
-typedef struct ODCIEnv_ind ODCIEnv_ind;
- 
-struct ODCIPartInfo
-{
-   OCIString* TablePartition;
-   OCIString* IndexPartition;
-};
-typedef struct ODCIPartInfo ODCIPartInfo;
- 
-struct ODCIPartInfo_ind
-{
-   OCIInd atomic;
-   OCIInd TablePartition;
-   OCIInd IndexPartition;
-};
-typedef struct ODCIPartInfo_ind ODCIPartInfo_ind;
-
-/*---------- External Tables ----------*/
-struct ODCIExtTableInfo
-{
-   OCIString*       TableSchema;
-   OCIString*       TableName;
-   ODCIColInfoList* RefCols;
-   OCIClobLocator*  AccessParmClob;
-   OCIBlobLocator*  AccessParmBlob;
-   ODCIArgDescList* Locations;
-   ODCIArgDescList* Directories;
-   OCIString*       DefaultDirectory;
-   OCIString*       DriverType;
-   OCINumber        OpCode;
-   OCINumber        AgentNum;
-   OCINumber        GranuleSize;
-   OCINumber        Flag;
-   OCINumber        SamplePercent;
-   OCINumber        MaxDoP;
-   OCIRaw*          SharedBuf;
-   OCIString*       MTableName;
-   OCIString*       MTableSchema;
-   OCINumber        TableObjNo;
-};
-typedef struct ODCIExtTableInfo ODCIExtTableInfo;
-
-struct ODCIExtTableInfo_ind
-{
-   OCIInd _atomic;
-   OCIInd TableSchema;
-   OCIInd TableName;
-   OCIInd RefCols;
-   OCIInd AccessParmClob;
-   OCIInd AccessParmBlob;
-   OCIInd Locations;
-   OCIInd Directories;
-   OCIInd DefaultDirectory;
-   OCIInd DriverType;
-   OCIInd OpCode;
-   OCIInd AgentNum;
-   OCIInd GranuleSize;
-   OCIInd Flag;
-   OCIInd SamplePercent;
-   OCIInd MaxDoP;
-   OCIInd SharedBuf;
-   OCIInd MTableName;
-   OCIInd MTableSchema;
-   OCIInd TableObjNo;
-};
-typedef struct ODCIExtTableInfo_ind ODCIExtTableInfo_ind;
-
-struct ODCIExtTableQCInfo
-{
-   OCINumber        NumGranules;
-   OCINumber        NumLocations;
-   ODCIGranuleList* GranuleInfo;
-   OCINumber        IntraSourceConcurrency;
-   OCINumber        MaxDoP;
-   OCIRaw*          SharedBuf;
-};
-typedef struct ODCIExtTableQCInfo ODCIExtTableQCInfo;
-
-struct ODCIExtTableQCInfo_ind
-{
-   OCIInd _atomic;
-   OCIInd NumGranules;
-   OCIInd NumLocations;
-   OCIInd GranuleInfo;
-   OCIInd IntraSourceConcurrency;
-   OCIInd MaxDoP;
-   OCIInd SharedBuf;
-};
-typedef struct ODCIExtTableQCInfo_ind ODCIExtTableQCInfo_ind;
-
-/*********************************************************/
-/* Table Function Info types (used by ODCITablePrepare)  */
-/*********************************************************/
-
-struct ODCITabFuncInfo
-{
-  ODCINumberList*  Attrs;
-  OCIType*         RetType;
-};
-typedef struct ODCITabFuncInfo ODCITabFuncInfo;
-
-struct ODCITabFuncInfo_ind
-{
-  OCIInd _atomic;
-  OCIInd Attrs;
-  OCIInd RetType;
-};
-typedef struct ODCITabFuncInfo_ind ODCITabFuncInfo_ind;
-
-/*********************************************************************/
-/* Table Function Statistics types (used by ODCIStatsTableFunction)  */
-/*********************************************************************/
-
-struct ODCITabFuncStats
-{
-  OCINumber num_rows;
-};
-typedef struct ODCITabFuncStats ODCITabFuncStats;
-
-struct ODCITabFuncStats_ind
-{
-  OCIInd _atomic;
-  OCIInd num_rows;
-};
-typedef struct ODCITabFuncStats_ind ODCITabFuncStats_ind;
-
-/*---------------------------------------------------------------------------
-                     PRIVATE TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                           PUBLIC FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                          PRIVATE FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-
-#endif                                              /* ODCI_ORACLE */
diff --git a/src/terralib/drivers/Oracle/OCI/include/oratypes.h b/src/terralib/drivers/Oracle/OCI/include/oratypes.h
deleted file mode 100644
index 5e86403..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/oratypes.h
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
-  Copyright (c) 1982, 2003, Oracle.  All rights reserved.
-*/
-
-/*
- * $Header$
- */
- 
-
- 
-#ifndef ORATYPES
-# define ORATYPES
-# define SX_ORACLE
-# define SX3_ORACLE 
-
-#ifndef ORASTDDEF
-# include <stddef.h>
-# define ORASTDDEF
-#endif
-
-#ifndef ORALIMITS
-# include <limits.h>
-# define ORALIMITS
-#endif
-
-#ifndef TRUE
-# define TRUE  1
-# define FALSE 0
-#endif
-
-
-#ifndef lint 
-typedef unsigned char  ub1;                   
-typedef   signed char  sb1;                  
-#else 
-#define ub1 unsigned char 
-#define sb1 signed char 
-#endif 
- 
-#define UB1MAXVAL ((ub1)UCHAR_MAX) 
-#define UB1MINVAL ((ub1)        0) 
-#define SB1MAXVAL ((sb1)SCHAR_MAX) 
-#define SB1MINVAL ((sb1)SCHAR_MIN) 
-#define MINUB1MAXVAL ((ub1)  255) 
-#define MAXUB1MINVAL ((ub1)    0) 
-#define MINSB1MAXVAL ((sb1)  127) 
-#define MAXSB1MINVAL ((sb1) -127) 
- 
- 
-#ifndef lint 
-typedef unsigned short    ub2;                
-typedef   signed short    sb2;   
-typedef	unsigned short	utext;
-#else 
-#define ub2  unsigned short 
-#define sb2  signed short 
-#define utext  unsigned short 
-#endif
-
-#define UB2MAXVAL ((ub2)USHRT_MAX) 
-#define UB2MINVAL ((ub2)        0) 
-#define SB2MAXVAL ((sb2) SHRT_MAX) 
-#define SB2MINVAL ((sb2) SHRT_MIN) 
-#define MINUB2MAXVAL ((ub2) 65535) 
-#define MAXUB2MINVAL ((ub2)     0) 
-#define MINSB2MAXVAL ((sb2) 32767) 
-#define MAXSB2MINVAL ((sb2)-32767) 
-  
-
-#ifndef lint 
-typedef unsigned int  ub4;                   
-typedef   signed int  sb4;                   
-#else 
-#define eb4 int 
-#define ub4 unsigned int 
-#define sb4 signed int 
-#endif 
- 
-#define UB4MAXVAL ((ub4)UINT_MAX) 
-#define UB4MINVAL ((ub4)        0) 
-#define SB4MAXVAL ((sb4) INT_MAX) 
-#define SB4MINVAL ((sb4) INT_MIN) 
-#define MINUB4MAXVAL ((ub4) 4294967295) 
-#define MAXUB4MINVAL ((ub4)          0) 
-#define MINSB4MAXVAL ((sb4) 2147483647) 
-#define MAXSB4MINVAL ((sb4)-2147483647) 
-
-
-/* --- Signed/Unsigned eight-byte scalar (orasb8/oraub8) --- */
-
-#define ORAXB8_DEFINED
-#ifndef lint
- typedef unsigned  /*_int64*/ int oraub8;
- typedef signed /*_int64*/ int orasb8;
- typedef oraub8 ub8;
- typedef orasb8 sb8;
-#else
-# define ub8 oraub8
-# define sb8 orasb8
-# define oraub8 unsigned int /*_int64*/
-# define orasb8 signed int /*_int64*/
-#endif /* !lint */
-
-#define ORAUB8MINVAL    ((oraub8)0)
-#define ORAUB8MAXVAL    ((oraub8)18446744073709551615)
-#define ORASB8MINVAL    ((orasb8)-9223372036854775808)
-#define ORASB8MAXVAL    ((orasb8) 9223372036854775807)
-
-#define MAXORAUB8MINVAL ((oraub8)0)
-#define MINORAUB8MAXVAL ((oraub8)18446744073709551615)
-#define MAXORASB8MINVAL ((orasb8)-9223372036854775807)
-#define MINORASB8MAXVAL ((orasb8) 9223372036854775807)
-
-
-#define UB1BITS          CHAR_BIT
-#define UB1MASK          ((1 << ((uword)CHAR_BIT)) - 1)
-
-
-#ifdef lint
-# define oratext unsigned char
-#else
-  typedef  unsigned char oratext;
-#endif
-
-
-#ifndef lint 
-typedef          char     eb1;
-typedef          short    eb2;               
-typedef          int      eb4;               
-#else
-# define         eb1      char
-# define         eb2      short
-# define         eb4      int
-#endif
-
-#define EB1MAXVAL      ((eb1)SCHAR_MAX) 
-#define EB1MINVAL      ((eb1)        0) 
-#define MINEB1MAXVAL   ((eb1)  127) 
-#define MAXEB1MINVAL   ((eb1)    0) 
-#define EB2MAXVAL      ((eb2) SHRT_MAX) 
-#define EB2MINVAL      ((eb2)        0) 
-#define MINEB2MAXVAL   ((eb2) 32767) 
-#define MAXEB2MINVAL   ((eb2)     0) 
-#define EB4MAXVAL      ((eb4) INT_MAX) 
-#define EB4MINVAL      ((eb4)        0) 
-#define MINEB4MAXVAL   ((eb4) 2147483647) 
-#define MAXEB4MINVAL   ((eb4)          0) 
-
-
-
-
-#ifndef lint 
-typedef         sb1  b1;                   
-#else 
-#define         b1 sb1 
-#endif  
-#define  B1MAXVAL  SB1MAXVAL 
-#define  B1MINVAL  SB1MINVAL 
- 
-#ifndef lint 
-typedef         sb2      b2;              
-#else 
-#define         b2 sb2 
-#endif  
-#define  B2MAXVAL  SB2MAXVAL 
-#define  B2MINVAL  SB2MINVAL 
- 
-#ifndef lint 
-typedef         sb4    b4;                
-#else 
-#define         b4 sb4 
-#endif  
-# define  B4MAXVAL  SB4MAXVAL 
-# define  B4MINVAL  SB4MINVAL 
- 
-
-#if !defined(LUSEMFC)
-# ifdef lint
-#  define text unsigned char
-# else
-   typedef oratext text;
-# endif
-#endif
-
-#ifdef lint
-# define OraText unsigned char
-#else
-  typedef oratext OraText;
-#endif
-
-#ifndef lint
-typedef          int eword;                  
-typedef unsigned int uword;                  
-typedef   signed int sword;                  
-#else
-#define eword int
-#define uword unsigned int
-#define sword signed int
-#endif 
-
-#define  EWORDMAXVAL  ((eword) INT_MAX)
-#define  EWORDMINVAL  ((eword)       0)
-#define  UWORDMAXVAL  ((uword)UINT_MAX)
-#define  UWORDMINVAL  ((uword)       0)
-#define  SWORDMAXVAL  ((sword) INT_MAX)
-#define  SWORDMINVAL  ((sword) INT_MIN)
-#define  MINEWORDMAXVAL  ((eword)  2147483647)
-#define  MAXEWORDMINVAL  ((eword)      0)
-#define  MINUWORDMAXVAL  ((uword)  4294967295)
-#define  MAXUWORDMINVAL  ((uword)           0)
-#define  MINSWORDMAXVAL  ((sword)  2147483647)
-#define  MAXSWORDMINVAL  ((sword) -2147483647)
-
- 
-#ifdef _WIN64
-
-#ifndef lint
-typedef unsigned _int64 ubig_ora;     
-typedef   signed _int64 sbig_ora;     
-#else
-#define ubig_ora unsigned _int64
-#define sbig_ora signed _int64
-#endif 
-
-#define UBIG_ORAMAXVAL ((ubig_ora)_UI64_MAX)
-#define UBIG_ORAMINVAL ((ubig_ora)        0)
-#define SBIG_ORAMAXVAL ((sbig_ora) _I64_MAX)
-#define SBIG_ORAMINVAL ((sbig_ora) _I64_MIN)
-#define MINUBIG_ORAMAXVAL ((ubig_ora) 4294967295)
-#define MAXUBIG_ORAMINVAL ((ubig_ora)          0)
-#define MINSBIG_ORAMAXVAL ((sbig_ora) 2147483647)
-#define MAXSBIG_ORAMINVAL ((sbig_ora)-2147483647)
-
-#else
-
-#ifndef lint
-typedef unsigned long  ubig_ora;             
-typedef   signed long  sbig_ora;             
-#else
-#define ubig_ora unsigned long
-#define sbig_ora signed long
-#endif 
-
-#define UBIG_ORAMAXVAL ((ubig_ora)ULONG_MAX)
-#define UBIG_ORAMINVAL ((ubig_ora)        0)
-#define SBIG_ORAMAXVAL ((sbig_ora) LONG_MAX)
-#define SBIG_ORAMINVAL ((sbig_ora) LONG_MIN)
-#define MINUBIG_ORAMAXVAL ((ubig_ora) 4294967295)
-#define MAXUBIG_ORAMINVAL ((ubig_ora)          0)
-#define MINSBIG_ORAMAXVAL ((sbig_ora) 2147483647)
-#define MAXSBIG_ORAMINVAL ((sbig_ora)-2147483647)
-
-#endif    /* _WIN64 */
-
-#define UBIGORABITS      (UB1BITS * sizeof(ubig_ora))
-
-
-#undef CONST
-#define CONST const
-
-
-#define dvoid void
-
-
-typedef void (*lgenfp_t)( void );
-
-
-#ifndef ORASYS_TYPES
-# include <sys/types.h>
-# define ORASYS_TYPES
-#endif 
-
-/* Define "boolean" as int, not int, per Windows custom. */
-# ifndef __RPCNDR_H__            /* don't conflict if rpcndr.h already read */
-	typedef unsigned char boolean; 
-# endif
-
-#ifdef sparc
-# define SIZE_TMAXVAL SB4MAXVAL               
-#else
-# define SIZE_TMAXVAL UB4MAXVAL              
-#endif 
-
-#define MINSIZE_TMAXVAL (size_t)4294967295
-
-
-#if !defined(MOTIF) && !defined(LISPL)  && !defined(__cplusplus) && !defined(LUSEMFC)
-typedef  oratext *string;        
-#endif 
-
- 
-#endif  //ORATYPES
-
-
-
diff --git a/src/terralib/drivers/Oracle/OCI/include/ori.h b/src/terralib/drivers/Oracle/OCI/include/ori.h
deleted file mode 100644
index 3ec7568..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/ori.h
+++ /dev/null
@@ -1,2094 +0,0 @@
-/* Copyright (c) 1994, 2003, Oracle Corporation.  All rights reserved.  */
-
-/*
-  NAME
-    ORI - OCI navigational interface
-
-  DESCRIPTION
-
-    This section is intended to give a brief introduction to the navigational
-    interfaces.  Readers can refer to the documents listed in the section 
-    'RELATED DOCUMENTS' for more information. 
-
-    PURPOSE 
-       The Oracle Call Interface (OCI) supports navigational access of objects.
-       In the navigational paradigm, data is represented as a graph of objects 
-       connected by references.  Objects in the graph are reached by following
-       the references.
-
-    OBJECT ENVIRONMENT
-
-      The object environment is initialized when the OCI environment handle is
-      initialized with the object option.  An object environment contains a
-      heap which buffers type instances in memory.  The object environment also
-      contains an object cache which keeps track of the objects in the object 
-      environment.  Readers can refer to the "Functional Specification for 
-      Programmatic Interface" for more information about the object 
-      environment. 
-
-    INSTANCE, OBJECT AND VALUE
-
-      An OTS instance is an occurence of a type specified by the Oracle Type 
-      System (OTS). This section describes how an OTS instance can be 
-      represented in OCI. In OCI, an OTS instance can be classified based on
-      the type, the lifetime and referencability (see the figure below):
-
-      1) A persistent object is an instance of an object type. A persistent
-         object resides in a row of a table in the server and can exist longer
-         than the duration of a session (connection). Persistent objects can be
-         identified by object references which contain the object identifiers.
-         A persistent object is obtained by pinning its object reference.
-
-      2) A transient object is an instance of an object type. A transient 
-         object cannot exist longer than the duration of a session, and it is 
-         used to contain temporary computing results. Transient objects can 
-         also be identified by references which contain transient object
-         identifiers.
-
-      3) A value is an instance of an user-defined type (object type or 
-         collection type) or any built-in OTS type.  Unlike objects, values of 
-         object types are identified by memory pointers, rather than by 
-         references.  
-
-         A value can be standalone or embbeded.  A standalone value is usually
-         obtained by issuing a select statement.  OCI also allows the client
-         program to select a row of object table into a value by issuing a SQL
-         statement.  Thus, a referenceable object (in the database) can be 
-         represented as a value (which cannot be identified by a reference).
-         A standalone value can also be an out-of-line attribute in an object 
-         (e.g varchar, raw) or an out-of-line element in a collection (e.g.
-         varchar, raw, object).
-      
-         An embedded value is phyiscally included in a containing instance.
-         An embedded value can be an in-line attribute in an object (e.g.
-         number, nested object) or an in-line element in a collection.
-
-         All values are considered to be transient by OCI, e.g. OCI does not
-         support automatic flushing a value to the database, and the client has
-         to explicitly execute a SQL statement to store a value into the 
-         database. For embedded values, they are flushed when their containing
-         instance are flushed.
-
-
-                                OTS instance
-                                 |        |  
-                                 v        v
-                               object    value         (type)
-                               |    |
-                               v    v
-                       persistent  transient           (lifetime)
-                  
- 
-                     persistent obj   transient obj     value  
-      ---------------------------------------------------------------
-      |              |              |               |  object type, |
-      | type         | object type  |  object type  |  built-in,    |
-      |              |              |               |  collection   |
-      ---------------------------------------------------------------
-      | maximum      | until object |  session      | session       |
-      | lifetime     | is deleted   |               |               | 
-      ---------------------------------------------------------------
-      | referencable |    yes       |     yes       |    no         |    
-      ---------------------------------------------------------------
-      | embeddable   |    no        |     no        |    yes        |    
-      ---------------------------------------------------------------
-
-    REFERENCEABLE OBJECT, STANDALONE OBJECT, EMBEDDED OBJECT
-
-       In the reminding of this include file, the following term will be used:
-       1) The term 'object' can be generally referred to a persistent object,
-          a transient object, a standalone value of object type, or an embedded
-          value of object type.
-       2) The term 'referenceable object' refers to a persistent object or a 
-          transient object.
-       3) The term 'standalone object' refers to a persistent object, a
-          transient object or a standalone value of object type.
-       4) The term 'embedded object' referes to a embbeded value of object 
-          type.
-
-    META ATTRIBUTES 
-
-      There is a set of meta-attributes that are defined for standalone 
-      objects.  A meta-attribute can be transient or persistent. A 
-      transient meta-attribute is applicable to an instance only when it is 
-      in memory. A persistent meta-attribute can be applicable to an instance 
-      that is in the disk. 
-
-      The set of user visible meta-attributes for persistent objects are:
-      1) existent (persistent) : Does the object exist?
-      2) nullness (persistent) : Null information of the instance
-      3) locked   (persistent) : Is the object locked?
-      4) pinned    (transient) : Is the object being accessed by the client?
-      5) dirty     (transient) : Has the object been modified?
-      6) allocation duration (transient) : see below
-      7) pin duration        (transient) : see below
-
-      The set of user visible meta-attributes for transient objects are:
-      1) existent  (transient) : Does the object exist?
-      2) nullness  (transient) : Null information of the instance 
-      3) pinned    (transient) : Is the object being accessed by the client? 
-      4) dirty     (transient) : Has the object been modified?
-      4) allocation duration (transient) : see below
-      5) pin duration        (transient) : see below
-
-      The set of user visible meta-attributes for standalone values of object  
-      type or collections are:
-      1) allocation duration (transient) : see below
-      2) nullness            (transient) : Null information of the instance 
-                                           (of an object type)
-
-    NULLNESS OF AN INSTANCE 
-
-      Each standalone object is associated with a null structure which keeps 
-      the null information about the object.  A null indicates the absence of 
-      data. The null structure itself contains null indicators that represent:
-        1) atomic nullness : a null value that pertains to the whole object 
-        2) null status of the individual attribute in the object 
-
-      The layout of a null structure in memory resembles that of the object,
-      except that the null structure has additional indicators to represent 
-      the atomic nullness for each object. 
-
-      An non-existent object is different than an object that is atomically 
-      null. A atomically null object is an existing object that has no data. 
-
-    MEMORY LAYOUT OF AN OBJECT
-
-      A standalone object in memory is composed of a top level memory chunk, 
-      a null structure and optionally, a number of secondary memory chunks. 
-      For a DEPARTMENT object type,
-
-          OBJECT TYPE department
-          {
-              dep_name      varchar2(20),
-              budget        number,
-              manager       person,              /o person is an object type o/
-              employees     collection of person
-          }
-
-      Each instance of DEPARTMENT will has a top level memory chunk which
-      contains the top level attributes such as dep_name, budget, manager and
-      employees.  The attributes dep_name and employees are themselves pointers
-      to the additional memory (the secondary memory chunks). The secondary
-      memory is for the out-of-line attribute (e.g. varray).
-
-    CONSISTENCY MODEL
-
-      Each pin operation behaves like a distinct SQL select.  Thus, the object 
-      cache does not guarantee consistency for a graph of objects.  In order to
-      retrieve a consistent graph of objects, the user has to explicitly start 
-      a serializable transaction or a read-only transaction. 
-
-    DURATION
-      In OCI, a duration is used to specify 
-
-        1) the length of memory allocation of an instance 
-           When each instance is allocated, it is associate with an allocation
-           duration.  The memory occupied by the object is freed automatically 
-           at the end of its allocation duration. The allocation duration of an
-           instance cannot be changed.  
-
-        2) the length of pinning of an object
-           When each object is pinned, the client has to give a pin duration 
-           which specify the length of time that the object is intended to be
-           used.  It is an user error to specify a pin duration longer than an
-           allocation duration of the object. An object is completely unpinned 
-           at the end of its pin duration (see OCIObjectUnpin()). 
-
-      An OCI program can use the allocation duration and the pin duration to 
-      automatically free the memory of the instances:
-       1) Transient objects and values are freed at the end of the allocation
-          duration.
-       2) Persistent objects ARE freed at the end of the allocation duration.
-          Persistent objects CAN be freed at the end of the pin duration when
-          the objects are completely unpinned. The persistent objects are said
-          to be aged out. See OCIObjectUnpin() for more details.
-
-      There are 3 predefined duration: session, transaction, call.  The time 
-      spans of these durations are defined based on the programming model 
-      presented by OCI. The call duration is mapped to the transaction 
-      duration in the client-side environment. See oro.h for the macros defined
-      for these 3 durations.
-
-      A pin duration can be promoted. For example, if an object is pinned with
-      duration 1, and the object is later pinned with duration 2, the pin 
-      routine will try to find a duration that is longer or equal to the 
-      length of both duration 1 and duration 2.  The pin duration of the object
-      is set to the that duration. The object is automatically unpinned only 
-      after both duration 1 and duration 2 are terminated. 
-
-  RELATED DOCUMENTS
-    "Functional Specification for Oracle Object RDBMS" 
-    "Functional Specification for Programmatic Interfaces" 
-    "Functional Specification for the Oracle Type System (OTS)" 
-
-  INSPECTION STATUS 
-    Inspection date:
-    Inspection status:
-    Estimated increasing cost defects per page:
-    Rule sets:        
-
-  ACCEPTANCE REVIEW STATUS 
-    Review date:   
-    Review status:
-    Reviewers: 
-
-  PUBLIC FUNCTIONS
-    OCIObjectNew - OCI new a standalone instance 
-    OCIObjectPin - OCI pin an object by reference
-    OCIObjectUnpin - OCI unpin a referenceable object
-    OCIObjectPinCountReset - OCI reset the pin count of a referenceable object 
-    OCIObjectLock - OCI lock a persistent object
-    OCIObjectLockNoWait - OCI lock a persistent object
-    OCIObjectMarkUpdate - OCI mark a referenceable object as updated
-    OCIObjectUnmark - OCI unmark a dirtied referenceable object 
-    OCIObjectUnmarkByRef - OCI unmark a dirtied object by reference 
-    OCIObjectFree - OCI free a standalone instance 
-    OCIObjectMarkDelete - OCI mark a referenceable object as deleted 
-    OCIObjectMarkDeleteByRef - OCI mark a referenceable object as deleted by 
-                               giving a reference
-    OCIObjectFlush - OCI flush a persistent object
-    OCIObjectRefresh - OCI refresh a persistent object 
-    OCIObjectCopy - OCI CoPy one object to another
-    OCIObjectGetTypeRef - OCI get the Type Reference of a standalone object 
-    OCIObjectGetObjectRef - OCI get the Object's Reference 
-    OCIObjectGetInd - OCI get Null Structure of an standalone object 
-    OCIObjectExists - OCI get the existence of a referenceable object
-    OCIObjectGetProperty - get object property
-    OCIObjectIsLocked - OCI get the lock status of a referenceable object
-    OCIObjectIsDirty - OCI get the dirty status of a referenceable object
-    OCIObjectPinTable - OCI get Table object 
-    OCIObjectArrayPin - OCI pin array of objects 
-    OCIObjectGetPrimayKeyTypeRef - OCI get the Ref for the primary key OID's 
-                                   type 
-    OCIObjectMakeObjectRef - OCI Create a pk or sys generated REF  
-
-    OCIObjectGetNewOID - OCI Create a new Object ID
-
-    OCICacheFlush - OCI flsuh the modified persistent objects in the cache
-    OCICacheRefresh - OCI refresh persistent objects in the cache 
-    OCICacheUnpin - OCI unpin referenceable objects in the cache
-    OCICacheFree - OCI free all instances in the environment
-    OCICacheUnmark - OCI unmark all dirty referenceable objects in the cache 
-
-  PRIVATE FUNCTIONS
-    None
-
-  EXAMPLES 
-
-    The following types will be used in the examples in this section: 
-
-    OBJECT TYPE professor
-    (
-        varchar2  name;
-        number    department;
-        number    num_of_students; 
-    );
-
-    OBJECT TYPE course 
-    (
-        varchar2   name;
-        number     grade; 
-    );
-
-    OBJECT TYPE student
-    (
-        vstring      name;
-        number       department;
-        ref          advisor;                      /o advisor is a professor o/
-        collection   courses;
-    );
-
-    EXAMPLE 1
-
-      Here is a set of examples to illustrate the usages of some of the
-      orio and oric functions.  
-
-      OCIenv    *env;              /o OCI environment handle o/
-      OCIError  *err;              /o OCI error handle o/
-      OCISvcCtx *svc;              /o OCI service handle o/
-
-      dvoid   *stu_tbl;            /o pointer to the student table o/
-      OCIType *stu_tdo;            /o student type tdo o/
-
-      OCIRef    *stu2_ref;         /o object reference to student object o/
-      student   *stu1;             /o pointer to the student object o/
-      student   *stu2;             /o pointer to the student object o/
-      professor *pro;              /o pointer to the professor object o/
-
-      /o Initialize the OCI environment handle, error handle and service
-         handle and login to the database o/ 
-      ...
-
-      /o CREATE A PERSISTENT OBJECT o/
-
-      /o get the table object of student o/
-      if (OCIObjectPinTable(env, err, svc, "ORACLEU", sizeof("ORACLEU"), 
-          "STUDENT_TABLE", sizeof("STUDENT_TABLE"), (OCIRef *)0, 
-          OCI_DURATION_NULL, &stu_tbl) != OCI_SUCCESS)
-          /o error handling code o/ 
-
-      /o get type object of student o/
-      if (OCITypeByName(env, err, svc, "ORACLEU", sizeof("ORACLEU"), 
-          "STUDENT", sizeof("STUDENT"), OCI_DURATION_NULL, OCI_TYPEGET_HEADER,
-          &stu_tdo) != OCI_SUCCESS)
-          /o error handling code o/ 
-
-      /o create a persistent object 'mark' (of type student) o/ 
-      if (OCIObjectNew(env, err, svc, OCI_TYPECODE_ADT, stu_tdo, stu_tbl, 
-            OCI_DURATION_TRANS, (ub1)FALSE, (dvoid **)&stu1) != OCI_SUCCESS)
-          /o error handling code o/
-
-      /o RETRIEVE OBJECTS IN PERSISTENT STORES o/ 
-
-      /o Use OCI to retrieve a reference to student object 'joe'.
-       o The retrieved reference is bound to the variable stu2_ref.
-       o/ 
-
-      /o pin/retrieve the student "joe" by reference o/ 
-      if (OCIObjectPin(env, err, &stu2_ref, (OCIComplexObject *)0, OCI_PIN_ANY,
-                  OCI_DURATION_TRANS, OCI_LOCK_X, &stu2) != OCI_SUCCESS)
-          /o error handling code o/ 
-
-      /o pin/retrieve the advisor of student "joe" by reference o/ 
-      if (OCIObjectPin(env, err, &stu2->advisor, (OCIComplexObject *)0,
-          OCI_PIN_ANY, OCI_DURATION_TRANS, OCI_LOCK_X, &pro) != OCI_SUCCESS)
-          /o error handling code o/ 
-
-      /o MODIFY OBJECTS o/
-
-      /o initialize the newly created object "mark" o/
-      DISCARD OCIStringAssignText(env, err, "mark", sizeof("mark"), 
-                                    &stu1->name);
-      department = 522;
-      DISCARD OCINumberFromInt(err, &department, sizeof(department), 
-                                    OCI_NUMBER_UNSIGNED, &stu1->department);
-
-      /o assign advisor to student "mark" o/
-      DISCARD OCIRefAssign(env, err, &stu2->advisor, &stu1->advisor);
-
-      /o update student "joe". o/  
-      department = 533;
-      DISCARD OCINumberFromInt(err, &department, sizeof(department), 
-                                    OCI_NUMBER_UNSIGNED, &stu2->department);
-      DISCARD OCIObjectMarkUpdate(env, err, stu2);
-
-      /o UNPIN OBJECTS AFTER FINSIHED PROCESSING THEM o/ 
-
-      /o unpin the student object "mark" o/
-      if (OCIObjectUnpin(env, err, stu1) != OCI_SUCCESS)
-          /o error handling code o/ 
-
-      /o unpin the student object "joe" o/
-      if (OCIObjectUnpin(env, err, stu2) != OCI_SUCCESS)
-          /o error handling code o/ 
-
-      /o unpin the professor object o/
-      if (OCIObjectUnpin(env, err, pro) != OCI_SUCCESS)
-          /o error handling code o/ 
-
-      /o unpin the type object o/
-      if (OCIObjectUnpin(env, err, stu_tdo) != OCI_SUCCESS)
-          /o error handling code o/ 
-
-      /o unpin the table object o/
-      if (OCIObjectUnpin(env, err, stu_tbl) != OCI_SUCCESS)
-          /o error handling code o/ 
-
-      /o FLUSH MODIFIED OBJECTS BACK TO PERSISTENT STORE o/
-
-      if (OCICacheFlush(env, err, svc, (dvoid *)0, ((OCIRef*)(*)())0, 
-                       (OCIRef *)0) != OCI_SUCCESS)
-          /o error handling code o/
-
-      /o commit transaction o/
-
-    END OF EXAMPLE 1
-
-  NOTES
-    This file has been subsetted to contain only the routines that will
-    be in the first release.
-
-  MODIFIED
-    srseshad   03/12/03 - convert oci public api to ansi
-    aahluwal   06/03/02 - bug 2360115
-    bpalaval   02/09/01 - Change text to oratext.
-    rkasamse   06/21/00 - add ociobjectgetnewoid
-    rkasamse   05/24/00 - add OCIObjectSetData
-    whe        09/01/99 - 976457:check __cplusplus for C++ code
-    smuralid   10/29/98 - add comments for OCIObjectMakeObjectRef              
-    mkrishna   08/19/98 - change OCIGetPkTypeRef to OCIObjectGetPrimaryKeyTypeR
-    mkrishna   08/10/98 - add OCIObjectMakeObjectRef & OCIObjectGetPkTypeRef
-    rkasamse   06/22/98 - add comments for OCIDurationBegin(End)
-    pmitra     04/01/98 - OCIObjectLockNoWait added                            
-    pmitra     11/05/97 - [573769] OCIObjectArrayPin pos parameter cannot be NU
-    cxcheng    07/29/97 - fix compile for short names
-    skrishna   07/14/97 - add OCIObjectGetProperty
-    skrishna   04/30/97 - OCIObjectFlushRefresh: remove duplicate declaration
-    skrishna   04/24/97 - flag unsupported functions
-    sthakur    03/20/97 - modify flag argument to OCIObjectFree
-    skrishna   03/18/97 - fix ifdef for supporting ansi and k&r proto-types
-    cxcheng    02/19/97 - remove short names support
-    cxcheng    02/06/97 - take out short name support except with SLSHORTNAME
-    sthakur    12/20/96 - fix a typepo in OCIOBjectArrayPin
-    jboonleu   11/07/96 - modify comments
-    cxcheng    10/28/96 - more beautification changes
-    jboonleu   10/24/96 - add flag to OCIObjectFree
-    jboonleu   10/22/96 - change interface of OCICacheFlush
-    cxcheng    10/18/96 - rename OCIObjectPinArray to OCIObjectArrayPin
-    cxcheng    10/14/96 - more renaming of types
-    jboonleu   10/09/96 - add new interfaces
-    cxcheng    10/09/96 - more lint fixes
-    cxcheng    10/08/96 - more lint fixes
-    jboonleu   09/27/96 - fix lint errors
-    jboonleu   10/07/96 - beautify ori.h after conversion to long names
-    cxcheng    10/04/96 - replace short names with long names
-    sthakur    08/20/96 - add COR context to OCIObjectPin
-    mluong     07/17/96 - add back orioglk, oriogdr, oriogiv, and oriocur.
-    jboonleu   07/17/96 - rename refresh option to conherency option 
-    jboonleu   07/16/96 - change comment for cache consistency
-    jwijaya    07/03/96 - add ANSI prototypes
-    jboonleu   06/12/96 - update comment
-    jboonleu   05/08/96 -  change description of OCIDurationGetParent
-    jboonleu   05/01/96 -  add OROOCOSFN
-    skrishna   04/08/96 -  change ori*() to take OCIEnv* and OCIError* instead
-                           of oroenv*
-    jboonleu   01/04/96 -  interface change
-    jboonleu   10/24/95 -  support of variable ref
-    jboonleu   02/15/95 -  new interface
-    sthakur    01/05/95 -  pass username to origrgc 
-    skotsovo   12/07/94 -  update example 
-    jwijaya    11/15/94 -  rename ORONSPTAB to ORONSPEXT 
-    jwijaya    10/06/94 -  add namespace to oriopnm() 
-    jwijaya    10/02/94 -  connection handle -> connection number 
-    jboonleu   08/16/94 -  fix lint errors 
-    jboonleu   07/20/94 -  change interface of OCICacheFlush 
-    tanguyen   07/18/94 -  add oriocpe, change OCIObjectCopy to oriocps
-    tcheng     07/15/94 -  add init param maximum_sga_heap_size 
-    tcheng     07/13/94 -  change origini to get param string 
-    jboonleu   07/05/94 -  change sccs string from sccid to a comment 
-    jboonleu   07/01/94 -  Add examples to ORIO* and ORIC* functions 
-    tanguyen   06/30/94 -  Fix the ORI_ORACLE ifdef
-    skotsovo   06/27/94 -  include all public functions in public functions 
-                           list at top of header file
-    tcheng     06/27/94 -  modify comments according to new template 
-    tanguyen   06/24/94 -  fix comments for OCIObjectCopy 
-    tcheng     06/24/94 -  fix comments in origrgc()
-    tanguyen   06/21/94 -  fix comments and format 
-    tcheng     06/20/94 -  commenting origini/trm/err/rgc/urg() functions
-    tanguyen   06/16/94 -  fix descriptions of ref operations 
-    tanguyen   06/16/94 -  clarifies refs comparison 
-    tanguyen   05/12/94 -  adds more interfaces (OCIObjectMarkUpdate)
-    jwijaya    05/10/94 -  fix examples, add origurg, change origcon to origrgc
-    tanguyen   05/03/94 -  remove unnecessary 'type' argument from 
-                           'OCIObjectCopy'
-    tanguyen   03/08/94 -  clarifies comments
-    jwijaya    02/16/94 -  more questions
-    jwijaya    02/11/94 -  more comments
-    jwijaya    02/10/94 -  identify optional arguments
-    jwijaya    02/07/94 -  Creation
-*/
-
-
-#ifndef ORATYPES
-#include <oratypes.h>
-#endif
-#ifndef ORO_ORACLE
-#include <oro.h>
-#endif
-#ifndef OCI_ORACLE
-#include <oci.h>
-#endif
-#ifndef ORT_ORACLE
-#include <ort.h>
-#endif
-
-#ifndef ORI_ORACLE
-#define ORI_ORACLE
-
-/*---------------------------------------------------------------------------*/
-/*                         SHORT NAMES SUPPORT SECTION                       */
-/*---------------------------------------------------------------------------*/
-
-#ifdef SLSHORTNAME
-
-/* the following are short names that are only supported on IBM mainframes
-   with the SLSHORTNAME defined.
-   With this all subsequent long names will actually be substituted with
-   the short names here */
-
-#define OCIDurationBegin                 origbgu
-#define OCIDurationEnd                   origedu
-#define OCIDurationGetParent             origpdr
-#define OCICacheFlushRefresh             oricfrh
-#define OCICacheUnpin                    oricunp
-#define OCICacheFree                     oricfre
-#define OCICacheUnmark                   oricumk
-#define OCICacheGetObjects               oricgpr
-#define OCICacheRegister                 oricscb
-#define OCIObjectUnpin                   oriounp
-#define OCIObjectPinCountReset           orioupz
-#define OCIObjectLock                    oriolck
-#define OCIObjectLockNoWait              oriolnw
-#define OCIObjectMarkUpdate              orioupd
-#define OCIObjectUnmark                  orioumk
-#define OCIObjectUnmarkByRef             orioumr
-#define OCIObjectAlwaysLatest            oriomkl
-#define OCIObjectNotAlwaysLatest         oriouml
-#define OCIObjectMarkDeleteByRef         oriordl
-#define OCIObjectMarkDelete              oriopdl
-#define OCIObjectFlush                   oriofls
-#define OCIObjectFlushRefresh            oriofrh
-#define OCIObjectCopy                    oriocpy
-#define OCIObjectGetTypeRef              oriogtr
-#define OCIObjectGetObjectRef            oriogor
-#define OCIObjectGetInd                  oriogns
-#define OCIObjectExists                  oriogex
-#define OCIObjectGetProperty             oriogpr
-#define OCIObjectRefresh                 oriorfs
-#define OCIObjectPinTable                oriogtb
-#define OCIObjectGetPrimaryKeyTypeRef    oriogpf
-#define OCIObjectMakeObjectRef           oriomrf
-
-#define OCIObjectNew                     orionew
-#define OCIObjectPin                     oriopin
-#define OCIObjectFree                    oriofre
-#define OCIObjectArrayPin                orioapn
-#define OCIObjectIsDirty                 oriodrt
-#define OCIObjectIsDirtied               oriodrd
-#define OCIObjectIsLoaded                orioldd
-#define OCICacheFlush                    oricfls
-#define OCICacheRefresh                  oricrfs
-
-#endif                                                        /* SLSHORTNAME */
-
-/*---------------------------------------------------------------------------*/
-/*                       PUBLIC TYPES AND CONSTANTS                          */
-/*---------------------------------------------------------------------------*/
-
-/* Also see oro.h. */
-
-/*---------------------------------------------------------------------------*/
-/*                           PUBLIC FUNCTIONS                                */
-/*---------------------------------------------------------------------------*/
-/*---------------------------------------------------------------------------*/
-/*                       OBJECT/INSTANCE OPERATIONS                          */
-/*---------------------------------------------------------------------------*/
-
-/*--------------------------- OCIObjectNew ----------------------------------*/
-sword OCIObjectNew(    OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc,
-                       OCITypeCode typecode, OCIType *tdo, dvoid *table, 
-                       OCIDuration duration, boolean value, 
-                       dvoid **instance    );
-/*
-   NAME: OCIObjectNew - OCI new (create) a standalone instance
-   PARAMETERS:
-        env  (IN/OUT) - OCI environment handle initialized in object mode
-        err  (IN/OUT) - error handle. If there is an error, it is
-                        recorded in 'err' and this function returns OCI_ERROR.
-                        The error recorded in 'err' can be retrieved by calling
-                        OCIErrorGet().
-        svc      (IN) - OCI service handle.  
-        typecode (IN) - the typecode of the type of the instance. 
-        tdo      (IN, optional) - pointer to the type descriptor object. The 
-                        TDO describes the type of the instance that is to be 
-                        created. Refer to OCITypeByName() for obtaining a TDO. 
-                        The TDO is required for creating a named type (e.g. an
-                        object or a collection).
-        table (IN, optional) - pointer to a table object which specifies a 
-                        table in the server.  This parameter can be set to NULL
-                        if no table is given. See the description below to find
-                        out how the table object and the TDO are used together
-                        to determine the kind of instances (persistent, 
-                        transient, value) to be created. Also see 
-                        OCIObjectPinTable() for retrieving a table object.
-        duration (IN) - this is an overloaded parameter. The use of this
-                        parameter is based on the kind of the instance that is 
-                        to be created.
-                        a) persistent object. This parameter specifies the
-                           pin duration.
-                        b) transient object. This parameter specififes the 
-                           allocation duration and pin duration. 
-                        c) value. This parameter specifies the allocation
-                           duration. 
-        value    (IN)  - specifies whether the created object is a value.
-                         If TRUE, then a value is created. Otherwise, a 
-                         referenceable object is created.  If the instance is 
-                         not an object, then this parameter is ignored.
-        instance (OUT) - address of the newly created instance
-                  
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-   DESCRIPTION:
-        This function creates a new instance of the type specified by the 
-        typecode or the TDO. Based on the parameters 'typecode' (or 'tdo'), 
-        'value' and 'table', different kinds of instances can be created:
-            
-                                     The parameter 'table' is not NULL?
-
-                                               yes              no
-             ----------------------------------------------------------------
-             | object type (value=TRUE)   |   value         |   value       |
-             ----------------------------------------------------------------
-             | object type (value=FALSE)  | persistent obj  | transient obj |
-       type  ----------------------------------------------------------------
-             | built-in type              |   value         |   value       |
-             ----------------------------------------------------------------
-             | collection type            |   value         |   value       |
-             ----------------------------------------------------------------
-
-        This function allocates the top level memory chunk of an OTS instance.
-        The attributes in the top level memory are initialized (e.g. an 
-        attribute of varchar2 is initialized to a vstring of 0 length). 
-
-        If the instance is an object, the object is marked existed but is 
-        atomically null. 
-
-        FOR PERSISTENT OBJECTS:
-        The object is marked dirty and existed.  The allocation duration for 
-        the object is session. The object is pinned and the pin duration is 
-        specified by the given parameter 'duration'.
-
-        FOR TRANSIENT OBJECTS:
-        The object is pinned. The allocation duration and the pin duration are 
-        specified by the given parameter 'duration'.
-
-        FOR VALUES:
-        The allocation duration is specified by the given parameter 'duration'.
-
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*--------------------------- OCIObjectPin ----------------------------------*/
-sword OCIObjectPin(    OCIEnv *env, OCIError *err, OCIRef *object_ref, 
-                       OCIComplexObject *corhdl, OCIPinOpt pin_option, 
-                       OCIDuration pin_duration, 
-                       OCILockOpt lock_option, dvoid **object    );
-/*
-   NAME: OCIObjectPin - OCI pin a referenceable object
-   PARAMETERS:
-        env        (IN/OUT) - OCI environment handle initialized in object mode
-        err        (IN/OUT) - error handle. If there is an error, it is
-                              recorded in 'err' and this function returns 
-                              OCI_ERROR. The error recorded in 'err' can be 
-                              retrieved by calling OCIErrorGet().
-        object_ref     (IN) - the reference to the object. 
-        corhdl         (IN) - handle for complex object retrieval. 
-        pin_option     (IN) - See description below.
-        pin_duration   (IN) - The duration of which the object is being accesed
-                              by a client. The object is implicitly unpinned at
-                              the end of the pin duration. 
-                              If OCI_DURATION_NULL is passed, there is no pin 
-                              promotion if the object is already loaded into 
-                              the cache. If the object is not yet loaded, then 
-                              the pin duration is set to OCI_DURATION_DEFAULT. 
-        lock_option    (IN) - lock option (e.g., exclusive). If a lock option
-                              is specified, the object is locked in the server.
-                              See 'oro.h' for description about lock option. 
-        object        (OUT) - the pointer to the pinned object.
-
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-   DESCRIPTION:
-
-        This function pins a referenceable object instance given the object
-        reference. The process of pinning serves three purposes:
-
-        1) locate an object given its reference. This is done by the object
-           cache which keeps track of the objects in the object heap.  
-
-        2) notify the object cache that an object is being in use. An object 
-           can be pinned many times. A pinned object will remain in memory 
-           until it is completely unpinned (see OCIObjectUnpin()). 
-
-        3) notify the object cache that a persistent object is being in use 
-           such that the persistent object cannot be aged out.  Since a 
-           persistent object can be loaded from the server whenever is needed, 
-           the memory utilization can be increased if a completely unpinned 
-           persistent object can be freed (aged out), even before the 
-           allocation duration is expired.  
-
-        Also see OCIObjectUnpin() for more information about unpinning.
-
-        FOR PERSISTENT OBJECTS:
-
-        When pinning a persistent object, if it is not in the cache, the object
-        will be fetched from the persistent store. The allocation duration of
-        the object is session. If the object is already in the cache, it is
-        returned to the client.  The object will be locked in the server if a 
-        lock option is specified. 
-
-        This function will return an error for a non-existent object.  
-
-        A pin option is used to specify the copy of the object that is to be 
-        retrieved: 
-
-        1) If option is OCI_PIN_ANY (pin any), if the object is already 
-           in the environment heap, return this object. Otherwise, the object 
-           is retrieved from the database.  This option is useful when the 
-           client knows that he has the exclusive access to the data in a 
-           session.
-
-        2) If option is OCI_PIN_LATEST (pin latest), if the object is 
-           not cached, it is retrieved from the database.  If the object is 
-           cached, it is refreshed with the latest version. See 
-           OCIObjectRefresh() for more information about refreshing.
-
-        3) If option is OCI_PIN_RECENT (pin recent), if the object is loaded
-           into the cache in the current transaction, the object is returned.
-           If the object is not loaded in the current transaction, the object
-           is refreshed from the server.
-
-        FOR TRANSIENT OBJECTS:
-
-        This function will return an error if the transient object has already 
-        been freed. This function does not return an error if an exclusive 
-        lock is specified in the lock option. 
-
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*------------------------------ OCIObjectUnpin -----------------------------*/
-sword OCIObjectUnpin(    OCIEnv *env, OCIError *err, dvoid *object    );
-/*
-   NAME: OCIObjectUnpin - OCI unpin a referenceable object
-   PARAMETERS:
-        env   (IN/OUT) - OCI environment handle initialized in object mode
-        err   (IN/OUT) - error handle. If there is an error, it is
-                         recorded in 'err' and this function returns OCI_ERROR.
-                         The error recorded in 'err' can be retrieved by 
-                         calling OCIErrorGet().
-        object    (IN) - pointer to an object
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The specified object must be pinned.
-   DESCRIPTION:
-        This function unpins an object.  An object is completely unpinned when 
-          1) the object was unpinned N times after it has been pinned N times
-             (by calling OCIObjectPin()).
-          2) it is the end of the pin duration
-          3) the function OCIObjectPinCountReset() is called 
-
-        There is a pin count associated with each object which is incremented
-        whenever an object is pinned. When the pin count of the object is zero,
-        the object is said to be completely unpinned. An unpinned object can
-        be freed without error.
-
-        FOR PERSISTENT OBJECTS:
-        When a persistent object is completely unpinned, it becomes a candidate
-        for aging. The memory of an object is freed when it is aged out. Aging
-        is used to maximize the utilization of memory.  An dirty object cannot 
-        be aged out unless it is flushed.
-
-        FOR TRANSIENT OBJECTS:
-        The pin count of the object is decremented. A transient can be freed
-        only at the end of its allocation duration or when it is explicitly
-        deleted by calling OCIObjectFree().
-
-        FOR VALUE:
-        This function will return an error for value.
-
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*---------------------------- OCIObjectPinCountReset -----------------------*/
-sword OCIObjectPinCountReset(    OCIEnv *env, OCIError *err, dvoid *object   );
-/*
-   NAME: OCIObjectPinCountReset - OCI resets the pin count of a referenceable
-                                  object
-   PARAMETERS:
-        env   (IN/OUT) - OCI environment handle initialized in object mode
-        err   (IN/OUT) - error handle. If there is an error, it is
-                         recorded in 'err' and this function returns OCI_ERROR.
-                         The error recorded in 'err' can be retrieved by
-                         calling OCIErrorGet().
-        object    (IN) - pointer to an object
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The specified object must be pinned.
-   DESCRIPTION:
-        This function completely unpins an object.  When an object is 
-        completely unpinned, it can be freed without error.  
-
-        FOR PERSISTENT OBJECTS:
-        When a persistent object is completely unpinned, it becomes a candidate
-        for aging. The memory of an object is freed when it is aged out. Aging
-        is used to maximize the utilization of memory.  An dirty object cannot 
-        be aged out unless it is flushed.
-
-        FOR TRANSIENT OBJECTS:
-        The pin count of the object is decremented. A transient can be freed
-        only at the end of its allocation duration or when it is explicitly
-        freed by calling OCIObjectFree().
-
-        FOR VALUE:
-        This function will return an error for value.
-
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*--------------------------- OCIObjectLock ---------------------------------*/
-sword OCIObjectLock(    OCIEnv *env, OCIError *err, dvoid *object    );
-/*
-   NAME: OCIObjectLock - OCI lock a persistent object
-   PARAMETERS:
-        env   (IN/OUT) - OCI environment handle initialized in object mode
-        err   (IN/OUT) - error handle. If there is an error, it is
-                         recorded in 'err' and this function returns OCI_ERROR.
-                         The error recorded in 'err' can be retrieved by
-                         calling OCIErrorGet().
-        object    (IN) - pointer to the persistent object 
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The specified object must be pinned.
-   DESCRIPTION:
-        This function locks a persistent object at the server. Unlike
-        OCIObjectLockNoWait() this function waits if another user currently
-        holds a lock on the desired object. This function
-        returns an error if:
-          1) the object is non-existent.
-
-        This function will return an error for transient objects and values.
-        The lock of an object is released at the end of a transaction.
-
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
-*/
-
-/*------------------------ OCIObjectLockNoWait ------------------------------*/
-sword OCIObjectLockNoWait(    OCIEnv *env, OCIError *err, dvoid *object    );
-/*
-   NAME: OCIObjectLockNoWait - OCI lock a persistent object, do not wait for
-                               the lock, return error if lock not available
-   PARAMETERS:
-        env   (IN/OUT) - OCI environment handle initialized in object mode
-        err   (IN/OUT) - error handle. If there is an error, it is
-                         recorded in 'err' and this function returns OCI_ERROR.
-                         The error recorded in 'err' can be retrieved by
-                         calling OCIErrorGet().
-        object    (IN) - pointer to the persistent object 
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The specified object must be pinned.
-   DESCRIPTION:
-        This function locks a persistent object at the server. Unlike
-        OCIObjectLock() this function will not wait if another user holds
-        the lock on the desired object. This function returns an error if:
-          1) the object is non-existent.
-          2) the object is currently locked by another user in which
-             case this function returns with an error.
-
-        This function will return an error for transient objects and values.
-        The lock of an object is released at the end of a transaction.
-
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
-*/
-
-/*--------------------------- OCIObjectMarkUpdate ---------------------------*/
-sword OCIObjectMarkUpdate(    OCIEnv *env, OCIError *err, dvoid *object    );
-/*
-   NAME: OCIObjectMarkUpdate - OCI marks an object as updated
-   PARAMETERS:
-        env   (IN/OUT) - OCI environment handle initialized in object mode
-        err   (IN/OUT) - error handle. If there is an error, it is
-                         recorded in 'err' and this function returns OCI_ERROR.
-                         The error recorded in 'err' can be retrieved by
-                         calling OCIErrorGet().
-        object    (IN) - pointer to the persistent object 
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The specified object must be pinned.
-   DESCRIPTION:
-        FOR PERSISTENT OBJECTS:
-        This function marks the specified persistent object as updated. The
-        persistent objects will be written to the server when the object cache
-        is flushed.  The object is not locked or flushed by this function. It
-        is an error to update a deleted object.  
-
-        After an object is marked updated and flushed, this function must be
-        called again to mark the object as updated if it has been dirtied
-        after it is being flushed.
-
-        FOR TRANSIENT OBJECTS:
-        This function marks the specified transient object as updated. The
-        transient objects will NOT be written to the server. It is an error
-        to update a deleted object.
-
-        FOR VALUES:
-        It is an no-op for values.
-
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*----------------------------- OCIObjectUnmark -----------------------------*/
-sword OCIObjectUnmark(    OCIEnv *env, OCIError *err, dvoid *object    );
-/*
-   NAME: OCIObjectUnmark - OCI unmarks an object 
-   PARAMETERS:
-        env   (IN/OUT) - OCI environment handle initialized in object mode
-        err   (IN/OUT) - error handle. If there is an error, it is
-                         recorded in 'err' and this function returns OCI_ERROR.
-                         The error recorded in 'err' can be retrieved by
-                         calling OCIErrorGet().
-        object    (IN) - pointer to the persistent object
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The specified object must be pinned.
-   DESCRIPTION:
-        FOR PERSISTENT OBJECTS AND TRANSIENT OBJECTS:
-        This function unmarks the specified persistent object as dirty. Changes
-        that are made to the object will not be written to the server. If the
-        object is marked locked, it remains marked locked.  The changes that
-        have already made to the object will not be undone implicitly. 
- 
-        FOR VALUES:
-        It is an no-op for values.
- 
-   RETURNS:
-        if environment handle or error handle is null, return
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS.
-        if operation fails, return OCI_ERROR.
- */
-
-/*----------------------------- OCIObjectUnmarkByRef ------------------------*/
-sword OCIObjectUnmarkByRef(    OCIEnv *env, OCIError *err, OCIRef *ref    );
-/*
-   NAME: OCIObjectUnmarkByRef - OCI unmarks an object by Ref
-   PARAMETERS:
-        env   (IN/OUT) - OCI environment handle initialized in object mode
-        err   (IN/OUT) - error handle. If there is an error, it is
-                         recorded in 'err' and this function returns OCI_ERROR.
-                         The error recorded in 'err' can be retrieved by
-                         calling OCIErrorGet().
-        ref   (IN) - reference of the object
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The specified object must be pinned.
-   DESCRIPTION:
-        FOR PERSISTENT OBJECTS AND TRANSIENT OBJECTS:
-        This function unmarks the specified persistent object as dirty. Changes
-        that are made to the object will not be written to the server. If the
-        object is marked locked, it remains marked locked.  The changes that
-        have already made to the object will not be undone implicitly.
- 
-        FOR VALUES:
-        It is an no-op for values.
- 
-   RETURNS:
-        if environment handle or error handle is null, return
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS.
-        if operation fails, return OCI_ERROR.
- */
-
-/*--------------------------- OCIObjectFree ---------------------------------*/
-sword OCIObjectFree(    OCIEnv *env, OCIError *err, dvoid *instance, 
-                        ub2 flags   );
-/*
-   NAME: OCIObjectFree - OCI free (and unpin) an standalone instance 
-   PARAMETERS:
-        env    (IN/OUT) - OCI environment handle initialized in object mode
-        err    (IN/OUT) - error handle. If there is an error, it is
-                          recorded in 'err' and this function returns 
-                          OCI_ERROR.  The error recorded in 'err' can be 
-                          retrieved by calling OCIErrorGet().
-        instance   (IN) - pointer to a standalone instance.
-        flags      (IN) - If OCI_OBJECT_FREE_FORCE is set, free the object
-                          even if it is pinned or dirty.
-                          If OCI_OBJECT_FREE_NONULL is set, the null
-                          structure will not be freed. 
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The instance to be freed must be standalone.
-        - If the instance is a referenceable object, the object must be pinned.
-   DESCRIPTION:
-        This function deallocates all the memory allocated for an OTS instance,
-        including the null structure.
-
-        FOR PERSISTENT OBJECTS:
-        This function will return an error if the client is attempting to free 
-        a dirty persistent object that has not been flushed. The client should 
-        either flush the persistent object or set the parameter 'flag' to  
-        OCI_OBJECT_FREE_FORCE.
-
-        This function will call OCIObjectUnpin() once to check if the object 
-        can be completely unpin. If it succeeds, the rest of the function will 
-        proceed to free the object.  If it fails, then an error is returned 
-        unless the parameter 'flag' is set to OCI_OBJECT_FREE_FORCE.
- 
-        Freeing a persistent object in memory will not change the persistent 
-        state of that object at the server.  For example, the object will 
-        remain locked after the object is freed.
-
-        FOR TRANSIENT OBJECTS:
-
-        This function will call OCIObjectUnpin() once to check if the object 
-        can be completely unpin. If it succeeds, the rest of the function will 
-        proceed to free the object.  If it fails, then an error is returned 
-        unless the parameter 'flag' is set to OCI_OBJECT_FREE_FORCE. 
-
-        FOR VALUES:
-        The memory of the object is freed immediately. 
-
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
-*/
-
-/*----------------------- OCIObjectMarkDeleteByRef --------------------------*/
-sword OCIObjectMarkDeleteByRef(    OCIEnv *env, OCIError *err, 
-                                   OCIRef *object_ref);
-/*
-   NAME: OCIObjectMarkDeleteByRef - OCI "delete" (and unpin) an object given
-                                    a reference
-   PARAMETERS:
-        env     (IN/OUT) - OCI environment handle initialized in object mode
-        err     (IN/OUT) - error handle. If there is an error, it is
-                           recorded in 'err' and this function returns 
-                           OCI_ERROR.  The error recorded in 'err' can be 
-                           retrieved by calling OCIErrorGet().
-        object_ref  (IN) - ref of the object to be deleted
-
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-   DESCRIPTION:
-        This function marks the object designated by 'object_ref' as deleted.
-
-        FOR PERSISTENT OBJECTS:
-        If the object is not loaded, then a temporary object is created and is 
-        marked deleted. Otherwise, the object is marked deleted.  
-
-        The object is deleted in the server when the object is flushed.
-
-        FOR TRANSIENT OBJECTS:
-        The object is marked deleted.  The object is not freed until it is
-        unpinned.
-
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*--------------------------- OCIObjectMarkDelete ---------------------------*/
-sword OCIObjectMarkDelete(    OCIEnv *env, OCIError *err, dvoid *instance    );
-/*
-   NAME: OCIObjectMarkDelete - OCI "delete" an instance given a Pointer 
-   PARAMETERS:
-        env    (IN/OUT) - OCI environment handle initialized in object mode
-        err    (IN/OUT) - error handle. If there is an error, it is
-                          recorded in 'err' and this function returns 
-                          OCI_ERROR.  The error recorded in 'err' can be 
-                          retrieved by calling OCIErrorGet().
-        instance   (IN) - pointer to the instance 
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The instance must be standalone.
-        - If the instance is a referenceable object, then it must be pinned.
-   DESCRIPTION:
-
-        FOR PERSISTENT OBJECTS:
-        The object is marked deleted.  The memory of the object is not freed.
-        The object is deleted in the server when the object is flushed.
-
-        FOR TRANSIENT OBJECTS:
-        The object is marked deleted.  The memory of the object is not freed.
-
-        FOR VALUES: 
-        This function frees a value immediately. 
-
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*---------------------------- OCIObjectFlush -------------------------------*/
-sword OCIObjectFlush(    OCIEnv *env, OCIError *err, dvoid *object    );
-/*
-   NAME: OCIObjectFlush - OCI flush a persistent object
-   PARAMETERS:
-        env    (IN/OUT) - OCI environment handle initialized in object mode
-        err    (IN/OUT) - error handle. If there is an error, it is
-                          recorded in 'err' and this function returns 
-                          OCI_ERROR.  The error recorded in 'err' can be 
-                          retrieved by calling OCIErrorGet().
-        object     (IN) - pointer to the persistent object 
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The specified object must be pinned.
-   DESCRIPTION:
-        This function flushes a modified persistent object to the server.
-        An exclusive lock is obtained implicitly for the object when flushed.
-
-        When the object is written to the server, triggers may be fired.
-        Objects can be modified by the triggers at the server.  To keep the  
-        objects in the object cache being coherent with the database, the
-        clients can free or refresh the objects in the cache. 
-
-        This function will return an error for transient objects and values.
-        
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*------------------------ OCIObjectRefresh ---------------------------------*/
-sword OCIObjectRefresh(    OCIEnv *env, OCIError *err, dvoid *object    );
-/*
-   NAME: OCIObjectRefresh - OCI refresh a persistent object
-   PARAMETERS:
-        env    (IN/OUT) - OCI environment handle initialized in object mode
-        err    (IN/OUT) - error handle. If there is an error, it is
-                          recorded in 'err' and this function returns 
-                          OCI_ERROR.  The error recorded in 'err' can be 
-                          retrieved by calling OCIErrorGet().
-        object     (IN) - pointer to the persistent object 
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The specified object must be pinned.
-   DESCRIPTION:
-        This function refreshes an unmarked object with data retrieved from the
-        latest snapshot in the server. An object should be refreshed when the 
-        objects in the cache are inconsistent with the objects at 
-        the server:
-        1) When an object is flushed to the server, triggers can be fired to
-           modify more objects in the server.  The same objects (modified by 
-           the triggers) in the object cache become obsolete.
-        2) When the user issues a SQL or executes a PL/SQL procedure to modify
-           any object in the server, the same object in the cache becomes
-           obsolete.
-
-        The object that is refreshed will be 'replaced-in-place'. When an
-        object is 'replaced-in-place', the top level memory of the object will 
-        be reused so that new data can be loaded into the same memory address. 
-        The top level memory of the null structre is also reused. Unlike the
-        top level memory chunk, the secondary memory chunks may be resized and
-        reallocated.  The client should be careful when holding onto a pointer 
-        to the secondary memory chunk (e.g. assigning the address of a 
-        secondary memory to a local variable), since this pointer can become 
-        invalid after the object is refreshed.
-
-        The object state will be modified as followed after being refreshed: 
-          - existent : set to appropriate value
-          - pinned   : unchanged 
-          - allocation duration : unchanged 
-          - pin duration : unchanged 
-        
-        This function is an no-op for transient objects or values.
-
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*---------------------------- OCIObjectCopy --------------------------------*/
-sword OCIObjectCopy(    OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-                        dvoid *source, dvoid *null_source,
-                        dvoid *target, dvoid *null_target, OCIType *tdo, 
-                        OCIDuration duration, ub1 option    );
-/*
-   NAME: OCIObjectCopy - OCI copy one instance to another
-   PARAMETERS:
-        env     (IN/OUT) - OCI environment handle initialized in object mode
-        err     (IN/OUT) - error handle. If there is an error, it is
-                           recorded in 'err' and this function returns 
-                           OCI_ERROR.  The error recorded in 'err' can be 
-                           retrieved by calling OCIErrorGet().
-        svc         (IN) - OCI service context handle
-        source      (IN) - pointer to the source instance 
-        null_source (IN) - pointer to the null structure of the source
-        target      (IN) - pointer to the target instance
-        null_target (IN) - pointer to the null structure of the target 
-        tdo         (IN) - the TDO for both source and target
-        duration    (IN) - allocation duration of the target memory
-        option      (IN) - specify the copy option:
-                        OROOCOSFN - Set Reference to Null. All references
-                        in the source will not be copied to the target. The
-                        references in the target are set to null. 
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - If source or target is referenceable, it must be pinned.
-        - The target or the containing instance of the target must be already
-          be instantiated (e.g. created by OCIObjectNew()).
-        - The source and target instances must be of the same type. If the
-          source and target are located in a different databases, then the
-          same type must exist in both databases.
-   DESCRIPTION:
-        This function copies the contents of the 'source' instance to the
-        'target' instance. This function performs a deep-copy such that the 
-        data that is copied/duplicated include:
-        a) all the top level attributes (see the exceptions below)
-        b) all the secondary memory (of the source) that is reachable from the
-           top level attributes.
-        c) the null structure of the instance
-
-        Memory is allocated with the specified allocation duration. 
-
-        Certain data items are not copied: 
-        a) If the option OCI_OBJECTCOPY_NOREF is specified, then all references
-           in the source are not copied. Instead, the references in the target
-           are set to null.
-        b) If the attribute is a LOB, then it is set to null.
-
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*---------------------------- OCIObjectGetTypeRef --------------------------*/
-sword OCIObjectGetTypeRef(    OCIEnv *env, OCIError *err, dvoid *instance, 
-                              OCIRef *type_ref    );
-/*
-   NAME: OCIObjectGetTypeRef - get the type reference of a standalone object
-   PARAMETERS:
-        env   (IN/OUT) - OCI environment handle initialized in object mode
-        err   (IN/OUT) - error handle. If there is an error, it is
-                         recorded in 'err' and this function returns 
-                         OCI_ERROR.  The error recorded in 'err' can be 
-                         retrieved by calling OCIErrorGet().
-        instance  (IN) - pointer to an standalone instance 
-        type_ref (OUT) - reference to the type of the object.  The reference 
-                         must already be allocated.
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The instance must be standalone.
-        - If the object is referenceable, the specified object must be pinned.
-        - The reference must already be allocated.
-   DESCRIPTION:
-        This function returns a reference to the TDO of a standalone instance. 
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*--------------------------- OCIObjectGetObjectRef -------------------------*/
-sword OCIObjectGetObjectRef(    OCIEnv *env, OCIError *err, dvoid *object, 
-                                OCIRef *object_ref    );
-/*
-   NAME: OCIObjectGetObjectRef - OCI get the object reference of an 
-                                 referenceable object
-   PARAMETERS:
-        env     (IN/OUT) - OCI environment handle initialized in object mode
-        err     (IN/OUT) - error handle. If there is an error, it is
-                           recorded in 'err' and this function returns 
-                           OCI_ERROR.  The error recorded in 'err' can be 
-                           retrieved by calling OCIErrorGet().
-        object      (IN) - pointer to a persistent object
-        object_ref (OUT) - reference of the given object. The reference must 
-                           already be allocated.
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The specified object must be pinned.
-        - The reference must already be allocated.
-   DESCRIPTION:
-        This function returns a reference to the given object.  It returns an 
-        error for values. 
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*--------------------------- OCIObjectMakeObjectRef -----------------------*/
-sword OCIObjectMakeObjectRef(    OCIEnv *env, OCIError *err, 
-                                 CONST OCISvcCtx *svc, dvoid * table,
-                                 dvoid **values, ub4 array_len, 
-                                 OCIRef *object_ref    );
-/*
-   NAME: OCIObjectMakeObjectRef - OCI Create an object reference to a 
-                                 referenceable object.
-   PARAMETERS:
-        env     (IN/OUT) - OCI environment handle initialized in object mode
-        err     (IN/OUT) - error handle. If there is an error, it is
-                           recorded in 'err' and this function returns 
-                           OCI_ERROR.  The error recorded in 'err' can be 
-                           retrieved by calling OCIErrorGet().
-        svc         (IN) - the service context
-        table       (IN) - A pointer to the table object (must be pinned)
-        attrlist    (IN) - A list of values (OCI type values) from which
-                           the ref is to be created.
-        attrcnt     (IN)  - The length of the attrlist array. 
-        object_ref (OUT) - reference of the given object. The reference must 
-                           already be allocated. 
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The specified table object must be pinned.
-        - The reference must already be allocated.
-   DESCRIPTION:
-        This function creates a reference given the values that make up the 
-        reference and also a pointer to the table object. 
-        Based on the table's OID property, whether it is a pk based OID or
-        a system generated OID, the function creates a sys-generated REF or
-        a pk based REF.
-        In case of system generated REFs pass in a OCIRaw which is 16 bytes
-        long contatining the sys generated OID.
-        In case of PK refs pass in the OCI equivalent for numbers, chars etc..
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*--------------------------- OCIObjectGetPrimaryKeyTypeRef --------------- */ 
-sword OCIObjectGetPrimaryKeyTypeRef( OCIEnv *env, OCIError *err,
-                                     CONST OCISvcCtx *svc, dvoid *table, 
-                                     OCIRef *type_ref );
-/*
-   NAME: OCIObjectGetPrimaryKeyTypeRef - OCI get the REF to the pk OID type 
-   PARAMETERS:
-        env     (IN/OUT) - OCI environment handle initialized in object mode
-        err     (IN/OUT) - error handle. If there is an error, it is
-                           recorded in 'err' and this function returns 
-                           OCI_ERROR.  The error recorded in 'err' can be 
-                           retrieved by calling OCIErrorGet().
-        svc     (IN)     - the service context 
-        table   (IN)     - pointer to the table object
-        type_ref   (OUT) - reference of the pk type. The reference must 
-                           already be allocated.
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The specified table object must be pinned.
-        - The reference must already be allocated.
-   DESCRIPTION:
-        This function returns a reference to the pk type.  It returns an 
-        error for values.  If the table is not a Pk oid table/view, then
-        it returns error.
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*-------------------------- OCIObjectGetInd --------------------------------*/
-sword OCIObjectGetInd(    OCIEnv *env, OCIError *err, dvoid *instance, 
-                          dvoid **null_struct    );
-/*
-   NAME: OCIObjectGetInd - OCI get the null structure of a standalone object  
-   PARAMETERS:
-        env     (IN/OUT) - OCI environment handle initialized in object mode
-        err     (IN/OUT) - error handle. If there is an error, it is
-                           recorded in 'err' and this function returns 
-                           OCI_ERROR.  The error recorded in 'err' can be 
-                           retrieved by calling OCIErrorGet().
-        instance      (IN) - pointer to the instance 
-        null_struct (OUT) - null structure 
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The object must be standalone.
-        - If the object is referenceable, the specified object must be pinned.
-   DESCRIPTION:
-        This function returns the null structure of an instance. This function
-        will allocate the top level memory of the null structure if it is not
-        already allocated. If an null structure cannot be allocated for the 
-        instance, then an error is returned. This function only works for 
-        ADT or row type instance. 
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*------------------------- OCIObjectExists --------------------------------*/
-sword OCIObjectExists(OCIEnv *env, OCIError *err, dvoid *ins, boolean *exist); 
-/*
-   NAME: OCIObjectExist - OCI checks if the object exists 
-   PARAMETERS:
-        env       (IN/OUT) - OCI environment handle initialized in object mode
-        err       (IN/OUT) - error handle. If there is an error, it is
-                             recorded in 'err' and this function returns 
-                             OCI_ERROR.  The error recorded in 'err' can be 
-                             retrieved by calling OCIErrorGet().
-        ins           (IN) - pointer to an instance 
-        exist        (OUT) - return TRUE if the object exists
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The object must be standalone.
-        - if object is a referenceable, it must be pinned.
-   DESCRIPTION:
-        This function returns the existence of an instance. If the instance
-        is a value, this function always returns TRUE.
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*------------------------- OCIObjectGetProperty ---------------------------*/
-sword OCIObjectGetProperty(OCIEnv *envh, OCIError *errh, CONST dvoid *obj, 
-                           OCIObjectPropId propertyId,
-                           dvoid *property, ub4 *size );
-/*
-   NAME: OCIObjectGetProperty - OCIObject Get Property of given object
-   PARAMETERS:
-        env       (IN/OUT) - OCI environment handle initialized in object mode
-        err       (IN/OUT) - error handle. If there is an error, it is
-                             recorded in 'err' and this function returns
-                             OCI_ERROR.  The error recorded in 'err' can be
-                             retrieved by calling OCIErrorGet().
-        obj           (IN) - object whose property is returned
-        propertyId    (IN) - id which identifies the desired property
-        property     (OUT) - buffer into which the desired property is
-                             copied
-        size      (IN/OUT) - on input specifies the size of the property buffer
-                             passed by caller, on output will contain the 
-                             size in bytes of the property returned.
-                             This parameter is required for string type 
-                             properties only (e.g OCI_OBJECTPROP_SCHEMA,
-                             OCI_OBJECTPROP_TABLE). For non-string
-                             properties this parameter is ignored since
-                             the size is fixed.
-   DESCRIPTION:
-        This function returns the specified property of the object.
-        The desired property is identified by 'propertyId'. The property
-        value is copied into 'property' and for string typed properties
-        the string size is returned via 'size'. 
-        
-        Objects are classified as persistent, transient and value
-        depending upon the lifetime and referenceability of the object.
-        Some of the properties are applicable only to persistent
-        objects and some others only apply to persistent and 
-        transient objects. An error is returned if the user tries to 
-        get a property which in not applicable to the given object. 
-        To avoid such an error, the user should first check whether
-        the object is persistent or transient or value 
-        (OCI_OBJECTPROP_LIFETIME property) and then appropriately
-        query for other properties.
-
-        The different property ids and the corresponding type of 
-        'property' argument is given below.
-
-          OCI_OBJECTPROP_LIFETIME 
-            This identifies whether the given object is a persistent
-            object (OCI_OBJECT_PERSISTENT) or a 
-            transient object (OCI_OBJECT_TRANSIENT) or a
-            value instance (OCI_OBJECT_VALUE).
-            'property' argument must be a pointer to a variable of 
-            type OCIObjectLifetime.
-            
-          OCI_OBJECTPROP_SCHEMA
-            This returns the schema name of the table in which the 
-            object exists. An error is returned if the given object 
-            points to a transient instance or a value. If the input 
-            buffer is not big enough to hold the schema name an error 
-            is returned, the error message will communicate the 
-            required size. Upon success, the size of the returned 
-            schema name in bytes is returned via 'size'.
-            'property' argument must be an array of type text and 'size'
-            should be set to size of array in bytes by the caller.
-
-          OCI_OBJECTPROP_TABLE
-            This returns the table name in which the object exists. An 
-            error is returned if the given object points to a 
-            transient instance or a value. If the input buffer is not 
-            big enough to hold the table name an error is returned, 
-            the error message will communicate the required size. Upon 
-            success, the size of the returned table name in bytes is 
-            returned via 'size'. 'property' argument must be an array 
-            of type text and 'size' should be set to size of array in 
-            bytes by the caller.
-            
-          OCI_OBJECTPROP_PIN_DURATION
-            This returns the pin duration of the object.
-            An error is returned if the given object points to a value 
-            instance. Valid pin durations are: OCI_DURATION_SESSION and
-            OCI_DURATION_TRANS.
-            'property' argument must be a pointer to a variable of type 
-            OCIDuration.
-            
-          OCI_OBJECTPROP_ALLOC_DURATION
-            This returns the allocation duration of the object.
-            Valid allocation durations are: OCI_DURATION_SESSION and
-            OCI_DURATION_TRANS.
-            'property' argument must be a pointer to a variable of type 
-            OCIDuration.
-            
-          OCI_OBJECTPROP_LOCK
-            This returns the lock status of the 
-            object. The possible lock status is enumerated by OCILockOpt.
-            An error is returned if the given object points to a transient
-            or value instance.
-            'property' argument must be a pointer to a variable of 
-            type OCILockOpt.
-            Note, the lock status of an object can also be retrieved by
-            calling OCIObjectIsLocked().
-
-          OCI_OBJECTPROP_MARKSTATUS
-            This returns the status flag which indicates whether the
-            object is a new object, updated object and/or deleted object.
-            The following macros can be used to test the mark status
-            flag:
-
-              OCI_OBJECT_IS_UPDATED(flag)
-              OCI_OBJECT_IS_DELETED(flag)
-              OCI_OBJECT_IS_NEW(flag)
-              OCI_OBJECT_IS_DIRTY(flag)
-
-            An object is dirty if it is a new object or marked deleted or 
-            marked updated.
-            An error is returned if the given object points to a transient
-            or value instance. 'property' argument must be of type 
-            OCIObjectMarkStatus.
-            
-          OCI_OBJECTPROP_VIEW
-            This identifies whether the specified object is a view object
-            or not. If property value returned is TRUE, it indicates the
-            object is a view otherwise it is not.
-            'property' argument must be of type boolean.
-
-   RETURNS:
-        if environment handle or error handle is null, return
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS.
-        if operation fails, return OCI_ERROR. Possible errors are TBD
- */
-
-/*---------------------------- OCIObjectIsLocked --------------------------*/
-sword OCIObjectIsLocked(    OCIEnv *env, OCIError *err, dvoid *ins,
-                              boolean *lock);
-/*
-   NAME: OCIObjectIsLocked - OCI get the lock status of a standalone object
-   PARAMETERS:
-        env       (IN/OUT) - OCI environment handle initialized in object mode
-        err       (IN/OUT) - error handle. If there is an error, it is
-                             recorded in 'err' and this function returns
-                             OCI_ERROR.  The error recorded in 'err' can be
-                             retrieved by calling OCIErrorGet().
-        ins           (IN) - pointer to an instance
-        lock         (OUT) - return value for the lock status.
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The instance must be standalone.
-        - If the object is referenceable, the specified object must be pinned.
-   DESCRIPTION:
-        This function returns the lock status of an instance. If the instance
-        is a value, this function always returns FALSE.
-   RETURNS:
-        if environment handle or error handle is null, return
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS.
-        if operation fails, return OCI_ERROR.
- */
-
-/*------------------------- OCIObjectIsDirty ------------------------------*/
-sword OCIObjectIsDirty(    OCIEnv *env, OCIError *err, dvoid *ins,
-                           boolean *dirty);
-/*
-   NAME: OCIObjectIsDirty - OCI get the dirty status of a standalone object
-   PARAMETERS:
-        env       (IN/OUT) - OCI environment handle initialized in object mode
-        err       (IN/OUT) - error handle. If there is an error, it is
-                             recorded in 'err' and this function returns
-                             OCI_ERROR.  The error recorded in 'err' can be
-                             retrieved by calling OCIErrorGet().
-        ins           (IN) - pointer to an instance
-        dirty        (OUT) - return value for the dirty status.
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-        - The instance must be standalone.
-        - if instance is an object, the instance must be pinned.
-   DESCRIPTION:
-        This function returns the dirty status of an instance. If the instance
-        is a value, this function always returns FALSE.
-   RETURNS:
-        if environment handle or error handle is null, return
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS.
-        if operation fails, return OCI_ERROR.
- */
-
-/*--------------------------- OCIObjectPinTable -----------------------------*/
-sword OCIObjectPinTable(    OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-                  CONST oratext *schema_name, 
-                  ub4 s_n_length, CONST oratext *object_name, ub4 o_n_length, 
-                  CONST OCIRef *scope_obj_ref, OCIDuration pin_duration, 
-                  dvoid** object    );
-/*
-   NAME: OCIObjectPinTable - OCI get table object 
-   PARAMETERS:
-        env       (IN/OUT) - OCI environment handle initialized in object mode
-        err       (IN/OUT) - error handle. If there is an error, it is
-                             recorded in 'err' and this function returns 
-                             OCI_ERROR.  The error recorded in 'err' can be 
-                             retrieved by calling OCIErrorGet().
-        svc                     (IN) - OCI service context handle
-        schema_name   (IN, optional) - schema name of the table 
-        s_n_length    (IN, optional) - length of the schema name
-        object_name   (IN) - name of the table 
-        o_n_length    (IN) - length of the table name
-        scope_obj_ref (IN, optional) - reference of the scoping object
-        pin_duration  (IN) - pin duration. See description in OCIObjectPin(). 
-        object       (OUT) - the pinned table object
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-   DESCRIPTION:
-        This function pin a table object with the specified pin duration. 
-        The client can unpin the object by calling OCIObjectUnpin(). See 
-        OCIObjectPin() and OCIObjectUnpin() for more information about pinning
-        and unpinning. 
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*------------------------- OCIObjectArrayPin -------------------------------*/
-sword OCIObjectArrayPin(OCIEnv *env, OCIError *err, OCIRef **ref_array, 
-                  ub4 array_size, OCIComplexObject **cor_array,
-                  ub4 cor_array_size, OCIPinOpt pin_option, 
-                  OCIDuration pin_duration, OCILockOpt lock, 
-                  dvoid **obj_array, ub4 *pos    );
-/*
-   NAME: OCIObjectArrayPin - ORIO array pin 
-   PARAMETERS:
-        env       (IN/OUT) - OCI environment handle initialized in object mode
-        err       (IN/OUT) - error handle. If there is an error, it is
-                             recorded in 'err' and this function returns 
-                             OCI_ERROR.  The error recorded in 'err' can be 
-                             retrieved by calling OCIErrorGet().
-        ref_array     (IN) - array of references to be pinned 
-        array_size    (IN) - number of elements in the array of references 
-        pin_option    (IN) - pin option. See OCIObjectPin().
-        pin_duration  (IN) - pin duration. See OCIObjectPin(). 
-        lock_option   (IN) - lock option. See OCIObjectPin().
-        obj_array    (OUT) - If this argument is not NULL, the pinned objects 
-                             will be returned in the array. The user must 
-                             allocate this array with element type being 
-                             'dvoid *'. The size of this array is identical to
-                             'array'. 
-        pos          (OUT) - If there is an error, this argument will contain
-                             the element that is causing the error.  Note that
-                             this argument is set to 1 for the first element in
-                             the ref_array. 
-   REQUIRE:
-        - a valid OCI environment handle must be given.
-        - If 'obj_array' is not NULL, then it must already be allocated and
-             the size of 'obj_array' is 'array_size'. 
-   DESCRIPTION:
-        This function pin an array of references.  All the pinned objects are 
-        retrieved from the database in one network roundtrip.  If the user 
-        specifies an output array ('obj_array'), then the address of the 
-        pinned objects will be assigned to the elements in the array. See
-        OCIObjectPin() for more information about pinning.
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*---------------------------------------------------------------------------*/
-/*                           HEAP/CACHE OPERATIONS                           */
-/*---------------------------------------------------------------------------*/
-
-/*--------------------------- OCICacheFlush ---------------------------------*/
-sword OCICacheFlush(    OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-                  dvoid *context, OCIRef *(*get)(dvoid *context, ub1 *last),
-                  OCIRef **ref  );
-/*
-   NAME: OCICacheFlush - OCI flush persistent objects 
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                      recorded in 'err' and this function returns 
-                      OCI_ERROR.  The error recorded in 'err' can be 
-                      retrieved by calling OCIErrorGet().
-        svc      (IN) [optional] - OCI service context.  If null pointer is
-                      specified, then the dirty objects in all connections
-                      will be flushed.
-        context  (IN) [optional] - specifies an user context that is an 
-                      argument to the client callback function 'get'. This 
-                      parameter is set to NULL if there is no user context.
-        get      (IN) [optional] - an client-defined function which acts an 
-                      iterator to retrieve a batch of dirty objects that need 
-                      to be flushed. If the function is not NULL, this function
-                      will be called to get a reference of a dirty object.  
-                      This is repeated until a null reference is returned by 
-                      the client function or the parameter 'last' is set to 
-                      TRUE. The parameter 'context' is passed to get() 
-                      for each invocation of the client function.  This 
-                      parameter should be NULL if user callback is not given.
-                      If the object that is returned by the client function is
-                      not a dirtied persistent object, the object is ignored.
-                      All the objects that are returned from the client
-                      function must be from newed or pinned the same service 
-                      context, otherwise, an error is signalled. Note that the 
-                      returned objects are flushed in the order in which they
-                      are marked dirty.
-        ref     (OUT) [optional] - if there is an error in flushing the 
-                      objects, (*ref) will point to the object that
-                      is causing the error.  If 'ref' is NULL, then the object 
-                      will not be returned.  If '*ref' is NULL, then a 
-                      reference will be allocated and set to point to the 
-                      object.  If '*ref' is not NULL, then the reference of
-                      the object is copied into the given space. If the
-                      error is not caused by any of the dirtied object,
-                      the given ref is initalized to be a NULL reference
-                      (OCIRefIsNull(*ref) is TRUE).
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-   DESCRIPTION:
-        This function flushes the modified persistent objects from the 
-        environment heap to the server. The objects are flushed in the order 
-        that they are marked updated or deleted. 
-
-        See OCIObjectFlush() for more information about flushing.
-
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*--------------------------- OCICacheRefresh -------------------------------*/
-sword OCICacheRefresh(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc,
-                  OCIRefreshOpt option, dvoid *context,
-                  OCIRef *(*get)(dvoid *context), OCIRef **ref);
-/*
-   NAME: OCICacheRefresh - OCI ReFreSh persistent objects 
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                       recorded in 'err' and this function returns 
-                       OCI_ERROR.  The error recorded in 'err' can be 
-                       retrieved by calling OCIErrorGet().
-        svc     (IN) [optional] - OCI service context.  If null pointer is
-                      specified, then the persistent objects in all connections
-                      will be refreshed. 
-        option   (IN) [optional] - if OCI_REFRESH_LOAD is specified, all
-                      objects that is loaded within the transaction are
-                      refreshed. If the option is OCI_REFERSH_LOAD and the
-                      parameter 'get' is not NULL, this function will ignore
-                      the parameter. 
-        context  (IN) [optional] - specifies an user context that is an 
-                      argument to the client callback function 'get'. This 
-                      parameter is set to NULL if there is no user context.
-        get      (IN) [optional] - an client-defined function which acts an 
-                      iterator to retrieve a batch of objects that need to be
-                      refreshed. If the function is not NULL, this function
-                      will be called to get a reference of an object.  If 
-                      the reference is not NULL, then the object will be 
-                      refreshed.  These steps are repeated until a null 
-                      reference is returned by this function.  The parameter
-                      'context' is passed to get() for each invocation of the
-                      client function.  This parameter should be NULL if user 
-                      callback is not given.
-        ref     (OUT) [optional] - if there is an error in refreshing the
-                      objects, (*ref) will point to the object that
-                      is causing the error.  If 'ref' is NULL, then the object
-                      will not be returned.  If '*ref' is NULL, then a
-                      reference will be allocated and set to point to the
-                      object.  If '*ref' is not NULL, then the reference of
-                      the object is copied into the given space. If the
-                      error is not caused by any of the object,
-                      the given ref is initalized to be a NULL reference
-                      (OCIRefIsNull(*ref) is TRUE).
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-   DESCRIPTION:
-        This function refreshes all pinned persistent objects. All unpinned 
-        persistent objects are freed.  See OCIObjectRefresh() for more 
-        information about refreshing.
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*---------------------------- OCICacheUnpin --------------------------------*/
-sword OCICacheUnpin(    OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc    );
-/*
-   NAME: OCICacheUnpin - OCI UNPin objects 
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                       recorded in 'err' and this function returns 
-                       OCI_ERROR.  The error recorded in 'err' can be 
-                       retrieved by calling OCIErrorGet().
-        svc     (IN) [optional] - OCI service context. If null pointer is
-                       specified, then the objects in all connections
-                       will be unpinned.
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-   DESCRIPTION:
-        If a connection is specified, this function completely unpins the 
-        persistent objects in that connection. Otherwise, all persistent 
-        objects in the heap are completely unpinned. All transient objects in 
-        the heap are also completely unpinned. See OCIObjectUnpin() for more 
-        information about unpinning.
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
- */
-
-/*----------------------------- OCICacheFree --------------------------------*/
-sword OCICacheFree(    OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc    ); 
-/*
-   NAME: OCICacheFree - OCI FREe instances 
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                       recorded in 'err' and this function returns 
-                       OCI_ERROR.  The error recorded in 'err' can be 
-                       retrieved by calling OCIErrorGet().
-        svc     (IN) [optional] - OCI service context. If null pointer is
-                       specified, then the objects in all connections
-                       will be freed.
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-   DESCRIPTION:
-        If a connection is specified, this function frees the persistent 
-        objects, transient objects and values allocated for that connection.  
-        Otherwise, all persistent objects, transient objects and values in the 
-        heap are freed. Objects are freed regardless of their pin count.  See 
-        OCIObjectFree() for more information about freeing an instance.
-   RETURNS:
-        if environment handle or error handle is null, return 
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS. 
-        if operation fails, return OCI_ERROR. 
-*/
-
-/*---------------------------- OCICacheUnmark -------------------------------*/
-sword OCICacheUnmark(    OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc    );
-/*
-   NAME: OCICacheUnmark - OCI Unmark all dirty objects
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                       recorded in 'err' and this function returns
-                       OCI_ERROR.  The error recorded in 'err' can be
-                       retrieved by calling OCIErrorGet().
-        svc     (IN) [optional] - OCI service context. If null pointer is
-                       specified, then the objects in all connections
-                       will be unmarked. 
-   REQUIRES:
-        - a valid OCI environment handle must be given.
-   DESCRIPTION:
-        If a connection is specified, this function unmarks all dirty objects 
-        in that connection.  Otherwise, all dirty objects in the cache are
-        unmarked. See OCIObjectUnmark() for more information about unmarking
-        an object.
-   RETURNS:
-        if environment handle or error handle is null, return
-        OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS.
-        if operation fails, return OCI_ERROR.
- */
-
-
-sword OCIDurationBegin(    OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-                           OCIDuration parent, OCIDuration *dur    );
-/*
-   NAME: OCIDurationBegin - OCI DURATION BEGIN
-   PARAMETERS:
-        env  (IN/OUT) - OCI environment handle initialized in object mode
-                        This should be passed NULL, when cartridge services
-                        are to be used.
-        err  (IN/OUT) - error handle. If there is an error, it is
-                        recorded in 'err' and this function returns OCI_ERROR.
-                        The error recorded in 'err' can be retrieved by calling
-                       OCIErrorGet().
-        svc  (IN/OUT) - OCI service handle.  
-        parent   (IN) - parent for the duration to be started.
-        dur     (OUT) - newly created user duration 
-   REQUIRES:
-        - a valid OCI environment handle must be given for non-cartridge
-          services.
-        - For cartridge services, NULL should be given for environment handle
-        - A valid service handle must be given in all cases.
-   DESCRIPTION:
-        This function starts a new user duration.  A user can have multiple
-        active user durations simultaneously. The user durations do not have
-        to be nested.
- 
-        The object subsystem predefines 3 durations :
-          1) session     - memory allocated with session duration comes from
-                           the UGA heap (OCI_DURATION_SESSION). A session 
-                           duration terminates at the end of the user session.
-          2) transaction - memory allocated with transaction duration comes
-                           from the UGA heap (OCI_DURATION_TRANS). A trans-
-                           action duration terminates at the end of the user
-                           transaction.
-          3) call        - memory allocated with call duration comes from PGA
-                           heap (OCI_DURATION_CALL). A call duration terminates
-                           at the end of the user call.
- 
-        Each user duration has a parent duration.  A parent duration can be a
-        predefined duration or another user duration.  The relationship between
-        a user duration and its parent duration (child duration) are:
- 
-         1) An user duration is nested within the parent duration. When its
-             parent duration terminates, the user duration will also terminate.
-         2) The memory allocated with an user duration comes from the heap of
-             its parent duration. For example, if the parent duration of an
-             user duration is call, then the memory allocated with the user
-             duration will also come from the PGA heap.
-
-        This function can be used as both part of cartridge services as well 
-        as without cartridge services.
-        The difference in the function in the case of cartridge and 
-        non-cartridge services is:
-                In case of cartridge services, as descibed above a new user
-        duration is created as a child of the "parent" duration.
-                But when used for non-cartridge purposes, when a pre-defined
-        duration is passed in as parent, it is mapped to the cache duration
-        for that connection (which is created if not already present) and 
-        the new user duration will be child of the cache duration.
-
-   RETURNS:
-        if environment handle and service handle is null or if error 
-        handle is null return OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS.
-        if operation fails, return OCI_ERROR.
- */
-
-
-sword OCIDurationEnd(    OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-                         OCIDuration duration    );
-/*
-   NAME: OCIDurationEnd - OCI DURATION END
-   PARAMETERS:
-        env  (IN/OUT) - OCI environment handle initialized in object mode
-                        This should be passed NULL, when cartridge services
-                        are to be used.
-        err  (IN/OUT) - error handle. If there is an error, it is
-                        recorded in 'err' and this function returns OCI_ERROR.
-                        The error recorded in 'err' can be retrieved by calling
-                       OCIErrorGet().
-        svc  (IN/OUT) - OCI service handle.  
-        dur     (OUT) - a previously created user duration using 
-                        OCIDurationBegin()
-   REQUIRES:
-        - a valid OCI environment handle must be given for non-cartridge
-          services.
-        - For cartridge services, NULL should be given for environment handle
-        - A valid service handle must be given in all cases.
-   DESCRIPTION:
-        This function terminates a user duration.  All memory allocated for
-        this duration is freed.
-
-        This function can be used as both part of cartridge services as well 
-        as without cartridge services.  In both cased, the heap duration
-        is freed and all the allocated memory for that duration is freed.
-        The difference in the function in the case of cartridge and 
-        non-cartridge services is:
-                In case of non-cartridge services, if the duration is pre-
-        defined, the associated cache duration (see OCIDurationBegin())
-        is also terminated and the following is done.
-          1) The child durations are terminated.
-          2) All objects pinned for this duration are unpinned.
-          3) All instances allocated for this duration are freed.
-
-                In case of cartridge services, only the heap duration is
-        freed.  All the context entries allocated for that duration are 
-        freed from the context hash table..
-
-   RETURNS:
-        if environment handle and service handle is null or if error 
-        handle is null return OCI_INVALID_HANDLE.
-        if operation suceeds, return OCI_SUCCESS.
-        if operation fails, return OCI_ERROR.
- */
-
-/******************************************************************************
-**          DO  NOT  USE  THE  FUNCTIONS  BELOW!                             **
-**          UNSUPPORTED INTERFACE                                            **
-**          WILL BE REMOVED/CHANGED IN A FUTURE RELEASE                      **
-******************************************************************************/
-
-sword OCIDurationGetParent(    OCIEnv *env, OCIError *err, 
-                               OCIDuration duration, OCIDuration *parent    );
-
-sword OCIObjectAlwaysLatest(    OCIEnv *env, OCIError *err, dvoid *object    );
-
-sword OCIObjectNotAlwaysLatest(    OCIEnv *env, OCIError *err, 
-                                   dvoid *object    );
-
-sword OCIObjectFlushRefresh(    OCIEnv *env, OCIError *err, dvoid *object);
-
-sword OCIObjectIsLoaded(    OCIEnv *env, OCIError *err, dvoid *ins, 
-                              boolean *load);
-
-sword OCIObjectIsDirtied(    OCIEnv *env, OCIError *err, dvoid *ins,
-                              boolean *dirty);
-
-sword OCICacheGetObjects(       OCIEnv *env, OCIError *err,
-                                CONST OCISvcCtx *svc,
-                                OCIObjectProperty property,
-                                dvoid *client_context,
-                                void (*client_callback)(
-                                    dvoid *client_context,
-                                    dvoid *object  ));
-
-sword OCICacheRegister(      OCIEnv *env, OCIError *err,
-                             OCIObjectEvent event,
-                             dvoid *client_context,
-                             void (*client_callback)(
-                                    dvoid *client_context,
-                                    OCIObjectEvent event,
-                                    dvoid *object));
-
-sword OCICacheFlushRefresh(    OCIEnv *env, OCIError *err, 
-                               CONST OCISvcCtx *svc, dvoid *context,
-                               OCIRef *(*get)(dvoid *context, ub1 *last),
-                               OCIRef **ref    );
-
-sword OCIObjectSetData(OCIEnv *env, OCIError *err, dvoid *obj_hdr, 
-        dvoid *data);
-
-sword OCIObjectGetNewOID(OCIEnv *env, OCIError *err, OCISvcCtx *svc, 
-        ub1 *oid);
-
-
-#endif /* ORI_ORACLE */
diff --git a/src/terralib/drivers/Oracle/OCI/include/orid.h b/src/terralib/drivers/Oracle/OCI/include/orid.h
deleted file mode 100644
index 2c915ff..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/orid.h
+++ /dev/null
@@ -1,372 +0,0 @@
-/* Copyright (c) 1994, 2003, Oracle Corporation.  All rights reserved.  */
-
-/*
-  Author:             Tin Nguyen
-  Date:               02/07/94
-  Source documents:   "Functional Specification for C Object Interface, Object
-                       Management Subsystem", "Oracle C Coding Standards
-                       version 2.2", and the header file template
-  Rule sets:          the generic and .h file rule sets
-  Quality status:     not exited
-  Identification tag: [ one or more letters to identify the .h file ] 
-  Revision code:      [ date of the last revision of the .h file ]
-
-  Note to the user of this header file:
-
-    Anything in this header file that is marked private is not supported and
-    must not be used.  Private sections are included in the header file to 
-    improve internal maintenance.
-
-  NAME
-
-    ORID - Oracle Object Interface for Dynamic Data Access
-
-  DESCRIPTION
-
-    This file contains declarations for C object interface functions including
-    the dynamic object data access operations that allow callers to dynamically
-    access and manipulate objects; these operations include getting and setting
-    attributes of an object.  These dynamic object operations are for accessing
-    and manipulation objects whose types are not known at compile-time.
-
-  RELATED DOCUMENTS
-  
-     Functional Specification for C Object Interface / Object Management System
-
-  PUBLIC FUNCTIONS
-
-    OCIObjectSetAttr - ORID SET attribute value
-    OCIObjectGetAttr - ORID GET attribute value
-
-  PRIVATE FUNCTIONS
-
-    None
-
-  EXAMPLES 
-
-    EXAMPLE 1
-
-    /o
-     o This example illustrates how an interative program can use the dynamic
-     o attribute access to display and modify attributes of an ADT instance.
-     o The interactive program does not know the type of the object at 
-     o compile time.
-     o/
-
-    void display(adt_ref, object, null_struct, names, names_count, 
-                          names_length, indexes, indexes_count)
-    {
-      /o Pin the ADT o/
-      if (OCIObjectPin(env, &adt_ref, OROOPOCUR, OROOPDTRA, OROOLMNON, &adt) 
-            != OROSTASUC)
-         /o error handling code o/ 
-
-      /o 
-       o Call the type manager to obtain all the attributes in the object.
-       o Display the content of each attribute in the ADT instance. If the 
-       o attribute is an array, display each element of the array. If the
-       o attribute is an ADT instance, recursively call this routine to
-       o display the embedded ADT instance.
-       o/ 
-      numAttrs = OCITypeAttrs(env, adt);
-      for (i= 1; i <= numAttrs; i++)
-      {
-         /o get attribute descriptor o/
-         if (ortgabp(env, adt, i, &ado_ref, &ado) != OROSTASUC)
-           /o error handling code o/ 
-
-         /o get attribute name o/
-         names[names_count] = OCITypeElemName(env, ado, 
-                   &names_length[names_count]);
-      
-         /o dynamically get the attr o/
-         if (OCIObjectGetAttr(env, object, null_struct, 0, adt_ref, names, 
-                     names_length, names_count+1, indexes, indexes_count, 0, 
-                     &null, &null_info, &attr) != OROSTASUC)
-            /o error handling code o/  
-
-         /o check if attribute is null o/
-         if (null) continue;
-
-         /o get typecode of attribute o/
-         typecode = OCITypeElemTypeCode(env, ado);
-
-         /o if attribute is a varray, display each element in varray o/
-         if (typecode == OCI_TYPECODE_VARRAY)
-         {
-            /o get the reference to the type of the element of the array o/ 
-            if (OCITypeElemParameterizedTyper(env, ado, &attr_type_ref) 
-               != OROSTASUC)
-               /o error handling code o/ 
-
-            /o get the size of array o/
-            if (orlasiz(env, &attr_type_ref, (orlva *)attr,  
-                         &numElm) != OROSTASUC)
-               /o error handling code o/  
-
-            /o get the typecode of the element of the array o/
-            if (ortty2r(env, attr_type_ref, &typecode) != OROSTASUC)
-               /o error handling code o/  
-
-            /o iterate the array o/
-            for (j=0; j < numElm; j++)
-            {
-              /o get an element in the array o/
-              if (OCIObjectGetAttr(env, attr, null_info, j+1, attr_type_ref,
-                  names, names_length, 0, indexes, 0, 0, &null, &null_info, 
-                  &element) != OROSTASUC)
-                  /o error handling code o/  
-
-              /o check if element is null o/
-              if (null) continue;
-
-              /o if attr is an ADT instance, recursively call this routine o/
-              if (typecode == OCI_TYPECODE_ADT || typecode == 
-                  OCI_TYPECODE_UNNAMEDADT) 
-              {
-                /o display the element as an adt o/
-                display(attr_type_ref, element, null_info, names, lengths, 
-                   0, indexes, 0);
-              }
-      
-              /o if attribute is scalar, print the value to the screen o/
-              else output_to_screen(element, typecode);
-            }
-         }
-
-         /o if attribute is an ADT instance, recursively call this routine o/
-         else if (typecode == OCI_TYPECODE_ADT || typecode == 
-              OCI_TYPECODE_UNNAMEDADT)
-         {
-            /o get the type ref of the attribute o/
-            if (ortgarf(env, ado, &attr_type_ref) != OROSTASUC)
-               /o error handling code o/ 
-
-             display(attr_type_ref, attr, null_info, 0, names, 0, names_length,
-                      indexes, 0);
-         }
-
-         /o if attribute is scalar, print the value to the screen o/
-         else output_to_screen(attr, typecode);
-      }
-    }
-
-    /o ******** main routine *********** o/
-    .... 
-
-    /o 
-     o Allocate the arrays for storing the path expression 
-     o/
-
-    /o get the tdo of type 'long' o/
-    if (orttypget(&env, con, "SYS", sizeof("SYS"), "SINT32", sizeof("SINT32"), 
-          OROOPDSES, &long_ref, &long_tdo) != OROSTASUC)
-          /o error handling code o/
-
-    /o get the tdo of type 'varchar' o/
-    if (orttypget(&env, con, "SYS", sizeof("SYS"), "SQL_VARCHAR2", 
-          sizeof("SQL_VARCHAR2"), OROOPDSES, &vchar_ref, &vchar_tdo) 
-          != OROSTASUC)
-          /o error handling code o/
-
-    /o allocate the varrays for the path expression o/ 
-    if (orlalloc(env, &vchar_ref, MAX_ARR_SIZE, &attr_names) != OROSTASUC)
-       /o error handling code o/ 
-
-    if (orlalloc(env, &long_ref, MAX_ARR_SIZE, &attr_name_lengths) 
-                != OROSTASUC)
-       /o error handling code o/ 
-
-    if (orlalloc(env, &long_ref, MAX_ARR_SIZE, &attr_name_indexes) 
-                != OROSTASUC)
-       /o error handling code o/ 
-
-    /o 
-     o Get an ADT instance. The ref to the ADT instance can be obtained
-     o by through ORI or OSCI. 
-     o/
-    if (OCIObjectPin(env, &obj_ref, OROOPOCUR, OROOPDTRA, OROOLMUPD, &object) 
-          != OROSTASUC)
-       /o error handling code o/ 
-
-    /o get the null structure of the ADT instance o/
-    if (OCIObjectGetInd(gp, object, &null_struct) != OROSTASUC)
-       /o error handling code o/ 
-
-    /o 
-     o Get the type of the ADT instance
-     o/
-
-    /o find out the type of the ADT instance o/
-    if (oriogto(env, object, &adt_ref) != OROSTASUC)
-       /o error handling code o/ 
-
-    /o display the object o/
-    display(adt_ref, object, null_struct, attr_names, 0, attr_names_lengths,
-                     attr_names_indexes, 0);
-
-    /o After the object is displayed, the program waits for the user to 
-     o respond.  The user modifies the values of an attribute and the
-     o program generates a path expression for the attribute and calls 
-     o OCIObjectSetAttr() to set the value. 
-     o/
-
-    if (OCIObjectSetAttr(env, object, null_struct, adt_ref, 
-                (text **)attr_names, (ub4 *)attr_name_lengths, 
-                attr_names_count, (ub4 *)attr_array_indexes, 
-                attr_array_indexes_count, 
-                (dvoid *)0, FALSE, (dvoid *)value) != OROSTASUC)
-       /o error handling code o/ 
-
-    END OF EXAMPLE 1
-
-  NOTES
-
-    This file has been subsetted to contain only the routines that will
-    be in the first release.
-
-  MODIFIED
-    srseshad   03/12/03  - convert oci public api to ansi
-    aahluwal   06/03/02  - bug 2360115
-    bpalaval   02/09/01  - Change text to oratext.
-    whe        09/01/99 -  976457:check __cplusplus for C++ code
-    sthakur    09/18/97 -  collection indexing not supported
-    cxcheng    08/05/97 -  fix compile with short names
-    skrishna   03/18/97 -  fix ifdef for supporting ansi and k&r proto-types
-    cxcheng    02/06/97 -  take out short name support except with SLSHORTNAME
-    cxcheng    10/17/96 -  final renaming of functions
-    jboonleu   10/07/96 -  beautify with OCI long names
-    cxcheng    10/07/96 -  change short names to long names for readability
-    jboonleu   09/27/96 -  fix lint
-    jwijaya    07/03/96 -  add ANSI prototypes
-    jboonleu   04/13/95 -  new interface
-    jwijaya    10/11/94 -  fix the sccs header and add namespace
-    tanguyen   08/22/94 -  fix example 
-    tanguyen   08/09/94 -  remove Sccsid declaration 
-    tanguyen   07/20/94 -  fix OCIObjectSetAttr and OCIObjectGetAttr to 
-                           use position descriptor 
-    tanguyen   07/18/94 -  change 'object' type to become ptr to object 
-    tanguyen   06/30/94 -  Fix the ORID_ORACLE ifdef 
-    tanguyen   06/27/94 -  update to template format 
-    skotsovo   05/12/94 -  replace ado with attribute position 
-    jweisz     05/11/94 -  test new checkin facility 
-    jwijaya    05/05/94 - orienv/ref/typ -> oroenv/ref/typ
-    jwijaya    02/07/94 - Creation
-
-*/
-
-#ifndef ORATYPES
-#include <oratypes.h>
-#endif
-#ifndef ORO_ORACLE
-#include <oro.h>
-#endif
-#ifndef OCI_ORACLE
-#include <oci.h>
-#endif
-
-#ifndef ORID_ORACLE
-#define ORID_ORACLE
-
-#ifdef SLSHORTNAME
-
-#define OCIObjectSetAttr oridset
-#define OCIObjectGetAttr oridget
-
-#endif /* SLSHORTNAME */
-
-/*---------------------------------------------------------------------------*/
-/*                           PUBLIC FUNCTIONS                                */
-/*---------------------------------------------------------------------------*/
-
-/*-------------------------- OCIObjectSetAttr ----------------------------*/
-sword OCIObjectSetAttr(    OCIEnv *env, OCIError *err, dvoid *instance, 
-                  dvoid *null_struct, struct OCIType *tdo, 
-                  CONST oratext **names, CONST ub4 *lengths, 
-                  CONST ub4 name_count, CONST ub4 *indexes, 
-                  CONST ub4 index_count, CONST OCIInd null_status, 
-                  CONST dvoid *attr_null_struct, CONST dvoid *attr_value    );
-/*
-   NAME: OCIObjectSetAttr - ORID SET value
-   PARAMETERS:
-        env  (IN) - OCI environment handle initialized in object mode
-        err  (IN) - error handle. If there is an error, it is
-                        recorded in 'err' and this function returns OCI_ERROR.
-                        The error recorded in 'err' can be retrieved by calling
-                        OCIErrorGet().
-        instance    (IN) - pointer to an ADT instance
-        null_struct (IN) - the null structure of the ADT instance or array
-        tdo         (IN) - pointer to the TDO
-        names       (IN) - array of attribute names. This is used to specify
-                           the names of the attributes in the path expression.
-        lengths     (IN) - array of lengths of attribute names.
-        name_count  (IN) - number of element in the array 'names'.
-        indexes     (IN) [OPTIONAL] - currently NOT SUPPORTED, pass (ub4 *)0.
-        index_count (IN) [OPTIONAL] - currently NOT SUPPORTED, pass (ub4)0.
-        attr_null_status (IN) - the null status of the attribute if the type of
-                                 attribute is primitive.
-        attr_null_struct (IN) - the null structure of an ADT or collection
-                                 attribute.
-        attr_value       (IN) - pointer to the attribute value.
-   REQUIRES:
-   DESCRIPTION:
-        This function set the attribute of the given object with the given 
-        value.  The position of the attribute is specified as a path 
-        expression which is an array of names and an array of indexes. 
-   RETURNS:
-        one of OROSTA*
-   EXAMPLES:
-        For path expression stanford.cs.stu[5].addr, the arrays will look like
-          names = {"stanford", "cs", "stu", "addr"} 
-          lengths = {8, 2, 3, 4}
-          indexes = {5}
-        
-        Also see the above example.
- */
-
-/*-------------------------- OCIObjectGetAttr ----------------------------*/
-sword OCIObjectGetAttr(    OCIEnv *env, OCIError *err, dvoid *instance, 
-                  dvoid *null_struct, struct OCIType *tdo, 
-                  CONST oratext **names, CONST ub4 *lengths, 
-                  CONST ub4 name_count, CONST ub4 *indexes, 
-                  CONST ub4 index_count, OCIInd *attr_null_status, 
-                  dvoid **attr_null_struct, dvoid **attr_value, 
-                  struct OCIType **attr_tdo    );
-/*
-   NAME: OCIObjectGetAttr - ORID GET value
-   PARAMETERS:
-        env  (IN) - OCI environment handle initialized in object mode
-        err  (IN) - error handle. If there is an error, it is
-                        recorded in 'err' and this function returns OCI_ERROR.
-                        The error recorded in 'err' can be retrieved by calling
-                        OCIErrorGet().
-        instance    (IN) - pointer to an ADT instance 
-        null_struct (IN) - the null structure of the ADT instance or array
-        tdo         (IN) - pointer to the TDO 
-        names       (IN) - array of attribute names. This is used to specify
-                           the names of the attributes in the path expression.
-        lengths     (IN) - array of lengths of attribute names. 
-        name_count  (IN) - number of element in the array 'names'.
-        indexes     (IN) [OPTIONAL] - currently NOT SUPPORTED, pass (ub4 *)0.
-        index_count (IN) [OPTIONAL] - currently NOT SUPPORTED, pass (ub4)0.
-        attr_null_status (OUT) - the null status of the attribute if the type 
-                                 of attribute is primitive. 
-        attr_null_struct (OUT) - the null structure of an ADT or collection
-                                 attribute.
-        attr_value       (OUT) - pointer to the attribute value.
-        attr_tdo         (OUT) - pointer to the TDO of the attribute.
-   REQUIRES:
-      - a valid OCI environment handle must be given.
-   DESCRIPTION:
-        This function gets a value from an ADT instance or from an array.
-        If the parameter 'instance' points to an ADT instance, then the path
-        expression specifies the location of the attribute in the ADT. 
-        It is assumed that the object is pinned and that the value returned 
-        is valid until the object is unpinned.
-   RETURNS:
-        one of OROSTA*
-   EXAMPLES:
-        See example in OCIObjectSetAttr(). Also see the above example.
- */
-
-#endif /* ORID_ORACLE */
diff --git a/src/terralib/drivers/Oracle/OCI/include/orl.h b/src/terralib/drivers/Oracle/OCI/include/orl.h
deleted file mode 100644
index c442bd2..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/orl.h
+++ /dev/null
@@ -1,3628 +0,0 @@
-/* Copyright (c) 1993, 2003, Oracle Corporation.  All rights reserved.  */
-
-/*
-  Author:             Srinath Krishnaswamy
-  Date:               11/24/93
-  Source documents:   "Functional Specification for C Language Mapping of
-                      OTS Types, Object Management Subsystem", "Oracle C
-                      Coding Standards version 2.2", and the header file
-                      template
-  Rule sets:          the generic and .h file rule sets
-  Quality status:     not exited
-  Identification tag: [ one or more letters to identify the .h file ]
-  Revision code:      11/24/93
- 
-  NAME
-
-    ORL - ORacle's external C Language interface to primitive OTS types
- 
-  DESCRIPTION
-
-    This header file contains C langauge interface to the OTS primitive
-    types. The interface includes C mapping of OTS primitive types and
-    the prototype of the pre-defined operations on the primitive types.
- 
-    ***********************************************************************
-    *** NOTE: The OCI functions for objects requires the                ***
-    ***       application to be running in OBJECT mode. That is, during ***
-    ***       process initialization OCIInitialize(), the mode          ***
-    ***       specified should be OBJECT mode.                          ***
-    **                OCIInitialize(OCI_OBJECT, ..);                    ***
-    ***********************************************************************
-
-  RELATED DOCUMENTS
-
-    [1] Krishnaswamy, Srinath and Nguyen, Tin A., "Functional Specification
-        for C Language Mapping of OTS Types, Object Management Subsystem",
-        March 1994.
-    [2] Nguyen, Tin A., "The Open Type System", Oracle Corporation,
-        February 1994.
-    [3] Klein, Jonathan D., "Large Field Management", Oracle Corporation,
-        October 1993.
- 
-  PUBLIC FUNCTIONS
- 
-    OCI - OCI functions to manipulate Oracle Number, float and decimal
-      ARITHMETIC
-        OCINumberInc - OCINumber INCrement (optimized)
-        OCINumberDec - OCINumber DECrement (optimized)
-        OCINumberAdd - OCINumber ADD numbers
-        OCINumberSub - OCINumber SUBtract numbers
-        OCINumberMul - OCINumber MULtiply numbers
-        OCINumberDiv - OCINumber DIVide numbers
-        OCINumberMod - OCINumber MODulo division
-        OCINumberIntPower - OCINumber integer PoWeR
-        OCINumberShift - OCINumber decimal ShiFT number
-        OCINumberNeg - OCINumber NEGate number
-        OCINumberAbs - OCINumber ABSolute value
-        OCINumberCeil - OCINumber CEiling of number
-        OCINumberFloor - OCINumber FLooR of number
-        OCINumberSqrt - OCINumber SQuare Root of number
-        OCINumberSign - OCINumber get SIGN of number
-      NATIVE TYPE CONVERSION
-        OCINumberToInt  - OCINumber convert number TO machine-format Integer
-        OCINumberFromInt - OCINumber convert machine-format Integer TO Number
-        OCINumberToReal  - OCINumber convert number TO machine-format Real
-        OCINumberToRealArray  - OCINumber convert array of numbers TO
-                                machine-format Real
-        OCINumberFromReal - OCINumber convert machine-format Real TO Number
-      TEXT STRING CONVERSION
-        OCINumberToText  - OCINumber convert number TO String
-        OCINumberFromText - OCINumber convert String TO Number
-      COMPARISON
-        OCINumberCmp - OCINumber CoMPare numbers
-        OCINumberIsZero - OCINumber comparison with ZERo
-        OCINumberIsInt - OCINumber Is an Integer
-      ASSIGNMENT
-        OCINumberAssign - OCINumber ASsiGn number
-        OCINumberSetZero - OCINumber Set number to Zero value
-        OCINumberSetPi - OCINumber Set number to Pi
-      ROUNDING
-        OCINumberTrunc - OCINumber TRUncate an Oracle number
-        OCINumberRound - OCINumber ROUnd number
-        OCINumberPrec - OCINumber round to Precision digits
-      TRANSCENDENTAL
-        OCINumberSin - OCINumber SINe
-        OCINumberArcSin - OCINumber Arc SINe
-        OCINumberHypSin - OCINumber SiNe Hyperbolic
-        OCINumberCos - OCINumber COSine
-        OCINumberArcCos - OCINumber Arc COSine
-        OCINumberHypCos - OCINumber CoSine Hyperbolic
-        OCINumberTan - OCINumber TANgent
-        OCINumberArcTan - OCINumber Arc TANgent
-        OCINumberArcTan2 - OCINumber Arc TaNgent 2
-        OCINumberHypTan - OCINumber TaNgent Hyperbolic
-        OCINumberPower - OCINumber arbitrary Base EXponentiation
-        OCINumberExp - OCINumber EXPonentiation to base e
-        OCINumberLn  - OCINumber Logarithm Natural
-        OCINumberLog - OCINumber LOGarithm to arbitrary base
-
-    OCIDate - OCI functions to manipulate OCI Date
-      OCIDateToExternal - OCIDate convert date to external form
-      OCIDateFromExternal - OCIDate convert external form of date into OCIDate
-      OCIDateAssign - OCIDate Assignment
-      OCIDateToText  - OCIDate convert date TO String
-      OCIDateFromText - OCIDate convert String TO Date
-      OCIDateZoneToZone - OCIDate convert date from one time 
-                        Zone TO another Zone
-      OCIDateCompare - OCIDate CoMPare dates
-      OCIDateAddMonths - OCIDate ADd or subtract Months
-      OCIDateAddDays - OCIDate ADd or subtract Days
-      OCIDateLastDay - OCIDate get date of LaST day of month
-      OCIDateDaysBetween - OCIDate get number of days BeTWeen two dates
-      OCIDateNextDay - OCIDate get date of Next DaY
-      OCIDateCheck - OCIDate CHecK if the given date is valid
-      OCIDateSysDate - OCIDate get current SYStem date and time
-
-    OCIString - OCI String functions to manipulate Variable-length string
-      OCIStringAssign - OCIString Assign string to string
-      OCIStringAssignText - OCIString Assign Text string to string
-      OCIStringResize - OCIString ReSiZe string
-      OCIStringSize - OCIString get String Size
-      OCIStringPtr - OCIString get String PoinTeR
-      OCIStringAllocSize - OCIString get Allocated SiZe
- 
-    OCIRaw - OCI Raw functions to manipulate variable-length raW
-      OCIRawAssignRaw - OCIRaw Assign Raw (of type OCIRaw*) to raw
-                        (of type OCIRaw*)
-      OCIRawResize - OCIRaw Resize raw
-      OCIRawSize - OCIRaw get Raw Size
-      OCIRawPtr  - OCIRaw get Raw data Pointer
-      OCIRawAllocSize - OCIRaw get Allocated Size
-
-    OCIColl - OCI Collection generic functions. These functions can be 
-                used to manipulate both variable-length array (varray) and 
-                nested table.
-      OCICollSize  - OCIColl return current SIZe of the given collection
-                (in number of elements)
-      OCICollMax  - OCIColl return the MAXimum number of elements in the
-                collection (i.e. upper-bound)
-      OCICollGetElem  - OCIColl GET pointer to the element at the given 
-                position
-      OCICollAssignElem  - OCIColl assign to element at given index
-      OCICollAssign  - OCIColl ASsiGn collection; perform deep-copy of source 
-                collection to target collection
-      OCICollAppend  - OCIColl aPPend the given element to the end of the
-                collection
-      OCICollTrim  - OCIColl trim (delete) the given number of elements 
-                from the end of the collection
-      OCICollIsLocator - OCIColl indicates whether a collection is locator
-                         based or not.
-      OCIIterCreate  - OCIColl Create an ITerator to scan the collection 
-                elements
-      OCIIterDelete  - OCIColl Delete ITerator
-      OCIIterInit  - OCIColl Initialize ITerator to scan the given collection
-      OCIIterGetCurrent - OCIColl Iterator based, get CURrent 
-                collection element
-      OCIIterNext - OCIColl Iterator based, get NeXT collection element
-      OCIIterPrev - OCIColl Iterator based, get PReVious collection element
- 
-      OCITable - OCI functions to manipulate nested Table. The OCIColl*() and 
-                OCITable*() functions can be used to manipulate nested table
-      OCITableDelete(i) - OCITable if element(i) exists then the element is 
-                marked as deleted else the function returns false. So 
-                delete's create "holes".
-      OCITableExists(i) - OCITable return true iff an element at
-                position i EXIsts
-      OCITableFirst  - OCITable return the smallest value of i for which
-                exists(i) is true.
-      OCITableLast  - OCITable return the largest value of i for which 
-                exists(i) is true.
-      OCITableNext(i) - OCITable return pointer to the smallest position j, 
-                greater than i, such that OCITableExists(j) is true
-      OCITablePrev(i) - OCITable return pointer to the largest position j,
-                less than i, such that OCITableExists(j) is true
-      OCITableSize - OCITable return current SIZe of the given nested table not
-                including deleted elements
-
-    OCIRef - OCI functions to manipulate object Reference
-      OCIRefClear  - OCIRef CLeaR or nullify a ref
-      OCIRefAssign  - OCIRef ASsiGn a ref to another
-      OCIRefIsEqual  - OCIRef compare two refs for EQUality
-      OCIRefIsNull  - OCIRef test if a ref is NULl 
-      OCIRefFromHex  - OCIRef convert a Hexadecimal string TO a Ref
-      OCIRefToHex   - OCIRef convert a ref to a Hexadecimal string
-      OCIRefHexSize  - OCIRef get size of buffer in bytes to store hexadecimal
-                string
-
-  OBSOLETE: to be replaced by functions from oci.h:
-
-    ORLL - ORL functions to manipulate lob Locators
-      orllasg   - ORLL AsiGn one locator to another
-      orllequ   - ORLL compare two locators for EQUality
-      orlliini  - ORLL Is the locator INItialized?
-      orllgsz   - ORLL Get locator SiZe
-      orllgcid  - ORLL Get Character set ID
-
-      NOTE: The following are specific to FILE lobs:
-
-      orllsnm - ORLL Set directory alias and file NaMe in the locator
-      orllgnm - ORLL Get directory alias and file NaMe from the locator
- 
-  EXAMPLES
-
-    Examples are given in the description of each function where
-    relevant.
- 
-  NOTES
-
-    This file has been subsetted to contain ONLY the routines that will
-    be in the first release.
- 
-  QUESTIONS
-     
-  MODIFIED
-    srseshad   03/12/03 - convert oci public api to ansi
-    rpingte    11/21/02 - Add OCICollGetElemArray and OCINumberToRealArray
-    aahluwal   06/03/02 - bug 2360115
-    gayyappa   02/01/02 - fix 2210776 : change Dom to DOM 
-    whe        09/25/01 - add OCIXMLType & OCIDomDocument opaque types
-    bpalaval   02/09/01   - Change text to oratext.
-    rkasamse   09/20/99 -   lint changes
-    whe        09/01/99 -   976457:check __cplusplus for C++ code
-    hsbedi     08/11/99 -   Add macro
-    rxgovind   10/14/98 -  make non exposed calls (OCIRowType etc) private
-    rxgovind   06/09/98 -  update OCIRowTypeCreate
-    nmantrav   05/11/98 -  add OCIRowTypeGetCount
-    rxgovind   03/29/98 -  add OCIRowType and OCIRowData interfaces
-    jwijaya    05/06/98  - add OCICollIsLocator                                
-    rxgovind   03/18/98 -  opaque types: move to kolo.h
-    etucker    02/02/98 -  add comments for Dec and Inc
-    etucker    01/29/98 -  Finish core5 integration
-    rxgovind   11/11/97 -  opaque types
-    etucker    10/28/97 -  add ORLN functions for SDK
-    cxcheng    07/28/97 -  remove OCILobLocator #define
-    skmishra   05/13/97 -  stdcc compatibility changes
-    skrishna   04/25/97 -  rename OCINumber*(): Exp Power TanHyp Zero Init
-                           TanToArc Sqr Truncate and Compare 
-    skotsovo   03/31/97 -  remove OCILobLocatorSize
-    skrishna   03/25/97 -  remove orld2i and orldi2d
-    skrishna   03/18/97 -  fix ifdef for supporting ansi and k&r proto-types
-    cxcheng    02/06/97 -  take out short name support except with SLSHORTNAME
-    skrishna   01/06/97 -  update OCITableSize() comments
-    skrishna   12/27/96 -  fix OCIDateGet/OCIDateSet
-    skrishna   12/12/96 -  update OCICollGelElem comments
-    skrishna   11/07/96 -  OCICollGetElem: interface change
-    skrishna   11/05/96 -  add OCIDate Get/Set and OCIDateAssign
-    cxcheng    10/31/96 -  change OCINumberTanHyp to OCINumberHypTan
-    cxcheng    10/30/96 -  #define orll short names to long names
-    dchatter   10/26/96 -  fix some OCI file long names
-    cxcheng    10/24/96 -  remove unnecessary comment in front
-    cxcheng    10/14/96 -  disable long name mapping for LOB functions
-    skrishna   10/13/96 -  continue beautification
-    skotsovo   10/16/96 -  update ocilob names
-    cxcheng    10/09/96 -  add structure members in #define for date/time
-    cxcheng    10/09/96 -  more lint fixes
-    skrishna   10/09/96 -  continue beautification
-    cxcheng    10/09/96 -  more fixes
-    skrishna   10/09/96 -  change fixed-char rep. to orlvstr*
-    jwijaya    10/08/96 -  continue beautification
-    jwijaya    10/07/96 -  beautify
-    cxcheng    10/07/96 -  more changes
-    cxcheng    10/04/96 -  replace short names with long names
-    skrishna   10/01/96 -  orlcsiz, orltsiz: change prototype to take errhdl
-    skrishna   09/23/96 -  fix lint errors
-    skotsovo   09/23/96 -  remove orllmkcur().
-    jwijaya    09/17/96 -  comments on null ref
-    skrishna   09/19/96 -  change orlraw format
-    skotsovo   09/19/96 -  add orlliini and remove orllnul
-    skrishna   08/14/96 -  orlvstr: change format to ub4 followed by text
-    jboonleu   08/06/96 -  update comment
-    skotsovo   08/08/96 -  revert to locators instead of descriptors as input t
-    jboonleu   07/23/96 -  remove orlrcur
-    skrishna   07/06/96 -  add orltsiz
-    skrishna   07/05/96 -  add orld2i and orldi2d
-    jwijaya    07/03/96 -  add ANSI prototypes
-    skrishna   06/27/96 -  document default string format in orlds2d & orld2s
-    skrishna   06/25/96 -  change max date value
-    skrishna   06/18/96 -  modify orld2s() comments
-    skotsovo   06/13/96 -  orll functions take lob descriptors instead of locat
-    rxgovind   06/05/96 -  change prototype of orlrcur to take ocienvh
-    skrishna   05/30/96 -  support collection trimming
-    skrishna   05/30/96 -  remove orlralo/fre and orllalo/fre instead use 
-                           orionew/fre
-    skrishna   05/28/96 -  add orlt*() and modify orla*()
-    skotsovo   05/23/96 -  add orlbl typedefs for pro*c
-    jboonleu   05/14/96 -  add orlrcur
-    rxgovind   05/08/96 -  changes for 3gl callbacks
-    skotsovo   05/01/96 -  in orllasg, no need to alloc orlbl*
-    skrishna   04/21/96 -  merge changes from 960418 object branch into big
-    skrishna   04/17/96 -  rename orlrcpy to orlrasg
-    skrishna   04/12/96 -  add orlr2h and orlrh2r functions
-    skotsovo   04/15/96 -  add fnt to make the lob locator current
-    skrishna   04/08/96 -  change orl*() to take ocienvh* and ocierrh* instead
-                           of oroenv*
-    skotsovo   03/22/96 -  add locator functions
-    skotsovo   03/22/96 -  add locator functions
-    skrishna   02/27/96 -  remove mlslabel interface
-    skotsovo   02/20/96 -  remove orlbty and use dty type instead.
-    skotsovo   02/14/96 -  add text file lobs.
-    skrishna   01/31/96 -  update comments of orln2r, orldchk, orlds2d & orld2s
-    skrishna   01/31/96 -  change orld2s() and orln2s() to return string length
-    skrishna   01/21/96 -  remove old raw interface 
-    skrishna   12/14/95 -  add raw interface
-    skotsovo   01/03/96 -  change LOB offsets and lengths from ub4 to ubig_ora
-                           to support 64 bit machines.
-    skotsovo   10/30/95 -  add orlblsiz() to get lob locator size
-    skrishna   10/24/95 -  move ref functions from ori and update the ref
-                           functions to support variable-length ref
-    cxcheng    10/20/95 -  add more comments on number versions
-    cxcheng    10/13/95 -  add more number functions
-    cxcheng    08/29/95 -  Support for segmented varrays
-    cxcheng    08/18/95 -  modifiy orlmls structure
-    skrishna   06/06/95 -  rename orln, orld, orlvs and orlva to orlnum,
-                           orldat, orlvstr and orlvary respectively 
-    skrishna   11/15/94 -  remove orlnget() function 
-    skrishna   09/20/94 -  modify orldbtw() to return number of days only 
-    skrishna   08/24/94 -  change format string length type from ub4 to ub1 
-    skrishna   07/19/94 -  Rename orln2c & orlnc2n to orln2s & orlns2n 
-    skrishna   06/29/94 -  Add blob interface; add examples 
-    skrishna   06/23/94 -  Update comments and format 
-    skrishna   05/19/94 -  update varray append comments 
-    skrishna    05/05/94 -  Subsetting 
-    skrishna    11/24/93 -  Creation
-*/
-
-#ifndef ORATYPES
-#include <oratypes.h>
-#endif
-
-#ifndef ORO_ORACLE
-#include <oro.h>
-#endif
-
-#ifndef ORT_ORACLE
-#include <ort.h>
-#endif
-
-#ifndef OCI_ORACLE
-#include <oci.h>
-#endif
-
-#ifndef ORL_ORACLE
-#define ORL_ORACLE
-
-/*---------------------------------------------------------------------------*/
-/*                         SHORT NAMES SUPPORT SECTION                       */
-/*---------------------------------------------------------------------------*/
-
-#ifdef SLSHORTNAME
-
-/* the following are short names that are only supported on IBM mainframes
-   with the SLSHORTNAME defined.
-   With this all subsequent long names will actually be substituted with
-   the short names here */
-
-#define OCIArray                        orlvary
-#define OCIColl                         orlcol
-#define OCICollAppend                   orlcapp
-#define OCICollAssign                   orlcasg
-#define OCICollAssignElem               orlcase
-#define OCICollGetElem                  orlcget
-#define OCICollGetElemArray             orlcgeta
-#define OCICollMax                      orlcmax
-#define OCICollSize                     orlcsiz
-#define OCICollTrim                     orlctrm
-#define OCICollIsLocator                orlcilc
-#define OCIDate                         orldat
-#define OCIDateAddDays                  orldadd
-#define OCIDateAddMonths                orldadm
-#define OCIDateCheck                    orldchk
-#define OCIDateCompare                  orldcmp
-#define OCIDateDD                       day_orldat
-#define OCIDateDaysBetween              orldbtw
-#define OCIDateFromText                 orlds2d
-#define OCIDateLastDay                  orldlst
-#define OCIDateMM                       mon_orldat
-#define OCIDateNextDay                  orldndy
-#define OCIDateSysDate                  orldsys
-#define OCIDateTime                     time_orldat
-#define OCIDateYYYY                     gye_orldat
-#define OCIDateZoneToZone               orldz2z
-#define OCIIter                         orlcitr
-#define OCIIterCreate                   orlccit
-#define OCIIterDelete                   orlcdit
-#define OCIIterGetCurrent               orlcicur
-#define OCIIterInit                     orlciit
-#define OCIIterNext                     orlcinxt
-#define OCIIterPrev                     orlciprv
-#define OCINumber                       orlnum
-#define OCINumberAbs                    orlnabs
-#define OCINumberAdd                    orlnadd
-#define OCINumberArcCos                 orlnacos
-#define OCINumberArcSin                 orlnasin
-#define OCINumberArcTan                 orlnatan
-#define OCINumberAssign                 orlnasg
-#define OCINumberCeil                   orlncel
-#define OCINumberCos                    orlncos
-#define OCINumberDiv                    orlndiv
-#define OCINumberPower                  orlnbex
-#define OCINumberFloor                  orlnflr
-#define OCINumberFromInt                orlni2n
-#define OCINumberFromReal               orlnr2n
-#define OCINumberFromText               orlns2n
-#define OCINumberHypCos                 orlncsh
-#define OCINumberHypSin                 orlnsnh
-#define OCINumberSetZero                orlnini
-#define OCINumberSetPi                  orlnspi
-#define OCINumberInc                    orlninc
-#define OCINumberDec                    orlndec
-#define OCINumberIntPower               orlnpwr
-#define OCINumberLn                     orlnln
-#define OCINumberLog                    orlnlog
-#define OCINumberMod                    orlnmod
-#define OCINumberMul                    orlnmul
-#define OCINumberNeg                    orlnneg
-#define OCINumberPart                   orlnpart
-#define OCINumberExp                    orlnexp
-#define OCINumberRound                  orlnrou
-#define OCINumberPrec                   orlnpre
-#define OCINumberShift                  orlnsft
-#define OCINumberSign                   orlnsgn
-#define OCINumberSin                    orlnsin
-#define OCINumberSqrt                   orlnsqr
-#define OCINumberSub                    orlnsub
-#define OCINumberTan                    orlntan
-#define OCINumberHypTan                 orlntnh
-#define OCINumberArcTan2                orlnatn2
-#define OCINumberToInt                  orln2i
-#define OCINumberToReal                 orln2r
-#define OCINumberToRealArray            orln2ra
-#define OCINumberToText                 orln2s
-#define OCINumberTrunc                  orlntru
-#define OCINumberCmp                    orlncmp
-#define OCINumberIsZero                 orlnzer
-#define OCINumberIsInt                  orlnint
-#define OCIRaw                          orlraw
-#define OCIRawAllocSize                 orlwasz
-#define OCIRawAssignBytes               orlwabr
-#define OCIRawAssignRaw                 orlwarr
-#define OCIRawPtr                       orlwgrp
-#define OCIRawResize                    orlwrsz
-#define OCIRawSize                      orlwgsz
-#define OCIRefAssign                    orlrasg
-#define OCIRefClear                     orlrclr
-#define OCIRefFromHex                   orlrh2r
-#define OCIRefHexSize                   orlrhsz
-#define OCIRefIsEqual                   orlrequ
-#define OCIRefIsNull                    orlrnul
-#define OCIRefToHex                     orlr2h
-#define OCIString                       orlvstr
-#define OCIStringAllocSize              orlvasz
-#define OCIStringAssign                 orlvass
-#define OCIStringAssignText             orlvats
-#define OCIStringPtr                    orlvgsp
-#define OCIStringResize                 orlvrsz
-#define OCIStringSize                   orlvgsz
-#define OCITable                        orltbl
-#define OCITableDelete                  orltdel
-#define OCITableExists                  orltexi
-#define OCITableFirst                   orltfst
-#define OCITableLast                    orltlst
-#define OCITableNext                    orltnxt
-#define OCITablePrev                    orltprv
-#define OCITableSize                    orltsiz
-#define OCITime                         orldtm
-#define OCITimeHH                       orldtmhh
-#define OCITimeMI                       orldtmmm
-#define OCITimeSS                       orldtmss
-#define OCI_LOBMODE_READONLY            ORLBMORO
-#define OCI_LOBMODE_READWRITE           ORLBMORW
-
-#endif                                                        /* SLSHORTNAME */
-
-/*****************************************************************************/
-/*                         NUMBER/FLOAT/DECIMAL TYPE                         */
-/*****************************************************************************/
-
-#define OCI_NUMBER_SIZE 22
-struct OCINumber
-{
-  ub1 OCINumberPart[OCI_NUMBER_SIZE];
-};
-typedef struct OCINumber OCINumber;
-
-/* 
- * OCINumber - OCI Number mapping in c
- *
- * The OTS types: NUMBER, NUMERIC, INT, SHORTINT, REAL, DOUBLE PRECISION,
- * FLOAT and DECIMAL are represented by OCINumber.
- * The contents of OCINumber is opaque to clients. 
- *
- * For binding variables of type OCINumber in OCI calls (OCIBindByName(),
- * OCIBindByPos(), and OCIDefineByPos()) use the type code SQLT_VNU.
- */
-
-/*
-   EXAMPLE 
-
-   The following example shows how to manipulate an attribute of type 
-   oracle number.
-  
-     struct person
-     {
-       OCINumber sal;
-     };
-     typedef struct person person;
-
-     OCIError *err;
-     person* joe;
-     person* tom;
-     person* debbie;
-     OCINumber  *joesal;
-     OCINumber  *tomsal;
-     OCINumber *debsal;
-     sword   status;
-     int     inum;
-     double  dnum;
-     OCINumber ornum;
-     char    buffer[21];
-     ub4     buflen;
-     sword   result;
-     
-     /o See oci.h for an example of how to initialize OCIError.
-      o For this example, assume the OCIEnv and OCIError has been
-      o initialized.
-      o/
-
-     /o Pin joe, tom and debbie person objects in the object cache. See ori.h
-      o for an example on pinning objects. For this example, assume that
-      o joe, tom and debbie are pointing to pinned objects.
-      o/
-     joesal = &joe->sal;
-     tomsal = &tom->sal;
-     debsal = &debbie->sal;
-
-     /o initialize joe's salary to be $12,000 o/
-     inum = 12000;
-     status = OCINumberFromInt(err, &inum, sizeof(inum), OCI_NUMBER_SIGNED,
-                               joesal);
-     if (status != OCI_SUCCESS)
-                              /o goto to handle error from OCINumberFromInt o/;
-
-     /o initialize tom's salary to be same as joe o/
-     OCINumberAssign(err, joesal, tomsal);
-
-     /o initialize debbie's salary to be 20% more than joe's o/
-     dnum = 1.2;
-     status = OCINumberFromReal(err, &dnum, sizeof(double), &ornum);
-     if (status != OCI_SUCCESS)
-                            /o goto to handle error from OCINumberFromReal o/;
-     status = OCINumberMul(err, joesal, &ornum, debsal);
-     if (status != OCI_SUCCESS)  /o goto to handle error from OCINumberMul o/;
-
-     /o give tom a 50% raise o/
-     dnum = 1.5;
-     status = OCINumberFromReal(err, &dnum, sizeof(double), &ornum);
-     if (status != OCI_SUCCESS)
-                            /o goto to handle error from OCINumberFromReal o/;
-     status = OCINumberMul(err, tomsal, &ornum, tomsal);
-     if (status != OCI_SUCCESS)  /o goto to handle error from OCINumberMul o/;
-
-     /o double joe's salary o/
-     status = OCINumberAdd(err, joesal, joesal, joesal);
-     if (status != OCI_SUCCESS)  /o goto to handle error from OCINumberAdd o/;
-
-     /o get joe's salary in integer o/
-     status = OCINumberToInt(err, joesal, sizeof(inum), OCI_NUMBER_SIGNED,
-                             &inum);
-     if (status != OCI_SUCCESS)/o goto to handle error from OCINumberToInt o/;
-     /o inum is set to 24000 o/
-
-     /o get debbie's salary in double o/
-     status = OCINumberToReal(err, debsal, sizeof(dnum), &dnum);
-     if (status != OCI_SUCCESS)/o goto to handle error from OCINumberToReal o/;
-     /o dnum is set to 14400 o/
-
-     /o print tom's salary as DEM0001`8000.00 o/
-     buflen = sizeof(buffer);
-     status = OCINumberToText(err, tomsal, "C0999G9999D99", 13, 
-                 "NLS_NUMERIC_CHARACTERS='.`' NLS_ISO_CURRENCY='Germany'", 54,
-                 &buflen, buffer);
-     if (status != OCI_SUCCESS)/o goto to handle error from OCINumberToText o/;
-     printf("tom's salary = %s\n", buffer);
-
-     /o compare joe and tom's salary o/
-     status = OCINumberCmp(err, joesal, tomsal, &result);
-     if (status != OCI_SUCCESS)  /o goto to handle error from OCINumberCmp o/;
-     /o result is positive o/
-
-     /o read debbie's new salary from string o/
-     status = OCINumberFromText(err, "48`000.00", 9, "99G999D99", 9,
-                      "NLS_NUMERIC_CHARACTERS='.`'", 27, debsal);
-     if (status != OCI_SUCCESS)
-                            /o goto to handle error from OCINumberFromText o/;
-     /o debbie's salary is now 48000.00 o/
-
-*/
-
-/*----------------------------- OCINumberInc --------------------------------*/
-
-sword OCINumberInc(    OCIError *err, OCINumber *number    );
-/*
-   NAME: OCINumberInc - OCINumber INCrement numbers
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN/OUT) a positive Oracle number to be incremented
-   DESCRIPTION:
-        Increment Oracle number in place. It is assumed that the input is
-        an integer between 0 and 100^21-2. If the is input too large, it will
-        be treated as 0 - the result will be an Oracle number 1. If the input
-        is not a positive integer, the result will be unpredictable.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*----------------------------- OCINumberDec --------------------------------*/
-
-sword OCINumberDec(    OCIError *err, OCINumber *number    );
-/*
-   NAME: OCINumberDec - OCINumber DECrement numbers
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN/OUT) - a positive Oracle number to be decremented
-   DESCRIPTION:
-        Decrement Oracle number in place. It is assumed that the input is an
-        integer between 1 and 100^21-2. If the input is too large, it will be
-        treated as 1 - the result will be an Oracle number 0. If the input is
-        not a positive integer, the result will be unpredictable.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*-------------------------- OCINumberSetZero -------------------------------*/
-
-void OCINumberSetZero(    OCIError *err, OCINumber *num    );
-/*
-   NAME: OCINumberSetZero - OCINumber Set number to Zero value
-   PARAMETERS:
-        err (IN/OUT) - pointer to OCI error handle
-        num (OUT) - set to zero value
-   DESCRIPTION:
-        Initialize the given number to value 0.
- */
-
-/*--------------------------- OCINumberSetPi --------------------------------*/
-
-void OCINumberSetPi(    OCIError *err, OCINumber *num    );
-/*
-   NAME: OCINumberSetPi - OCINumber Set number to Pi
-        err (IN/OUT) - pointer to OCI error handle
-        num (OUT) - set to zero value
-   DESCRIPTION:
-        Initialize the given number to value Pi.
- */
-
-/*----------------------------- OCINumberAdd --------------------------------*/
-
-sword OCINumberAdd(    OCIError *err, CONST OCINumber *number1, 
-                       CONST OCINumber *number2, OCINumber *result    );
-/*
-   NAME: OCINumberAdd - OCINumber ADD numbers
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number1, number2 (IN) - numbers to be added
-        result (OUT) - result of adding 'number1' with 'number2'
-   DESCRIPTION:
-        Add 'number1' with 'number2' and return result in 'result'.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*----------------------------- OCINumberSub --------------------------------*/
-
-sword OCINumberSub(    OCIError *err, CONST OCINumber *number1, 
-                       CONST OCINumber *number2, OCINumber *result    );
-/*
-   NAME: OCINumberSub - OCINumber SUBtract numbers
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number1, number2 (IN) - 'number2' subtracted from 'number1'
-        result (OUT) - subtraction result
-   DESCRIPTION:
-        Subtract 'number2' from 'number1' and return result in 'result'.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*----------------------------- OCINumberMul --------------------------------*/
-
-sword OCINumberMul(    OCIError *err, CONST OCINumber *number1, 
-                       CONST OCINumber *number2, OCINumber *result    );
-/*
-   NAME: OCINumberMul - OCINumber MULtiply numbers
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number1, number2 (IN) - numbers to be multiplied
-        result (OUT) - multiplication result
-   DESCRIPTION:
-        Multiply 'number1' with 'number2' and return result in 'result'.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*----------------------------- OCINumberDiv --------------------------------*/
-
-sword OCINumberDiv(    OCIError *err, CONST OCINumber *number1, 
-                       CONST OCINumber *number2, OCINumber *result    );
-/*
-   NAME: OCINumberDiv - OCINumber DIVide numbers
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number1 (IN) - pointer to the numerator
-        number2 (IN) - pointer to the denominator
-        result (OUT) - division result
-   DESCRIPTION:
-        Divide 'number1' by 'number2' and return result in 'result'.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
-          underflow errorr
-          overflow errorr
-          divide by zero errorr
- */
-
-/*----------------------------- OCINumberMod --------------------------------*/
-
-sword OCINumberMod(    OCIError *err, CONST OCINumber *number1, 
-                       CONST OCINumber *number2, OCINumber *result    );
-/*
-   NAME: OCINumberMod - OCINumber MODulous
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number1 (IN) - pointer to the numerator
-        number2 (IN) - pointer to the denominator
-        result (OUT) - remainder of the result
-   DESCRIPTION:
-        Finds the remainder of the division of two Oracle numbers.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
-          divide by zero errorr
- */
-
-/*------------------------ OCINumberIntPower --------------------------------*/
-
-sword OCINumberIntPower(    OCIError *err, CONST OCINumber *base,
-                            CONST sword exp, OCINumber *result    );
-/*
-   NAME: OCINumberIntPower - OCINumber takes an arbitary base to an arbitary
-                             integer PoWeR
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        base (IN) - base of the exponentiation
-        exp (IN) - exponent to which the base is to be raised
-        result (OUT) - output of exponentiation
-   DESCRIPTION:
-        Takes an arbitary base to an arbitary integer power.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*-------------------------- OCINumberShift ---------------------------------*/
-
-sword OCINumberShift(    OCIError *err, CONST OCINumber *number,
-                            CONST sword nDig, OCINumber *result    );
-/*
-   NAME: OCINumberShift - OCINumber multiplies by a power of 10.
-
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - Oracle Number to be shifted.
-        nDig   (IN) - number of decimal places to shift.
-        result (OUT) - shift result.
-   DESCRIPTION:
-        Multiplies number by 10^NDig and sets product to the result.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*----------------------------- OCINumberNeg --------------------------------*/
-
-sword OCINumberNeg(    OCIError *err, CONST OCINumber *number,
-                       OCINumber *result    );
-/*
-   NAME: OCINumberNeg - OCINumber NEGate number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - number to be negated
-        result (OUT) - will contain negated value of 'number'
-   DESCRIPTION:
-        Negates an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*------------------------- OCINumberToText ---------------------------------*/
-
-sword OCINumberToText(    OCIError *err, CONST OCINumber *number, 
-                          CONST oratext *fmt, ub4 fmt_length,
-                          CONST oratext *nls_params, ub4 nls_p_length,
-                          ub4 *buf_size, oratext *buf    );
-/*
-   NAME: OCINumberToText - OCINumber convert number TO String 
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - Oracle number to be converted
-        fmt (IN) - conversion format
-        fmt_length (IN) - length of the 'fmt' parameter
-        nls_params (IN) - nls format specification, if null string 
-                i.e. (oratext *)0, then the default parameters for the 
-                session is used
-        nls_p_length (IN) - length of the 'nls_params' parameter
-        buf_size (IN/OUT) - size of the buffer must be passed as input by
-                the caller, this function will return the length of the 
-                resulting string in bytes via this parameter. The length 
-                does not include the terminating null ('\0').
-        buf (OUT) - buffer into which the converted string is placed. The
-                resulting string is null terminated.
-   DESCRIPTION:
-        Converts the given number to a character string 
-        according to the specified format. Refer to "TO_NUMBER" conversion
-        function described in "Oracle SQL Language Reference Manual" for a
-        description of format and NLS parameters.
-        The converted number string is stored in the buffer 'buf', up to 
-        a max of '*buf_size' bytes. Length of the resulting string is
-        returned via 'buf_size'.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          'number' or 'buf' is null
-          buffer too small
-          invalid format
-          invalid nls format
-          number to text translation for the given format causes overflow
- */
-
-/*-------------------------- OCINumberFromText ------------------------------*/
-
-sword OCINumberFromText(    OCIError *err, CONST oratext *str, 
-                          ub4 str_length, CONST oratext *fmt, ub4 fmt_length, 
-                          CONST oratext *nls_params, ub4 nls_p_length, 
-                          OCINumber *number    );
-/*
-   NAME: OCINumberFromText - OCINumber convert String TO Number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        str (IN) - input string to be converted to Oracle number
-        str_length (IN) - size of the input string
-        fmt (IN) - conversion format
-        fmt_length (IN) - length of the 'fmt' parameter
-        nls_params (IN) - nls format specification, if null string 
-                i.e. (oratext *)0, then the default parameters for the 
-                session is used
-        nls_p_length (IN) - length of the 'nls_params' parameter
-        number (OUT) - given string converted to number
-   DESCRIPTION:
-        Converts the given string to a number
-        according to the specified format. Refer to "TO_NUMBER" conversion
-        function described in "Oracle SQL Language Reference Manual" for a
-        description of format and NLS parameters.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          'number' or 'str' is null
-          'str_length' is 0
-          invalid format
-          invalid nls format
-          invalid input string
- */
-
-/*-------------------------- OCINumberToInt ---------------------------------*/
-
-#define OCI_NUMBER_UNSIGNED 0                        /* Unsigned type -- ubX */
-#define OCI_NUMBER_SIGNED   2                          /* Signed type -- sbX */
-
-sword OCINumberToInt(    OCIError *err, CONST OCINumber *number,
-                         uword rsl_length, uword rsl_flag, dvoid *rsl    );
-/*
-   NAME: OCINumberToInt - OCINumber convert number TO Integer
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - number to be converted
-        rsl_length (IN) - size of the desired result
-        rsl_s_flag (IN) - flag denoting the desired sign of the output; valid 
-                values are OCI_NUMBER_UNSIGNED, OCI_NUMBER_SIGNED
-        rsl (OUT) - pointer to space for the result
-   DESCRIPTION:
-        Native type conversion function.
-        Converts the given Oracle number into an xbx (e.g. ub2, ub4, sb2 etc.)
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          'number' or 'rsl' is null
-          integer value of 'number' is too big -- overflow
-          integer value of 'number' is too small -- underflow
-          invalid sign flag value ('rsl_s_flag')
- */
-
-/*--------------------------- OCINumberFromInt ------------------------------*/
-
-sword OCINumberFromInt(    OCIError *err, CONST dvoid *inum, uword inum_length,
-                         uword inum_s_flag, OCINumber *number    );
-/*
-   NAME: OCINumberFromInt - OCINumber convert Integer TO Number 
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        inum (IN) - pointer to the integer to be converted
-        inum_length (IN) - size of the integer
-        inum_s_flag (IN) - flag that designates the sign of the integer; valid 
-                values are OCI_NUMBER_UNSIGNED, OCI_NUMBER_SIGNED
-        number (OUT) - given integer converted to Oracle number
-   DESCRIPTION:
-        Native type conversion function. Converts any Oracle standard
-        machine-native integer type (xbx) to an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          'number' or 'inum' is null
-          integer too BIG -- the number is too large to fit into an Oracle
-                number
-          invalid sign flag value ('inum_s_flag')
- */
-
-/*------------------------- OCINumberToReal ---------------------------------*/
-
-sword OCINumberToReal(    OCIError *err, CONST OCINumber *number,
-                          uword rsl_length, dvoid *rsl    );
-/*
-   NAME: OCINumberToReal - OCINumber convert number TO Real
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - number to be converted
-        rsl_length (IN) - is the size of the desired result, 
-                sizeof( float | double | long double)
-        rsl (OUT) - pointer to space for storing the result
-   DESCRIPTION:
-        Native type conversion function. Converts an Oracle number into a
-        machine-native real type. This function only converts numbers up to
-        LDBL_DIG, DBL_DIG, or FLT_DIG digits of precision and removes
-        trailing zeroes. The above constants are defined in float.h
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          'number' or 'rsl' is null
-          'rsl_length' is 0
- */
-
-/*------------------------- OCINumberToRealArray ----------------------------*/
-
-sword OCINumberToRealArray(  OCIError *err, CONST OCINumber **number,
-                             uword elems, uword rsl_length, dvoid *rsl    );
-/*
-   NAME: OCINumberToRealArray - OCINumber convert array of numbers TO Real
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - Pointer to array of number to be converted
-        elems (IN) - Upper bound of number array
-        rsl_length (IN) - is the size of the desired result,
-                                          sizeof( float | double | long double)
-        rsl (OUT) - pointer to array of space for storing the result
-   DESCRIPTION:
-        Native type conversion function. Converts an Oracle number into a
-        machine-native real type. This function only converts numbers up to
-        LDBL_DIG, DBL_DIG, or FLT_DIG digits of precision and removes
-        trailing zeroes. The above constants are defined in float.h
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          'number' or 'rsl' is null
-          'rsl_length' is 0
- */
-
-/*-------------------------- OCINumberFromReal ------------------------------*/
-
-sword OCINumberFromReal(    OCIError *err, CONST dvoid *rnum,
-                            uword rnum_length, OCINumber *number    );
-/*
-   NAME: OCINumberFromReal - OCINumber convert Real TO Number 
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        rnum (IN) - pointer to the floating point number to be converted
-        rnum_length (IN) - size of the desired result, i.e.
-                sizeof({float | double | long double})
-        number (OUT) - given float converted to Oracle number
-   DESCRIPTION:
-        Native type conversion function. Converts a machine-native floating
-        point type to an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          'number' or 'rnum' is null
-          'rnum_length' is 0
- */
-
-/*----------------------------- OCINumberCmp --------------------------------*/
-
-sword OCINumberCmp(    OCIError *err, CONST OCINumber *number1, 
-                       CONST OCINumber *number2, sword *result    );
-/*
-   NAME: OCINumberCmp - OCINumber CoMPare numbers 
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number1, number2 (IN) - numbers to be compared
-        result (OUT) - 0 if equal, negative if number1 < number2, 
-                positive if number1 > number2 
-   DESCRIPTION:
-        The function OCINumberCmp compares two numbers.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-            'number1' or 'number2' or 'result' is null 
- */
-
-/*---------------------------- OCINumberSign --------------------------------*/
-
-sword OCINumberSign(    OCIError *err, CONST OCINumber *number,
-                        sword *result    );
-/*
-   NAME: OCINumberSign - OCINumber obtains SiGN of an Oracle number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - number whose sign is returned
-        result (OUT) - 0 if number == 0, -1 if number < 0, 
-                1 if number > 0 
-   DESCRIPTION:
-        Obtains sign of an Oracle number
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-            'number' or 'result' is null
- */
-
-/*---------------------------- OCINumberIsZero ------------------------------*/
-
-sword OCINumberIsZero(    OCIError *err, CONST OCINumber *number,
-                          boolean *result    );
-/*
-   NAME: OCINumberIsZero - OCINumber comparison with ZERo
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - numbers to be compared
-        result (OUT) - set to TRUE if equal to zero else FALSE
-   DESCRIPTION:
-        Test if the given number is equal to zero.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-            'number' or 'result' is null
- */
-
-/*---------------------------- OCINumberIsInt -------------------------------*/
-
-sword OCINumberIsInt(    OCIError *err, CONST OCINumber *number,
-                          boolean *result    );
-/*
-   NAME: OCINumberIsInt - OCINumber Is Integer value.
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - number to be tested
-        result (OUT) - set to TRUE if integer value else FALSE
-   DESCRIPTION:
-        Test if the given number is an integer value.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-            'number' or 'result' is null
- */
-
-/*-------------------------- OCINumberAssign --------------------------------*/
- 
-sword OCINumberAssign(    OCIError *err, CONST OCINumber *from,
-                          OCINumber *to    );
-/*
-   NAME: OCINumberAssign - OCINumber ASsiGn number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        from (IN) - number to be assigned
-        to (OUT) - number copied into
-   DESCRIPTION:
-        Assign number 'from' to 'to'.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          'from' or 'to' is null
- */
-
-/*----------------------------- OCINumberAbs --------------------------------*/
-
-sword OCINumberAbs(    OCIError *err, CONST OCINumber *number,
-                       OCINumber *result    );
-/*
-   NAME: OCINumberAbs - OCINumber compute ABSolute value
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - input number
-        result (OUT) - output which will contain the absolue value of the
-                input number
-   DESCRIPTION:
-        Computes the absolute value of an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*---------------------------- OCINumberCeil --------------------------------*/
-
-sword OCINumberCeil(    OCIError *err, CONST OCINumber *number,
-                        OCINumber *result    );
-/*
-   NAME: OCINumberCeil - OCINumber compute the CEiL value of an Oracle number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - input number
-        result (OUT) - output which will contain the ceil value of the
-                input number
-   DESCRIPTION:
-        Computes the ceil value of an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*--------------------------- OCINumberFloor --------------------------------*/
-
-sword OCINumberFloor(    OCIError *err, CONST OCINumber *number, 
-                         OCINumber *result    );
-/*
-   NAME: OCINumberFloor - OCINumber compute the FLooR value of an Oracle number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - input number
-        result (OUT) - output which will contain the floor value of the
-                input number
-   DESCRIPTION:
-        Computes the floor value of an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*----------------------------- OCINumberSqrt -------------------------------*/
-
-sword OCINumberSqrt(    OCIError *err, CONST OCINumber *number, 
-                       OCINumber *result    );
-/*
-   NAME: OCINumberSqrt - OCINumber compute the SQuare Root of an Oracle number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - input number
-        result (OUT) - output which will contain the square root of the
-                input number
-   DESCRIPTION:
-        Computes the square root of an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
-          'number' is negative
- */
-
-/*--------------------------- OCINumberTrunc --------------------------------*/
-
-sword OCINumberTrunc(    OCIError *err, CONST OCINumber *number, 
-                         sword decplace, OCINumber *result    );
-/*
-   NAME: OCINumberTrunc - OCINumber TRUncate an Oracle number at a 
-                          specified decimal place
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - input number
-        decplace (IN) - number of decimal digits to the right of the 
-                decimal point to truncate at. Negative values are allowed.
-        result (OUT) - output of truncation
-   DESCRIPTION:
-        Truncate an Oracle number at a specified decimal place
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*----------------------------- OCINumberPower ------------------------------*/
-
-sword OCINumberPower(    OCIError *err, CONST OCINumber *base, 
-                         CONST OCINumber *number, OCINumber *result    );
-/*
-   NAME: OCINumberPower - OCINumber takes an arbitary Base to an 
-                          arbitary Power
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        base (IN) - base of the exponentiation
-        number (IN) - exponent to which the base is to be raised
-        result (OUT) - output of exponentiation
-   DESCRIPTION:
-        Takes an arbitary base to an arbitary power.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*--------------------------- OCINumberRound --------------------------------*/
-
-sword OCINumberRound(    OCIError *err, CONST OCINumber *number,
-                         sword decplace, OCINumber *result    );
-/*
-   NAME: OCINumberRound - OCINumber ROUnds an Oracle number to a specified 
-                  decimal place
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - round this number and return result in 'result'
-        decplace (IN) - number of decimal digits to the right of the 
-                decimal point to round to. Negative values are allowed.
-        result (OUT) - output of rounding
-   DESCRIPTION:
-        Rounds an Oracle number to a specified decimal place
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*--------------------------- OCINumberPrec ---------------------------------*/
-
-sword OCINumberPrec(    OCIError *err, CONST OCINumber *number,
-                         eword nDigs, OCINumber *result    );
-/*
-   NAME: OCINumberPrec - Rounds an Oracle number to a specified number of
-                         decimal digits.
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - number for which to set precision.
-        nDig   (IN) - number of decimal digits desired in the result.
-        result (OUT) - result.
-   DESCRIPTION:
-        Performs a floating point round with respect to the number
-        of digits.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*----------------------------- OCINumberSin --------------------------------*/
-
-sword OCINumberSin(    OCIError *err, CONST OCINumber *number,
-                       OCINumber *result    );
-/*
-   NAME: OCINumberSin - OCINumber takes the SINe of an Oracle number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - argument of the sine in radians
-        result (OUT) - result of the sine
-   DESCRIPTION:
-        Takes the sine in radians of an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*-------------------------- OCINumberArcSin --------------------------------*/
-
-sword OCINumberArcSin(    OCIError *err, CONST OCINumber *number,
-                          OCINumber *result    );
-/*
-   NAME: OCINumberArcSin - OCINumber takes the Arc SINe of an Oracle number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - argument of the arc sine
-        result (OUT) - result of the arc sine in radians
-   DESCRIPTION:
-        Takes the arc sine in radians of an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
-          'number' is < -1 or 'number' is > 1.
- */
-
-/*-------------------------- OCINumberHypSin --------------------------------*/
-
-sword OCINumberHypSin(    OCIError *err, CONST OCINumber *number, 
-                          OCINumber *result    );
-/*
-   NAME: OCINumberHypSin - OCINumber takes the SiNe Hyperbolic of an 
-                           Oracle number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - argument of the sine hyperbolic
-        result (OUT) - result of the sine hyperbolic
-   DESCRIPTION:
-        Takes the hyperbolic sine of an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
-   NOTES:
-        An Oracle number overflow causes an unpredictable result value.
- */
-
-/*----------------------------- OCINumberCos --------------------------------*/
-
-sword OCINumberCos(    OCIError *err, CONST OCINumber *number, 
-                       OCINumber *result    );
-/*
-   NAME: OCINumberCos - OCINumber takes the COSine of an Oracle number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - argument of the cosine in radians
-        result (OUT) - result of the cosine
-   DESCRIPTION:
-        Takes the cosine in radians of an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*-------------------------- OCINumberArcCos --------------------------------*/
-
-sword OCINumberArcCos(    OCIError *err, CONST OCINumber *number, 
-                          OCINumber *result    );
-/*
-   NAME: OCINumberArcCos - OCINumber takes the Arc COSine of an Oracle number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - argument of the arc cosine
-        result (OUT) - result of the arc cosine in radians
-   DESCRIPTION:
-        Takes the arc cosine in radians of an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
-          'number' is < -1 or 'number' is > 1.
- */
-
-/*-------------------------- OCINumberHypCos --------------------------------*/
-
-sword OCINumberHypCos(    OCIError *err, CONST OCINumber *number, 
-                          OCINumber *result    );
-/*
-   NAME: OCINumberHypCos - OCINumber takes the CoSine Hyperbolic of an 
-                           Oracle number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - argument of the cosine hyperbolic
-        result (OUT) - result of the cosine hyperbolic
-   DESCRIPTION:
-        Takes the hyperbolic cosine of an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
-   NOTES:
-        An Oracle number overflow causes an unpredictable result value.
- */
-
-/*----------------------------- OCINumberTan --------------------------------*/
-
-sword OCINumberTan(    OCIError *err, CONST OCINumber *number, 
-                       OCINumber *result    );
-/*
-   NAME: OCINumberTan - OCINumber takes the TANgent of an Oracle number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - argument of the tangent in radians
-        result (OUT) - result of the tangent
-   DESCRIPTION:
-        Takes the tangent in radians of an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*-------------------------- OCINumberArcTan --------------------------------*/
-
-sword OCINumberArcTan(    OCIError *err, CONST OCINumber *number, 
-                          OCINumber *result    );
-/*
-   NAME: OCINumberArcTan - OCINumber takes the Arc TANgent of an Oracle number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - argument of the arc tangent
-        result (OUT) - result of the arc tangent in radians
-   DESCRIPTION:
-        Takes the arc tangent in radians of an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*------------------------ OCINumberArcTan2 ---------------------------------*/
-
-sword OCINumberArcTan2(    OCIError *err, CONST OCINumber *number1, 
-                           CONST OCINumber *number2, OCINumber *result    );
-/*
-   NAME: OCINumberArcTan2 - OCINumber takes the ATan2 of 2 Oracle numbers
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number1 (IN) - first argument of atan2(y,x) function which 
-                corresponds to 'y' parameter in the function
-        number2 (IN) - second argument of atan2(y,x) function which 
-                corresponds to 'x' parameter in the function
-        result (OUT) - result of the atan2() in radians
-   DESCRIPTION:
-        Takes the atan2(number1, number2).
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
-          'number2' is 0
- */
-
-/*----------------------------- OCINumberHypTan -----------------------------*/
-
-sword OCINumberHypTan(    OCIError *err, CONST OCINumber *number, 
-                          OCINumber *result    );
-/*
-   NAME: OCINumberHypTan - OCINumber takes the TaNgent Hyperbolic of an Oracle
-                           number
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - argument of the tangent hyperbolic
-        result (OUT) - result of the tangent hyperbolic
-   DESCRIPTION:
-        Takes the hyperbolic tangent of an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
-   NOTES:
-        An Oracle number overflow causes an unpredictable result value.
- */
-
-/*--------------------------- OCINumberExp ----------------------------------*/
-
-sword OCINumberExp(    OCIError *err, CONST OCINumber *number, 
-                       OCINumber *result    );
-/*
-   NAME: OCINumberExp - OCINumber EXPonential
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - e raised to this Oracle number power
-        result (OUT) - output of exponentiation
-   DESCRIPTION:
-        Raises e to the specified Oracle number power
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
- */
-
-/*----------------------------- OCINumberLn ---------------------------------*/
-
-sword OCINumberLn(    OCIError *err, CONST OCINumber *number, 
-                      OCINumber *result    );
-/*
-   NAME: OCINumberLn - OCINumber Logarithm Natural
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        number (IN) - logarithm of this number is computed
-        result (OUT) - logarithm result
-   DESCRIPTION:
-        Takes the logarithm of the given Oracle number with respect
-        to the given base.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
-          'number' is <= 0
- */
-
-/*----------------------------- OCINumberLog --------------------------------*/
-
-sword OCINumberLog(    OCIError *err, CONST OCINumber *base, 
-                       CONST OCINumber *number, OCINumber *result    );
-/*
-   NAME: OCINumberLog - OCINumber LOGarithm any base
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        base (IN) - base of the logarithm
-        number (IN) - opearnd
-        result (OUT) - logarithm result
-   DESCRIPTION:
-        Takes the logarithm with the specified base of an Oracle number.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          any of the number arguments is null
-          'number' is <= 0
-          'base' is <= 0
- */
-
-/*****************************************************************************/
-/*                             ORACLE DATE TYPE                              */
-/*****************************************************************************/
- 
-struct OCITime
-{
-  ub1 OCITimeHH;                          /* hours; range is 0 <= hours <=23 */
-  ub1 OCITimeMI;                     /* minutes; range is 0 <= minutes <= 59 */
-  ub1 OCITimeSS;                     /* seconds; range is 0 <= seconds <= 59 */
-};
-typedef struct OCITime OCITime;
-
-/* 
- * OCITime - OCI TiMe portion of date
- *
- * This structure should be treated as an opaque structure as the format
- * of this structure may change. Use OCIDateGetTime/OCIDateSetTime 
- * to manipulate time portion of OCIDate.
- */
-
-struct OCIDate
-{
-  sb2 OCIDateYYYY;         /* gregorian year; range is -4712 <= year <= 9999 */
-  ub1 OCIDateMM;                          /* month; range is 1 <= month < 12 */
-  ub1 OCIDateDD;                             /* day; range is 1 <= day <= 31 */
-  OCITime OCIDateTime;                                               /* time */
-};
-typedef struct OCIDate OCIDate;
-
-/* 
- * OCIDate - OCI oracle Date representation in C
- *
- * OCIDate represents the C mapping of Oracle date.
- *
- * This structure should be treated as an opaque structure as the format
- * of this structure may change. Use OCIDateGetDate/OCIDateSetDate
- * to access/initialize OCIDate.
- *
- * For binding variables of type OCIDate in OCI calls (OCIBindByName(),
- * OCIBindByPos(), and OCIDefineByPos()) use the type code SQLT_ODT.
- */
-
-/*
-   EXAMPLE 
-
-   The following example shows how to manipulate an attribute of type 
-   oracle date.
-  
-     #define FMT "Month dd, YYYY, HH:MI A.M."
-     #define LANG "American"
-
-     struct person
-     {
-       OCIDate start_date;
-     };
-     typedef struct person person;
-
-     OCIError *err;
-     person *joe;
-     sword status;                                           /o error status o/
-     
-     /o See oci.h for an example of how to initialize OCIError.
-      o For this example, assume the OCIEnv and OCIError has been
-      o initialized.
-      o/
-
-     /o Pin joe person object in the object cache. See ori.h
-      o for an example on pinning objects. For this example, assume that
-      o joe is pointing to the pinned object.
-      o/
-
-     /o set the start date of joe o/
-     OCIDateSetTime(&joe->start_date, 8, 0, 0);
-     OCIDateSetDate(&joe->start_date, 1990, 10, 5); 
-
-     /o check if the date is valid o/
-     uword invalid;
-     if (OCIDateCheck(err, &joe->start_date, &invalid) != OCI_SUCCESS)
-       /o error handling code o/
-     if (invalid)
-       /o error handling code o/
-
-     /o convert date for display purposes o/
-     char str[100];
-     ub4 strlen = sizeof(str);
-     if (OCIDateToText(err, &joe->start_date, FMT, sizeof(FMT)-1, LANG,
-                sizeof(LANG)-1, &strlen, str) != OCI_SUCCESS)
-       /o error handling code o/
-
- */
-
-/*--------------------------- OCIDateGetTime --------------------------------*/
-/* void OCIDateGetTime(/o_ CONST OCIDate *date, ub1 *hour, ub1 *min, 
-                           ub1 *sec _o/); */
-#define OCIDateGetTime(date, hour, min, sec) \
-  { \
-     *hour = (date)->OCIDateTime.OCITimeHH; \
-     *min = (date)->OCIDateTime.OCITimeMI; \
-     *sec = (date)->OCIDateTime.OCITimeSS; \
-  }
-/*
-   NAME: OCIDateGetTime - OCIDate Get Time portion of date
-   PARAMETERS:
-        date (IN) - Oracle date whose time data is retrieved
-        hour (OUT) - hour value returned
-        min (OUT) - minute value returned
-        sec (OUT) - second value returned
-   DESCRIPTION:
-        Return time inforamtion stored in the given date. The time
-        information returned is: hour, minute and seconds.
-   RETURNS:
-        NONE
- */
-
-/*--------------------------- OCIDateGetDate --------------------------------*/
-/* void OCIDateGetDate(/o_ CONST OCIDate *date, sb2 *year, ub1 *month, 
-                           ub1 *day _o/); */
-#define OCIDateGetDate(date, year, month, day) \
-  { \
-     *year = (date)->OCIDateYYYY; \
-     *month = (date)->OCIDateMM; \
-     *day = (date)->OCIDateDD; \
-  }
-/*
-   NAME: OCIDateGetDate - OCIDate Get Date (year, month, day) portion of date
-   PARAMETERS:
-        date (IN) - Oracle date whose year, month, day data is retrieved
-        year (OUT) - year value returned
-        month (OUT) - month value returned
-        day (OUT) - day value returned
-   DESCRIPTION:
-        Return year, month, day inforamtion stored in the given date.
-   RETURNS:
-        NONE
- */
-
-/*--------------------------- OCIDateSetTime --------------------------------*/
-/* void OCIDateSetTime(/o_ OCIDate *date, ub1 hour, ub1 min, 
-                           ub1 sec _o/); */
-#define OCIDateSetTime(date, hour, min, sec) \
-  { \
-     (date)->OCIDateTime.OCITimeHH = hour; \
-     (date)->OCIDateTime.OCITimeMI = min; \
-     (date)->OCIDateTime.OCITimeSS = sec; \
-  }
-/*
-   NAME: OCIDateSetTime - OCIDate Set Time portion of date
-   PARAMETERS:
-        date (OUT) - Oracle date whose time data is set
-        hour (IN) - hour value to be set 
-        min (IN) - minute value to be set
-        sec (IN) - second value to be set
-   DESCRIPTION:
-        Set the date with the given time inforamtion.
-   RETURNS:
-        NONE
- */
-
-/*--------------------------- OCIDateSetDate --------------------------------*/
-/* void OCIDateSetDate(/o_ OCIDate *date, sb2 year, ub1 month, ub1 day _o/); */
-#define OCIDateSetDate(date, year, month, day) \
-  { \
-     (date)->OCIDateYYYY = year; \
-     (date)->OCIDateMM = month; \
-     (date)->OCIDateDD = day; \
-  }
-/*
-   NAME: OCIDateSetDate - OCIDate Set Date (year, month, day) portion of date
-   PARAMETERS:
-        date (IN) - Oracle date whose year, month, day data is set
-        year (OUT) - year value to be set
-        month (OUT) - month value to be set
-        day (OUT) - day value to be set
-   DESCRIPTION:
-        Set the date with the given year, month, day inforamtion.
-   RETURNS:
-        NONE
- */
-
-/*--------------------------- OCIDateAssign ---------------------------------*/
-
-sword OCIDateAssign(    OCIError *err, CONST OCIDate *from, 
-                        OCIDate *to    );
-/*
-   NAME: OCIDateAssign - OCIDate Assignment
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        from (IN) - date to be assigned
-        to (OUT) - lhs of assignment
-   DESCRIPTION:
-        Performs date assignment.
-   RETURNS:
-        OCI_SUCCESS
- */
-
-/*--------------------------- OCIDateToText ---------------------------------*/
-
-sword OCIDateToText(    OCIError *err, CONST OCIDate *date, 
-                        CONST oratext *fmt, ub1 fmt_length, 
-                        CONST oratext *lang_name, ub4 lang_length, 
-                        ub4 *buf_size, oratext *buf    );
-/*
-   NAME: OCIDateToText - OCIDate convert date TO String 
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        date (IN) - Oracle date to be converted
-        fmt (IN) - conversion format, if null string pointer (oratext*)0, then
-                the date is converted to a character string in the
-                date format "DD-MON-YY".
-        fmt_length (IN) - length of the 'fmt' parameter
-        lang_name (IN) - specifies the language in which the names and 
-                abbreviations of months and days are returned;
-                default language of session is used if 'lang_name' 
-                is null i.e. (oratext *)0
-        lang_length (IN) - length of the 'nls_params' parameter
-        buf_size (IN/OUT) - size of the buffer; size of the resulting string
-                is returned via this parameter
-        buf (OUT) - buffer into which the converted string is placed
-   DESCRIPTION:
-        Converts the given date to a string according to the specified format.
-        Refer to "TO_DATE" conversion function described in
-        "Oracle SQL Language Reference Manual" for a description of format
-        and NLS arguments. The converted null-terminated date string is
-        stored in the buffer 'buf'.
- 
-        An error is reported upon overflow, e.g. trying to convert a number
-        of value 10 using format '9' causes an overflow.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          buffer too small
-          invalid format
-          unknown language
-          overflow error
- */
-
-/*---------------------------- OCIDateFromText ------------------------------*/
-
-sword OCIDateFromText(    OCIError *err, CONST oratext *date_str, 
-                        ub4 d_str_length, CONST oratext *fmt, ub1 fmt_length, 
-                        CONST oratext *lang_name, ub4 lang_length, 
-                        OCIDate *date    );
-/*
-   NAME: OCIDateFromText - OCIDate convert String TO Date
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        date_str (IN) - input string to be converted to Oracle date
-        d_str_length (IN) - size of the input string, if the length is -1
-                then 'date_str' is treated as a null terminated  string
-        fmt (IN) - conversion format; if 'fmt' is a null pointer, then
-                the string is expected to be in 'DD-MON-YY' format.
-        fmt_length (IN) - length of the 'fmt' parameter
-        lang_name (IN) - language in which the names and abbreviations of
-                days and months are specified, if null i.e. (oratext *)0,
-                the default language of session is used, 
-        lang_length (IN) - length of the 'lang_name' parameter
-        date (OUT) - given string converted to date
-   DESCRIPTION:
-        Converts the given string to Oracle date
-        according to the specified format. Refer to "TO_DATE" conversion
-        function described in "Oracle SQL Language Reference Manual" for a
-        description of format.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          invalid format
-          unknown language
-          invalid input string
-          <to be discovered>
- */
-
-/*----------------------------- OCIDateCompare ------------------------------*/
-
-sword OCIDateCompare(    OCIError *err, CONST OCIDate *date1, 
-                     CONST OCIDate *date2, sword *result    );
-/*
-   NAME: OCIDateCompare - OCIDate CoMPare dates
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        date1, date2 (IN) - dates to be compared
-        result (OUT) - comparison result, 0 if equal, -1 if date1 < date2, 
-                1 if date1 > date2
-   DESCRIPTION:
-        The function OCIDateCompare compares two dates. It returns -1 if date1 
-        is smaller than date2, 0 if they are equal, and 1 if date1 is greater 
-        than date2.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          invalid date
-          <to be discovered>
- */
-
-/*------------------------- OCIDateAddMonths --------------------------------*/
-
-sword OCIDateAddMonths(    OCIError *err, CONST OCIDate *date, sb4 num_months,
-                           OCIDate *result    );
-/*
-   NAME: OCIDateAddMonths - OCIDate ADd or subtract Months
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        date (IN) - 'num_months' added or subtracted from 'date'
-        num_months (IN) - number of months to be added or subtracted 
-                (a negative value will be subtracted)
-        result (IN/OUT) - result of adding or subtracting to 'date'
-   DESCRIPTION:
-        The function OCIDateAddDays adds or subtracts num_months from the 
-        date 'date'.
-          If the input 'date' is the last day of a month, then 
-        appropriate adjustments are made to ensure that the output date is 
-        also the last day of the month. For example, Feb. 28 + 1 month =
-        March 31, and November 30 - 3 months = August 31. Otherwise the
-        'result' date has the same day component as 'date'. 
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          invalid date
-          <to be discovered>
- */
-
-/*--------------------------- OCIDateAddDays --------------------------------*/
-
-sword OCIDateAddDays(    OCIError *err, CONST OCIDate *date, sb4 num_days,
-                         OCIDate *result    );
-/*
-   NAME: OCIDateAddDays - OCIDate ADd or subtract Days
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        date (IN) - 'num_days' added or subtracted from 'date'
-        num_days (IN) - number of days to be added or subtracted 
-                (a negative value will be subtracted)
-        result (IN/OUT) - result of adding or subtracting to 'date'
-   DESCRIPTION:
-        The function OCIDateAddDays adds or subtracts num_days from the 
-        date 'date'.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          invalid date
-          <to be discovered>
- */
-
-/*--------------------------- OCIDateLastDay --------------------------------*/
-
-sword OCIDateLastDay(    OCIError *err, CONST OCIDate *date, 
-                         OCIDate *last_day    );
-/*
-   NAME: OCIDateLastDay - OCIDate get date of the LaST day of the month
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        date (IN) - input date
-        last_day (OUT) - last day of the month in date 'date'
-   DESCRIPTION:
-        The function OCIDateLastDay returns the date of the last day of the
-        month in date 'date'.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          invalid date
-          <to be discovered>
- */
-
-/*----------------------- OCIDateDaysBetween --------------------------------*/
-
-sword OCIDateDaysBetween(    OCIError *err, CONST OCIDate *date1, 
-                             CONST OCIDate *date2, sb4 *num_days    );
-/*
-   NAME: OCIDateDaysBetween - OCIDate get number of days BeTWeen two dates
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        date1, date2 (IN) - input dates
-        num_days (OUT) - number of days between date1 and date2
-   DESCRIPTION:
-        The function OCIDateDaysBetween returns the number of days between 
-        date1 and date2. The time is ignored in this computation.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          invalid date
-          <to be discovered>
- */
-
-/*------------------------ OCIDateZoneToZone --------------------------------*/
-
-sword OCIDateZoneToZone(    OCIError *err, CONST OCIDate *date1,
-                            CONST oratext *zon1,
-                            ub4 zon1_length, CONST oratext *zon2, 
-                            ub4 zon2_length, OCIDate *date2    );
-/*
-   NAME: OCIDateZoneToZone - OCIDate convert date from one Zone TO another Zone
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        date1 (IN) - date to be converted
-        zon1 (IN) - zone of input date
-        zon1_length (IN) - length in bytes of string 'zon1'
-        zon2 (IN) - zone to be converted to
-        zon2_length (IN) - length in bytes of string 'zon2'
-        date2 (OUT) - converted date (in 'zon2')
-   DESCRIPTION:
-        Converts date from one time zone to another. Given date 'date1' 
-        in time zone 'zon1' returns date 'date2' in time zone 'zon2'.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          invlid date
-          invald input time zone
-          invald output time zone
-          <to be discovered>
- */
-
-/*--------------------------- OCIDateNextDay --------------------------------*/
-
-sword OCIDateNextDay(    OCIError *err, CONST OCIDate *date, 
-                         CONST oratext *day_p, ub4 day_length, 
-                         OCIDate *next_day    );
-/*
-   NAME: OCIDateNextDay - OCIDate get date of Next DaY
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        date (IN) - returned date should be later than this date
-        day (IN) - first day of week named by this is returned
-        day_length (IN) - length in bytes of string 'day'
-        next_day (OUT) - first day of the week named by 'day' later than 'date'
-   DESCRIPTION:
-        Returns the date of the first day of the
-        week named by 'day' that is later than date 'date'.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          invalid date
-          invalid day
-          <to be discovered>
- */
-
-/*----------------------------- OCIDateCheck --------------------------------*/
-
-/* Listing of error bits used by OCIDateCheck() */
-#define OCI_DATE_INVALID_DAY            0x1                       /* Bad DAy */
-#define OCI_DATE_DAY_BELOW_VALID        0x2   /* Bad DAy Low/high bit (1=low)*/
-#define OCI_DATE_INVALID_MONTH          0x4                     /* Bad MOnth */
-#define OCI_DATE_MONTH_BELOW_VALID      0x8 /* Bad MOnth Low/high bit (1=low)*/
-#define OCI_DATE_INVALID_YEAR           0x10                     /* Bad YeaR */
-#define OCI_DATE_YEAR_BELOW_VALID       0x20 /* Bad YeaR Low/high bit (1=low)*/
-#define OCI_DATE_INVALID_HOUR           0x40                     /* Bad HouR */
-#define OCI_DATE_HOUR_BELOW_VALID       0x80 /* Bad HouR Low/high bit (1=low)*/
-#define OCI_DATE_INVALID_MINUTE         0x100                  /* Bad MiNute */
-#define OCI_DATE_MINUTE_BELOW_VALID     0x200
-                                           /* Bad MiNute Low/high bit (1=low)*/
-#define OCI_DATE_INVALID_SECOND         0x400                  /* Bad SeCond */
-#define OCI_DATE_SECOND_BELOW_VALID     0x800
-                                           /* bad second Low/high bit (1=low)*/
-#define OCI_DATE_DAY_MISSING_FROM_1582  0x1000
-                                  /* Day is one of those "missing" from 1582 */
-#define OCI_DATE_YEAR_ZERO              0x2000    /* Year may not equal zero */
-#define OCI_DATE_INVALID_FORMAT         0x8000      /* Bad date format input */
-
-sword OCIDateCheck(    OCIError *err, CONST OCIDate *date, uword *valid    );
-/*
-   NAME: OCIDateCheck - OCIDate CHecK if the given date is valid
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        date (IN) - date to be checked
-        valid (OUT) -  returns zero for a valid date, otherwise 
-                the ORed combination of all error bits specified below:
-  
-   Macro name                   Bit number      Error
-   ----------                   ----------      -----
-   OCI_DATE_INVALID_DAY         0x1             Bad day
-   OCI_DATE_DAY_BELOW_VALID     0x2             Bad DAy Low/high bit (1=low)
-   OCI_DATE_INVALID_MONTH       0x4             Bad MOnth
-   OCI_DATE_MONTH_BELOW_VALID   0x8             Bad MOnth Low/high bit (1=low)
-   OCI_DATE_INVALID_YEAR        0x10            Bad YeaR
-   OCI_DATE_YEAR_BELOW_VALID    0x20            Bad YeaR Low/high bit (1=low)
-   OCI_DATE_INVALID_HOUR        0x40            Bad HouR
-   OCI_DATE_HOUR_BELOW_VALID    0x80            Bad HouR Low/high bit (1=low)
-   OCI_DATE_INVALID_MINUTE      0x100           Bad MiNute
-   OCI_DATE_MINUTE_BELOW_VALID  0x200           Bad MiNute Low/high bit (1=low)
-   OCI_DATE_INVALID_SECOND      0x400           Bad SeCond
-   OCI_DATE_SECOND_BELOW_VALID  0x800           bad second Low/high bit (1=low)
-   OCI_DATE_DAY_MISSING_FROM_1582 0x1000        Day is one of those "missing"
-                                                from 1582
-   OCI_DATE_YEAR_ZERO           0x2000          Year may not equal zero
-   OCI_DATE_INVALID_FORMAT      0x8000          Bad date format input
-  
-   So, for example, if the date passed in was 2/0/1990 25:61:10 in
-   (month/day/year hours:minutes:seconds format), the erroor returned
-   would be OCI_DATE_INVALID_DAY | OCI_DATE_DAY_BELOW_VALID |
-   OCI_DATE_INVALID_HOUR | OCI_DATE_INVALID_MINUTE
-
-   DESCRIPTION:
-        Check if the given date is valid.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          'date' and 'valid' pointers are NULL pointers
- */
-
-/*--------------------------- OCIDateSysDate --------------------------------*/
-
-sword OCIDateSysDate(    OCIError *err, OCIDate *sys_date    );
-/*
-   NAME: OCIDateSysDate - OCIDate get current SYStem date and time
-   PARAMETERS:
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        sys_date (OUT) - current system date and time
-   DESCRIPTION:
-        Returns the current system date and time.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-          <to be discovered>
- */
-
-/*****************************************************************************/
-/*                  FIXED-LENGTH STRING - CHAR (N)                           */
-/*****************************************************************************/
-
-/*
- * An ADT attribute declared as "x CHAR(n)" is mapped to "OCIString *x;".
- * The representation of OCIString * is shown below.
- */
-
-/*****************************************************************************/
-/*                  VARIABLE-LENGTH STRING                                   */
-/*****************************************************************************/
-
-/*
- * The variable-length string is represented in C as a pointer to OCIString
- * structure. The OCIString structure is opaque to the user. Functions are
- * provided to allow the user to manipulate a variable-length string.
- *     
- * A variable-length string can be declared as:
- *
- * OCIString *vstr;
- *
- * For binding variables of type OCIString* in OCI calls (OCIBindByName(),
- * OCIBindByPos() and OCIDefineByPos()) use the external type code SQLT_VST.
- */
-typedef struct OCIString OCIString;
-
-/*-------------------------- OCIStringAssign --------------------------------*/
- 
-sword OCIStringAssign(    OCIEnv *env, OCIError *err, CONST OCIString *rhs, 
-                          OCIString **lhs    );
-/*
-   NAME: OCIStringAssign - OCIString Assign String to String
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        rhs (IN) - RHS of the assignment, the type of rhs is also OCIString
-        lhs (IN/OUT) - LHS of the assignment
-   DESCRIPTION:
-        Assign 'rhs' string to 'lhs' string. The 'lhs' string may be
-        resized depending upon the size of the 'rhs'. The assigned string is
-        null-terminated. The 'length' field will not include the extra byte
-        needed for null termination.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          out of space error
- */
- 
-/*---------------------- OCIStringAssignText --------------------------------*/
- 
-sword OCIStringAssignText(    OCIEnv *env, OCIError *err, CONST oratext *rhs, 
-                              ub4 rhs_len, OCIString **lhs    );
-/*
-   NAME: OCIStringAssignText - OCIString Assign Text string to String
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        rhs (IN) - RHS of the assignment, the type of rhs is a text string
-        rhs_len (IN) - length of the 'rhs' string
-        lhs (IN/OUT) - LHS of the assignment
-   DESCRIPTION:
-        Assign 'rhs' string to 'lhs' string. The 'lhs' string may be
-        resized depending upon the size of the 'rhs'. The assigned string is
-        null-terminated. The 'length' field will not include the extra byte
-        needed for null termination.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          out of space error
- */
-
-/*-------------------------- OCIStringResize --------------------------------*/
-
-sword OCIStringResize(    OCIEnv *env, OCIError *err, ub4 new_size, 
-                          OCIString **str    );
-/*
-   NAME: OCIStringResize - OCIString ReSiZe string memory
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        new_size (IN) - new memory size of the string in bytes
-        str (IN/OUT) - allocated memory for the string is freed from the 
-                OOCI heap
-   DESCRIPTION:
-        This function resizes the memory of the given variable-length string in
-        the object cache. The contents of the string are NOT preserved.
-        This function may allocate the string in a new memory region in
-        which case the original memory occupied by the given string will
-        be freed. If the input string is null (str == NULL), then this
-        function will allocate memory for the string.
- 
-        If the new_size is 0, then this function frees the memory occupied
-        by 'str' and a null pointer value is returned.
- 
-        NOTE: The caller must compute 'new_size' taking into account space
-        for the null character ('\0').
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          out of space error
- */
-
-/*---------------------------- OCIStringSize --------------------------------*/
-
-ub4 OCIStringSize(    OCIEnv *env, CONST OCIString *vs    );
-/*
-   NAME: OCIStringSize - OCIString Get String siZe
-   PARAMETERS:
-        env(IN) - pointer to OCI environment handle
-        vs (IN) - string whose size is returned
-   DESCRIPTION:
-        Return the size of the given string.
-   RETURNS:
-        size of the string in bytes is returned
- */
-
-/*----------------------------- OCIStringPtr --------------------------------*/
-
-oratext *OCIStringPtr(    OCIEnv *env, CONST OCIString *vs    );
-/*
-   NAME: OCIStringPtr - OCIString Get String Pointer
-   PARAMETERS:
-        env(IN) - pointer to OCI environment handle
-        vs (IN) - pointer to the text of this string is returned
-   DESCRIPTION:
-        Return the pointer to the text of the given string.
-   RETURNS:
-        pointer to the text of the string is returned
- */
-
-/*----------------------- OCIStringAllocSize --------------------------------*/
- 
-sword OCIStringAllocSize(    OCIEnv *env, OCIError *err, CONST OCIString *vs, 
-                             ub4 *allocsize    );
-/*
-   NAME: OCIStringAllocSize - OCIString get Allocated SiZe of string memory 
-                              in bytes
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        vs (IN) - string whose allocated size in bytes is returned
-        allocsize (OUT) - allocated size of string memory in bytes is returned
-   DESCRIPTION:
-        Return the allocated size of the string memory in bytes. The
-        allocated size is >= actual string size.
-   REQUIRES:
-        vs is a non-null pointer
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR on error
- */
-
-/*****************************************************************************/
-/*                       VARIABLE-LENGTH RAW                                 */
-/*****************************************************************************/
-
-/*
- * The variable-length raw is represented in C as a pointer to OCIRaw
- * structure. The OCIRaw structure is opaque to the user. Functions are
- * provided to allow the user to manipulate a variable-length raw.
- *     
- * A variable-length raw can be declared as:
- *
- * OCIRaw *raw;
- *
- * For binding variables of type OCIRaw* in OCI calls (OCIBindByName(),
- * OCIBindByPos() and OCIDefineByPos()) use the external type code SQLT_LVB.
- */
-typedef struct OCIRaw OCIRaw;
-
-/*-------------------------- OCIRawAssignRaw --------------------------------*/
- 
-sword OCIRawAssignRaw(    OCIEnv *env, OCIError *err, CONST OCIRaw *rhs, 
-                          OCIRaw **lhs    );
-/*
-   NAME: OCIRawAssignRaw - OCIRaw Assign Raw (of type OCIRaw*) to
-                   Raw (of type OCIRaw*)
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        rhs (IN) - RHS of the assignment, the type of rhs is also OCIRaw
-        lhs (IN/OUT) - LHS of the assignment
-   DESCRIPTION:
-        Assign 'rhs' raw to 'lhs' raw. The 'lhs' raw may be
-        resized depending upon the size of the 'rhs'.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          out of space error
- */
- 
-/*------------------------ OCIRawAssignBytes --------------------------------*/
- 
-sword OCIRawAssignBytes(    OCIEnv *env, OCIError *err, CONST ub1 *rhs, 
-                            ub4 rhs_len, OCIRaw **lhs    );
-/*
-   NAME: OCIRawAssignBytes - OCIRaw Assign raw Bytes (of type ub1*) to Raw 
-                   (of type OCIRaw*)
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        rhs (IN) - RHS of the assignment, the type of rhs is ub1 *
-        rhs_len (IN) - length of the 'rhs' raw
-        lhs (IN/OUT) - LHS of the assignment
-   DESCRIPTION:
-        Assign 'rhs' raw to 'lhs' raw. The 'lhs' raw may be
-        resized depending upon the size of the 'rhs'.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          out of space error
- */
-
-/*---------------------------- OCIRawResize ---------------------------------*/
- 
-sword OCIRawResize(    OCIEnv *env, OCIError *err, ub4 new_size, 
-                       OCIRaw **raw    );
-/*
-   NAME: OCIRawResize - OCIRaw ReSiZe memory of variable-length raw
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        new_size (IN) - new size of the raw data in bytes
-        raw (IN) - variable-length raw pointer; the raw is
-                resized to 'new_size'
-   DESCRIPTION:
-        This function resizes the memory of the given variable-length raw in
-        the object cache. 
-        The previous contents of the raw are NOT preserved.
-        This function may allocate the raw in a new memory region in
-        which case the original memory occupied by the given raw will
-        be freed. If the input raw is null (raw == NULL), then this
-        function will allocate memory for the raw data.
- 
-        If the new_size is 0, then this function frees the memory occupied
-        by 'raw' and a null pointer value is returned.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          out of space error
- */
-
-/*------------------------------- OCIRawSize --------------------------------*/
-
-ub4 OCIRawSize(    OCIEnv * env, CONST OCIRaw *raw    );
-/*
-   NAME: OCIRawSize - OCIRaw Get Raw siZe
-   PARAMETERS:
-        env (IN)  - pointer to OCI environment handle
-        raw (INT) - raw whose size is returned
-   DESCRIPTION:
-        Return the size of the given raw.
-   RETURNS:
-        size of the raw in bytes is returned
- */
-
-/*--------------------------------- OCIRawPtr -------------------------------*/
-ub1 *OCIRawPtr(    OCIEnv * env, CONST OCIRaw *raw    );
-/*
-   NAME: OCIRawPtr - OCIRaw Get Raw data Pointer
-   PARAMETERS:
-        env (IN) - pointer to OCI environment handle
-        raw (IN) - pointer to the data of this raw is returned
-   DESCRIPTION:
-        Return the pointer to the data of the given raw.
-   RETURNS:
-        pointer to the data of the raw is returned
- */
-
-/*------------------------------ OCIRawAllocSize ----------------------------*/
- 
-sword OCIRawAllocSize(    OCIEnv *env, OCIError *err, CONST OCIRaw *raw,
-                          ub4 *allocsize    );
-/*
-   NAME: OCIRawAllocSize - OCIRaw get Allocated SiZe of raw memory in bytes
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        raw (IN) - raw whose allocated size in bytes is returned
-        allocsize (OUT) - allocated size of raw memory in bytes is returned
-   DESCRIPTION:
-        Return the allocated size of the raw memory in bytes. The
-        allocated size is >= actual raw size.
-   REQUIRES:
-        raw is a non-null pointer
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR upon error
- */
-
-/*****************************************************************************/
-/*                     OBJECT REFERENCE OPERATIONS                           */
-/*****************************************************************************/
-
-/* 
- * See the definition of OCIRef in oro.h.
- *
- * For binding variables of type OCIRef* in OCI calls (OCIBindByName(),
- * OCIBindByPos() and OCIDefineByPos()) use the code SQLT_REF.
- * 
- */
-
-/*---------------------------- OCIRefClear ----------------------------------*/
-void OCIRefClear(    OCIEnv *env, OCIRef *ref    );
-/*
-   NAME: OCIRefClear - OCIRef CLeaR or nullify a ref
-   PARAMETERS:
-        env (IN)     - pointer to OCI environment handle
-        ref (IN/OUT) - ref to clear
-   DESCRIPTION:
-        Clear or nullify the given ref. A ref is considered to be a null ref
-        if it does not contain a valid OID (and thus doesn't point to an
-        object). Logically, a null ref is a dangling ref.
-
-        Note that a null ref is still a valid SQL value and is not SQL-ly null.
-        It can be used as a valid non-null constant ref value for NOT NULL
-        column or attribute of a row in a table.
-        
-        If a null pointer value is passed as a ref,
-        then this function is a no-op.
- */
-
-/*--------------------------- OCIRefAssign ----------------------------------*/
-sword OCIRefAssign(    OCIEnv *env, OCIError *err, CONST OCIRef *source, 
-                       OCIRef **target    );
-/*
-   NAME: OCIRefAssign - OCIRef CoPY a ref to another
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        source (IN) - ref to copy from
-        target (IN/OUT) - ref to copy to
-   DESCRIPTION:
-        Copy 'source' ref to 'target' ref; both then reference the same
-        object. If the target ref pointer is null (i.e. *target == NULL)
-        then the copy function will allocate memory for the target ref
-        in OOCI heap prior to the copy.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          1) out of memory
- */
-
-/*-------------------------- OCIRefIsEqual ----------------------------------*/
-boolean OCIRefIsEqual(    OCIEnv *env, CONST OCIRef *x, CONST OCIRef *y    );
-/*
-   NAME: OCIRefIsEqual - OCIRef compare two refs for EQUality
-   PARAMETERS:
-        env (IN) - pointer to OCI environment handle
-        x (IN)   - ref to compare
-        y (IN)   - ref to compare
-   DESCRIPTION:
-        Compare the given refs for equality.
-        Two refs are equal if and only if:
-          - they are both referencing the same persistent object, or
-          - they are both referencing the same transient object.
-
-        NOTE THAT TWO NULL REFS ARE CONSIDERED NOT EQUAL BY THIS FUNCTION.
-   RETURNS:
-        TRUE if the two refs are equal
-        FALSE if the two refs are not equal, or X is NULL, or Y is NULL
- */
-
-/*--------------------------- OCIRefIsNull ----------------------------------*/
-boolean OCIRefIsNull(    OCIEnv *env, CONST OCIRef *ref    );
-/*
-   NAME: OCIRefIsNull - OCIRef test if a ref is NULl
-   PARAMETERS:
-        env (IN) - pointer to OCI environment handle
-        ref (IN) - ref to test for null
-   DESCRIPTION:
-        Return TRUE if the given ref is null; otherwise, return FALSE.
-        A ref is null if and only if:
-        - it is supposed to be referencing a persistent object, but
-          its OID is null, or
-        - it is supposed to be referencing a transient object, but it is
-          currently not pointing to an object.
-        A ref is a dangling ref if the object that it points to does not
-        exist.
-   RETURNS:
-        TRUE if the given ref is NULL
-        FALSE if the given ref is not NULL
- */
-
-/*-------------------------- OCIRefHexSize ----------------------------------*/
-ub4 OCIRefHexSize(    OCIEnv *env, CONST OCIRef *ref    );
-/*
-   NAME: OCIRefHexSize - OCIRef Hexadecimal buffer SiZe in bytes
-   PARAMETERS:
-        env (IN) - pointer to OCI environment handle
-        ref (IN) - ref whose size in hexadecimal representation in bytes is
-                returned
-   DESCRIPTION:
-        Return the size of the buffer in bytes required for the hexadecimal
-        representation of the ref. A buffer of at-least this size must be
-        passed to ref-to-hex (OCIRefToHex) conversion function.
-   RETURNS:
-        size of hexadecimal representation of ref
- */
-
-/*-------------------------- OCIRefFromHex ---------------------------------*/
-sword OCIRefFromHex(    OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-                        CONST oratext *hex, ub4 length, OCIRef **ref    );
-/*
-   NAME:
-        OCIRefFromHex - OCIRef convert a Hexadecimal string TO a Ref
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by
-                calling OCIErrorGet().
-        svc (IN) - OCI service context handle; if the resulting ref is
-                initialized with this service context
-        hex (IN) - hexadecimal string (that was produced by 'OCIRefToHex()"
-                previously) to be convert into a ref
-        length (IN) - length of the hexadecimal string
-        ref (IN/OUT) - ref is initialized with the given value ('hex').
-                If *ref is null, then space for the ref is allocated in the
-                object cache, otherwise the memory occupied by the given ref
-                is re-used.
-   DESCRIPTION:
-        Convert the given hexadecimal string into a ref. This function
-        ensures that the resulting ref is well formed. It does NOT ensure
-        that the object pointed to by the resulting ref exists or not.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
- */
-
-/*--------------------------- OCIRefToHex -----------------------------------*/
-sword OCIRefToHex(    OCIEnv *env, OCIError *err, CONST OCIRef *ref, 
-                      oratext *hex, ub4 *hex_length    );
-/*
-   NAME:
-        OCIRefToHex - OCIRef convert ref to a Hexadecimal string
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by
-                calling OCIErrorGet().
-        ref (IN) - ref to be converted into a hexadecimal string; if the
-                ref is a null ref (i.e. OCIRefIsNull(ref) == TRUE) then
-                a zero hex_length value is returned
-        hex (OUT) - buffer that is large enough to contain the resulting
-                hexadecimal string; the contents of the string is opaque
-                to the caller
-        hex_length (IN/OUT) - on input specifies the size of the 'hex' buffer,
-                on output specifies the actual size of the hexadecimal
-                string being returned in 'hex'
-   DESCRIPTION:
-        Convert the given ref into a hexadecimal string, and return the length
-        of the string. The resulting string is opaque to the caller.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          the given buffer is not big enough to hold the resulting string
- */
-
-
-/*****************************************************************************/
-/*                          COLLECTION FUNCTIONS                             */
-/*****************************************************************************/
-
-/* 
-   The generic collection is represented by the type 'OCIColl'. The following
-   operations OCIColl*() are provided on a generic collection:
-     - get current size of collection
-     - get upper bound of collection
-     - get pointer to an element given its index
-     - set element at given index (assign element)
-     - append an element 
-     - trim the given number of elements from the end of the collection
-     - collection assignment
-
-   The following iterator based scanning functions are also provided on a
-   generic collection. These functions make use of an iterator which is
-   defined to be of type OCIIter.
-
-     - create an iterator for scanning collection
-     - destroy iterator
-     - reset iterator to the beginning of collection
-     - get pointer to current element pointed by iterator
-     - get pointer to next element
-     - get pointer to previous element
-
-   The collections variable-length array (varray) and nested table
-   are sub-types of generic collection. This means that the OCIColl*() 
-   functions can also be used to manipulate varray and nested table.
-
-   The varray is represented by OCIArray type and nested table by OCITable.
-   Besides OCIColl*() functions no additional functions are provided for
-   manipulating varrays. The OCIColl*() functions are a complete set of 
-   functions to manipulate varrays.
-
-   Besides OCIColl*() functions, the following functions OCITable*() can be 
-   used to manipulate nested table. The OCITable*() functions operate on 
-   nested tables only and should not be used on a varray.
-
-     - delete an element at index i. Note that the position
-       ordinals of the remaining elements of the table is not changed by the
-       delete operation. So delete creates "holes" in the table.
-     - check if an element exists at the given index i
-     - return the smallest value of i for which exists(i) is true
-     - return the largest value of i for which exists(i) is true
-     - return pointer to the smallest position j, greater than i, such that 
-       OCITableExists(j) is true
-     - return pointer to the largest position j, less than i, such that 
-       OCITableExists(j) is true
-
-   For binding variables of type OCIColl* or OCITable* in OCI calls
-   (OCIBindByName(), OCIBindByPos() and OCIDefineByPos()) use the external
-   type code SQLT_NTY.
- */
-
-/* OCIColl - generic collection type */
-typedef struct OCIColl OCIColl;
-
-/* OCIArray - varray collection type */
-typedef OCIColl OCIArray;
-
-/* OCITable - nested table collection type */
-typedef OCIColl OCITable;
-
-/* OCIIter - collection iterator */
-typedef struct OCIIter OCIIter;
-
-/*----------------------------- OCICollSize ---------------------------------*/
-
-sword OCICollSize( OCIEnv *env, OCIError *err, CONST OCIColl *coll, 
-                   sb4 *size );
-/*
-   NAME: OCICollSize - OCIColl return current SIZe of the given collection
-   PARAMETERS:
-        env(IN) - pointer to OCI environment handle
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        coll (IN) - collection whose number of elements is returned
-        size (OUT) - current number of elements in the collection
-   DESCRIPTION:
-          Returns the current number of elements in the given collection.
-
-          For collections of type nested table wherein 'delete element'
-          operation is allowed, the count returned by OCICollSize() will
-          NOT be decremented upon deleting elements. For example:
-
-            OCICollSize(...); 
-            // assume 'size' returned is equal to 5
-            OCITableDelete(...); // delete one element
-            OCICollSize(...);
-            // 'size' returned will still be 5
-
-          To get the count minus the deleted elements use OCITableSize(). 
-          Continuing the above example,
-
-            OCITableSize(...)
-            // 'size' returned will be equal to 4
-
-          Note, a trim operation (OCICollTrim) will decrement the count 
-          by the number of trimmed elements. Continuing the above example,
-
-            OCICollTrim(..,1..); // trim one element
-            OCICollSize(...);
-            // 'size' returned will be equal to 4
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          error during loading of collection into object cache
-          any of the input parameters is null
- */
-
-/*------------------------------ OCICollMax ---------------------------------*/
-
-sb4 OCICollMax(    OCIEnv *env, CONST OCIColl *coll    );
-/*
-   NAME: OCICollMax - OCIColl return MAXimum size (upper-bound) of the
-                   given collection (in number of elements)
-   PARAMETERS:
-        env(IN) - pointer to OCI environment handle
-        coll (IN) - collection whose upper-bound in number of elements 
-                is returned
-   DESCRIPTION:
-        Returns the max number of elements that the given collection can hold.
-        A value 0 indicates that the collection has no upper-bound.
-   REQUIRES:
-        coll must point to a valid collection descriptor
-   RETURNS:
-        upper-bound of the given collection
- */
-
-/*-------------------------- OCICollGetElem ---------------------------------*/
-
-sword OCICollGetElem(    OCIEnv *env, OCIError *err, CONST OCIColl *coll, 
-                         sb4 index, boolean *exists, dvoid **elem, 
-                         dvoid **elemind    );
-/*
-   NAME: OCICollGetElem - OCIColl GET pointer to the element at the given index
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        coll (IN) - pointer to the element in this collection is returned
-        index (IN) - index of the element whose pointer is returned
-        exists (OUT) - set to FALSE if element at the specified index does 
-                not exist else TRUE
-        elem (OUT) - address of the desired element is returned
-        elemind (OUT) [optional] - address of the null indicator information 
-                is returned; if (elemind == NULL) then the null indicator
-                information will NOT be returned
-   DESCRIPTION:
-        Get the address of the element at the given position. Optionally
-        this function also returns the address of the element's null indicator
-        information.
- 
-        The following table describes for each collection element type
-        what the corresponding element pointer type is. The element pointer
-        is returned via the 'elem' parameter of OCICollGetElem().
- 
-           Element Type                       *elem is set to
-        -----------------------               ---------------
-         Oracle Number (OCINumber)              OCINumber*
-         Date (OCIDate)                         OCIDate*
-         Variable-length string (OCIString*)    OCIString**
-         Variable-length raw (OCIRaw*)          OCIRaw**
-         object reference (OCIRef*)             OCIRef**
-         lob locator (OCILobLocator*)           OCILobLocator**
-         object type (e.g. person)              person*
- 
-        The element pointer returned by OCICollGetElem() is in a form
-        such that it can not only be used to access the
-        element data but also is in a form that can be used as the target
-        (i.e left-hand-side) of an assignment statement.
- 
-        For example, assume the user is iterating over the elements of
-        a collection whose element type is object reference (OCIRef*). A call
-        to OCICollGetElem() returns pointer to a reference handle
-        (i.e. OCIRef**). After getting, the pointer to the collection
-        element, the user may wish to modify it by assigning a new reference.
-        This can be accomplished via the ref assignment function shown below:
- 
-        sword OCIRefAssign( OCIEnv *env, OCIError *err, CONST OCIRef *source,
-                            OCIRef **target );
- 
-        Note that the 'target' parameter of OCIRefAssign() is of type
-        'OCIRef**'. Hence OCICollGetElem() returns 'OCIRef**'.
-        If '*target == NULL' a new ref will be allocated by OCIRefAssign()
-        and returned via the 'target' parameter.
- 
-        Similarly, if the collection element was of type string (OCIString*),
-        OCICollGetElem() returns pointer to string handle
-        (i.e. OCIString**). If a new string is assigned, via
-        OCIStringAssign() or OCIStringAssignText() the type of the target
-        must be 'OCIString **'.
- 
-        If the collection element is of type Oracle number, OCICollGetElem()
-        returns OCINumber*. The prototype of OCINumberAssign() is shown below:
- 
-        sword OCINumberAssign(OCIError *err, CONST OCINumber *from,
-                              OCINumber *to);
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          any of the input parameters is null
- */
-
-/*------------------------- OCICollGetElemArray -----------------------------*/
-
-sword OCICollGetElemArray(  OCIEnv *env, OCIError *err, CONST OCIColl *coll, 
-                            sb4 index, boolean *exists, dvoid **elem, 
-                            dvoid **elemind, uword *nelems);
-/*
-   NAME: OCICollGetElemArray - OCIColl GET pointers to elements from given index
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        coll (IN) - pointers to the elements in this collection is returned
-        index (IN) - starting index of the element
-        exists (OUT) - set to FALSE if element at the specified index does 
-                not exist else TRUE
-        elem (OUT) - address of the desired elements is returned
-        elemind (OUT) [optional] - address of the null indicators information 
-                is returned; if (elemind == NULL) then the null indicator
-                information will NOT be returned
-        nelems(IN/OUT) - Upper bound of elem and/or elemind array
-   DESCRIPTION:
-        Get the address of the elements from the given position. Optionally
-        this function also returns the address of the element's null indicator
-        information.
- 
-        The following table describes for each collection element type
-        what the corresponding element pointer type is. The element pointer
-        is returned via the 'elem' parameter of OCICollGetElem().
- 
-           Element Type                       *elem is set to
-        -----------------------               ---------------
-         Oracle Number (OCINumber)              OCINumber*
-         Date (OCIDate)                         OCIDate*
-         Variable-length string (OCIString*)    OCIString**
-         Variable-length raw (OCIRaw*)          OCIRaw**
-         object reference (OCIRef*)             OCIRef**
-         lob locator (OCILobLocator*)           OCILobLocator**
-         object type (e.g. person)              person*
- 
-        The element pointer returned by OCICollGetElem() is in a form
-        such that it can not only be used to access the
-        element data but also is in a form that can be used as the target
-        (i.e left-hand-side) of an assignment statement.
- 
-        For example, assume the user is iterating over the elements of
-        a collection whose element type is object reference (OCIRef*). A call
-        to OCICollGetElem() returns pointer to a reference handle
-        (i.e. OCIRef**). After getting, the pointer to the collection
-        element, the user may wish to modify it by assigning a new reference.
-        This can be accomplished via the ref assignment function shown below:
- 
-        sword OCIRefAssign( OCIEnv *env, OCIError *err, CONST OCIRef *source,
-                            OCIRef **target );
- 
-        Note that the 'target' parameter of OCIRefAssign() is of type
-        'OCIRef**'. Hence OCICollGetElem() returns 'OCIRef**'.
-        If '*target == NULL' a new ref will be allocated by OCIRefAssign()
-        and returned via the 'target' parameter.
- 
-        Similarly, if the collection element was of type string (OCIString*),
-        OCICollGetElem() returns pointer to string handle
-        (i.e. OCIString**). If a new string is assigned, via
-        OCIStringAssign() or OCIStringAssignText() the type of the target
-        must be 'OCIString **'.
- 
-        If the collection element is of type Oracle number, OCICollGetElem()
-        returns OCINumber*. The prototype of OCINumberAssign() is shown below:
- 
-        sword OCINumberAssign(OCIError *err, CONST OCINumber *from,
-                              OCINumber *to);
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          any of the input parameters is null
- */
-
-/*----------------------- OCICollAssignElem ---------------------------------*/
-
-sword OCICollAssignElem(    OCIEnv *env, OCIError *err, sb4 index, 
-                            CONST dvoid *elem, 
-                            CONST dvoid *elemind, OCIColl *coll    );
-/*
-   NAME: OCICollAssignElem - OCIColl ASsign Element
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        index (IN) - index of the element whose is assigned to
-        elem (IN) - element which is assigned from (source element)
-        elemind (IN) [optional] - pointer to the element's null indicator 
-                information; if (elemind == NULL) then the null indicator
-                information of the assigned element will be set to non-null.
-        coll (IN/OUT) - collection to be updated
-   DESCRIPTION:
-        Assign the given element value 'elem' to the element at coll[index].
-        If the collection is of type nested table, the element at the given 
-        index may not exist (i.e. may have been deleted). In this case, the 
-        given element is inserted at index 'index'.
-        Otherwise, the element at index 'index' is updated with the value
-        of 'elem'.
-  
-        Note that the given element is deep-copied and 
-        'elem' is strictly an input parameter.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          any of the input parameters is null
-          out of memory error
-          given index is out of bounds of the given collection
- */
-
-/*--------------------------- OCICollAssign ---------------------------------*/
-
-sword OCICollAssign(    OCIEnv *env, OCIError *err, CONST OCIColl *rhs, 
-                        OCIColl *lhs    );
-/*
-   NAME: OCICollAssign - OCIColl ASsiGn collection
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        rhs (IN) - collection to be assigned from
-        lhs (OUT) - collection to be assigned to
-   DESCRIPTION:
-        Assign 'rhs' to 'lhs'. The 'lhs' collection may be decreased or 
-        increased depending upon the size of 'rhs'. If the 'lhs' contains 
-        any elements then the elements will be deleted prior to the 
-        assignment. This function performs a deep-copy. The memory for the 
-        elements comes from the object cache.
- 
-        An error is returned if the element types of the lhs and rhs 
-        collections do not match. Also, an error is returned if the 
-        upper-bound of the lhs collection is less than the current number of 
-        elements in the rhs collection.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          any of the input parameters is null
-          out of memory error
-          type mis-match of lhs and rhs collections
-          upper-bound of lhs collection is less than the current number of 
-          elements in the rhs collection
- */
-
-/*--------------------------- OCICollAppend ---------------------------------*/
-
-sword OCICollAppend(    OCIEnv *env, OCIError *err, CONST dvoid *elem, 
-                        CONST dvoid *elemind, OCIColl *coll    );
-/*
-   NAME: OCICollAppend - OCIColl APPend collection
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        elem (IN) - pointer to the element which is appended to the end
-                of the given collection
-        elemind (IN) [optional] - pointer to the element's null indicator 
-                information; if (elemind == NULL) then the null indicator
-                information of the appended element will be set to non-null.
-        coll (IN/OUT) - updated collection
-   DESCRIPTION:
-        Append the given element to the end of the given collection. 
-        Appending an element is equivalent to:
-          - increasing the size of the collection by 1 element
-          - updating (deep-copying) the last element's data with the given 
-            element's data
-  
-        Note that the pointer to the given element 'elem' will not be saved 
-        by this function. So 'elem' is strictly an input parameter.
-        An error is returned if the current size of the collection
-        is equal to the max size (upper-bound) of the collection prior to 
-        appending the element.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          any of the input parameters is null
-          out of memory error
-          current size of collection == max size of the collection
- */
-
-/*----------------------------- OCICollTrim ---------------------------------*/
-
-sword OCICollTrim(    OCIEnv *env, OCIError *err, sb4 trim_num, 
-                      OCIColl *coll    );
-/*
-   NAME: OCICollTrim - OCIColl Trim elements from the end of the collection
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        trim_num (IN) - number of elements to trim
-        coll (IN/OUT) - 'trim_num' of elements are removed (freed) from the
-                end of the collection
-   DESCRIPTION:
-        Trim the collection by the given number of elements. The elements are 
-        removed from the end of the collection.
-  
-        An error is returned if the 'trim_num' is greater than the current 
-        size of the collection.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          any of the input parameters is null
-          'trim_num' is greater than the current size of the collection.
- */
-
-/*--------------------------- OCICollIsLocator ------------------------------*/
-
-sword OCICollIsLocator(OCIEnv *env, OCIError *err, CONST OCIColl *coll,
-                       boolean *result );
-/*
-Name: OCICollIsLocator - OCIColl indicates whether a collection is locator
-                         based or not.
-Parameters:
-        env(IN) - pointer to OCI environment handle
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        coll (IN) - collection item.
-        result (OUT) - TRUE if the collection item is a locator, FALSE
-                       otherwise
-Description:
-        Returns TRUE in the result OUT parameter if the collection item is a
-        locator, otherwise returns FALSE.
-Returns:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-*/
-
-/*---------------------------- OCIIterCreate --------------------------------*/
-
-sword OCIIterCreate(    OCIEnv *env, OCIError *err, CONST OCIColl *coll, 
-                        OCIIter **itr    );
-/*
-   NAME: OCIIterCreate - OCIColl Create an ITerator to scan the collection
-                      elements
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        coll (IN) - collection which will be scanned; the different 
-                collection types are varray and nested table
-        itr (OUT) - address to the allocated collection iterator is
-                returned by this function
-   DESCRIPTION:
-        Create an iterator to scan the elements of the collection. The
-        iterator is created in the object cache. The iterator is initialized
-        to point to the beginning of the collection.
-  
-        If the next function (OCIIterNext) is called immediately 
-        after creating the iterator then the first element of the collection 
-        is returned. 
-        If the previous function (OCIIterPrev) is called immediately after 
-        creating the iterator then "at beginning of collection" error is 
-        returned.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          any of the input parameters is null
-          out of memory error
- */
-
-/*----------------------------- OCIIterDelete ------------------------------*/
-
-sword OCIIterDelete(    OCIEnv *env, OCIError *err, OCIIter **itr    );
-/*
-   NAME: OCIIterDelete - OCIColl Delete ITerator
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        itr (IN/OUT) - the allocated collection iterator is destroyed and
-                the 'itr' is set to NULL prior to returning
-   DESCRIPTION:
-        Delete the iterator which was previously created by a call to 
-        OCIIterCreate.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          any of the input parameters is null
-          to be discovered
- */
-
-/*----------------------------- OCIIterInit ---------------------------------*/
-
-sword OCIIterInit(    OCIEnv *env, OCIError *err, CONST OCIColl *coll, 
-                      OCIIter *itr    );
-/*
-   NAME: OCIIterInit - OCIColl Initialize ITerator to scan the given 
-                   collection
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        coll (IN) - collection which will be scanned; the different 
-                collection types are varray and nested table
-        itr (IN/OUT) - pointer to an allocated  collection iterator
-   DESCRIPTION:
-        Initializes the given iterator to point to the beginning of the 
-        given collection. This function can be used to:
-  
-        a. reset an iterator to point back to the beginning of the collection 
-        b. reuse an allocated iterator to scan a different collection
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          any of the input parameters is null
- */
-
-/*------------------------ OCIIterGetCurrent --------------------------------*/
-
-sword OCIIterGetCurrent(    OCIEnv *env, OCIError *err, CONST OCIIter *itr, 
-                            dvoid **elem, dvoid **elemind    );
-/*
-   NAME: OCIIterGetCurrent - OCIColl Iterator based, get CURrent collection
-                    element
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        itr (IN) - iterator which points to the current element
-        elem (OUT) - address of the element pointed by the iterator is returned
-        elemind (OUT) [optional] - address of the element's null indicator 
-                information is returned; if (elemind == NULL) then the null 
-                indicator information will NOT be returned
-   DESCRIPTION:
-        Returns pointer to the current element and its corresponding null
-        information.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          any of the input parameters is null
- */
-
-/*------------------------------ OCIIterNext --------------------------------*/
-
-sword OCIIterNext(    OCIEnv *env, OCIError *err, OCIIter *itr, 
-                      dvoid **elem, dvoid **elemind, boolean *eoc    );
-/*
-   NAME: OCIIterNext - OCIColl Iterator based, get NeXT collection element
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        itr (IN/OUT) - iterator is updated to point to the next element
-        elem (OUT) - after updating the iterator to point to the next element,
-                address of the element is returned
-        elemind (OUT) [optional] - address of the element's null indicator 
-                information is returned; if (elemind == NULL) then the null 
-                indicator information will NOT be returned
-        eoc (OUT) - TRUE if iterator is at End Of Collection (i.e. next
-                element does not exist) else FALSE
-   DESCRIPTION:
-        Returns pointer to the next element and its corresponding null
-        information. The iterator is updated to point to the next element.
-  
-        If the iterator is pointing to the last element of the collection
-        prior to executing this function, then calling this function will 
-        set eoc flag to TRUE. The iterator will be left unchanged in this
-        situation.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          any of the input parameters is null
- */
-
-/*------------------------------ OCIIterPrev --------------------------------*/
-
-sword OCIIterPrev(    OCIEnv *env, OCIError *err, OCIIter *itr, 
-                      dvoid **elem, dvoid **elemind, boolean *boc    );
-/*
-   NAME: OCIIterPrev - OCIColl Iterator based, get PReVious collection element
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        itr (IN/OUT) - iterator is updated to point to the previous 
-                element
-        elem (OUT) - after updating the iterator to point to the previous 
-                element, address of the element is returned
-        elemind (OUT) [optional] - address of the element's null indicator 
-                information is returned; if (elemind == NULL) then the null 
-                indicator information will NOT be returned
-        boc (OUT) - TRUE if iterator is at Beginning Of Collection (i.e.
-                previous element does not exist) else FALSE.
-   DESCRIPTION:
-        Returns pointer to the previous element and its corresponding null
-        information. The iterator is updated to point to the previous element.
-  
-        If the iterator is pointing to the first element of the collection
-        prior to executing this function, then calling this function will 
-        set 'boc' to TRUE. The iterator will be left unchanged in this 
-        situation.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          any of the input parameters is null
- */
-
-/*****************************************************************************/
-/*           FUNCTIONS WHICH OPERATE ONLY ON NESTED TABLE OCITable*()        */
-/*****************************************************************************/
-
-/*---------------------------- OCITableSize ---------------------------------*/
-
-sword OCITableSize( OCIEnv *env, OCIError *err, CONST OCITable *tbl, 
-                    sb4 *size);
-/*
-   NAME: OCITableSize - OCITable return current SIZe of the given 
-                   nested table (not including deleted elements)
-   PARAMETERS:
-        env(IN) - pointer to OCI environment handle
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tbl (IN) - nested table whose number of elements is returned
-        size (OUT) - current number of elements in the nested table. The count
-                does not include deleted elements.
-   DESCRIPTION:
-        Returns the count of elements in the given nested table. 
-
-        The count returned by OCITableSize() will be decremented upon 
-        deleting elements from the nested table. So, this count DOES NOT 
-        includes any "holes" created by deleting elements. 
-        For example:
-
-            OCITableSize(...); 
-            // assume 'size' returned is equal to 5
-            OCITableDelete(...); // delete one element
-            OCITableSize(...);
-            // 'size' returned will be equal to 4
-
-        To get the count plus the count of deleted elements use 
-        OCICollSize(). Continuing the above example,
-
-            OCICollSize(...)
-            // 'size' returned will still be equal to 5
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          error during loading of nested table into object cache
-          any of the input parameters is null
- */
-
-/*---------------------- OCITableExists ---------------------------------*/
-
-sword OCITableExists(    OCIEnv *env, OCIError *err, CONST OCITable *tbl,
-                             sb4 index, boolean *exists    );
-/*
-   NAME: OCITableExists - OCITable test whether element at the given index
-                    EXIsts
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tbl (IN) - table in which the given index is checked
-        index (IN) - index of the element which is checked for existence
-        exists (OUT) - set to TRUE if element at given 'index' exists
-                else set to FALSE
-   DESCRIPTION:
-        Test whether an element exists at the given 'index'.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          any of the input parameters is null
- */
-
-/*--------------------------- OCITableDelete -------------------------------*/
-
-sword OCITableDelete(    OCIEnv *env, OCIError *err, sb4 index, 
-                      OCITable *tbl    );
-/*
-   NAME: OCITableDelete - OCITable DELete element at the specified index
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        index (IN) - index of the element which must be deleted
-        tbl (IN) - table whose element is deleted
-   DESCRIPTION:
-        Delete the element at the given 'index'. Note that the position
-        ordinals of the remaining elements of the table is not changed by the
-        delete operation. So delete creates "holes" in the table.
-
-        An error is returned if the element at the specified 'index' has
-        been previously deleted.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          any of the input parameters is null
-          given index is not valid
- */
-
-/*--------------------------- OCITableFirst ---------------------------------*/
-
-sword OCITableFirst(    OCIEnv *env, OCIError *err, CONST OCITable *tbl, 
-                        sb4 *index     );
-/*
-   NAME: OCITableFirst - OCITable return FirST index of table
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tbl (IN) - table which is scanned
-        index (OUT) - first index of the element which exists in the given 
-                table is returned
-   DESCRIPTION:
-        Return the first index of the element which exists in the given 
-        table. 
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          table is empty
- */
-
-/*---------------------------- OCITableLast ---------------------------------*/
-
-sword OCITableLast(    OCIEnv *env, OCIError *err, CONST OCITable *tbl, 
-                       sb4 *index     );
-/*
-   NAME: OCITableFirst - OCITable return LaST index of table
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tbl (IN) - table which is scanned
-        index (OUT) - last index of the element which exists in the given 
-                table is returned
-   DESCRIPTION:
-        Return the last index of the element which exists in the given 
-        table. 
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          table is empty
- */
-
-/*---------------------------- OCITableNext ---------------------------------*/
-
-sword OCITableNext(    OCIEnv *env, OCIError *err, sb4 index, 
-                       CONST OCITable *tbl, sb4 *next_index,
-                       boolean *exists    );
-/*
-   NAME: OCITableNext - OCITable return NeXT available index of table
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        index (IN) - starting at 'index' the index of the next element
-                which exists is returned
-        tbl (IN) - table which is scanned
-        next_index (OUT) - index of the next element which exists 
-                is returned
-        exists (OUT) - FALSE if no next index available else TRUE
-   DESCRIPTION:
-        Return the smallest position j, greater than 'index', such that 
-        exists(j) is TRUE.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          no next index available
- */
-
-/*---------------------------- OCITablePrev ---------------------------------*/
-
-sword OCITablePrev(    OCIEnv *env, OCIError *err, sb4 index, 
-                       CONST OCITable *tbl, sb4 *prev_index,
-                       boolean *exists    );
-/*
-   NAME: OCITablePrev - OCITable return PReVious available index of table
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        index (IN) - starting at 'index' the index of the previous element
-                which exists is returned
-        tbl (IN) - table which is scanned
-        prev_index (OUT) - index of the previous element which exists 
-                is returned
-        exists (OUT) - FALSE if no next index available else TRUE
-   DESCRIPTION:
-        Return the largest position j, less than 'index', such that 
-        exists(j) is TRUE.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is NULL.
-        OCI_ERROR if
-          no previous index available
- */
-
-/*------------------------ OCINumberToLnx -----------------------------------*/
-/* void OCINumberToLnx(/o_ OCINumber *num _o/); */
-
-#define OCINumberToLnx(num) ((lnxnum_t *)num)
-
-/* 
-   NAME:   OCINumberToLnx
-   PARAMETERS:
-           num (IN) - OCINumber to convert ;
-   DESCRIPTION: 
-           Converts OCINumber to its internal lnx format 
-           This is not to be used in Public interfaces , but
-           has been provided due to special requirements from 
-           SQLPLUS development group as they require to call 
-           Core funtions directly . 
-*/
-
-/* OCI representation of XMLType */
-typedef struct OCIXMLType OCIXMLType;
-
-/* OCI representation of OCIDomDocument */
-typedef struct OCIDOMDocument OCIDOMDocument;
-
-#endif /* ORL_ORACLE */
diff --git a/src/terralib/drivers/Oracle/OCI/include/oro.h b/src/terralib/drivers/Oracle/OCI/include/oro.h
deleted file mode 100644
index bf1e8f8..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/oro.h
+++ /dev/null
@@ -1,883 +0,0 @@
-/* Copyright (c) 1994, 2003, Oracle Corporation.  All rights reserved.  */
-
-/*
-  NAME
-    OCI - Oracle Object Interface for External/Internal/Kernel Clients
-
-  DESCRIPTION
-    This header file contains Oracle object interface definitions which
-    can be included by external user applications, tools, as well as
-    the kernel.  It defines types and constants that are common to all
-    object interface which is being defined in several other header files
-    (e.g., ori.h, ort.h, and orl.h).
-
-  RELATED DOCUMENTS
-    TBD
-
-  INSPECTION STATUS [[ deletable if no inspection ]]
-    Inspection date:    [[ date of the last logging meeting ]]
-    Inspection status:  [[ exited, not exited, or N/A if exit is not a goal ]]
-    Estimated increasing cost defects per page:
-    Rule sets:          [[ rule sets inspected against or planned to be 
-                           inspected against ]]
-
-  ACCEPTANCE REVIEW STATUS [[ deletable if no approval review ]]
-    Review date:    [[ date of the meeting where issues were logged and the 
-                       approval status was decided ]] 
-    Review status:  [[ current status:  accepted, conditionally accepted, 
-                       major revision required, rejected ]]
-    Reviewers:      [[ names of the members on the review team ]]
-
-  PUBLIC FUNCTIONS
-
-  EXAMPLES
-    Examples are given in the description of each function or macro where
-    relevant.
-
-  MODIFIED
-    mnanal     06/09/03 - backout of fix 2836388
-    mnanal     05/14/03 - bug-2836388
-    srseshad   11/27/02 - Change OCI_TYPECODE_BFLOAT/BDOUBLE codes
-    rxgovind   10/09/02 - add OCI_TYPECODE_UROWID
-    mxyang     09/17/02 - grabtrans 'mmorsi_obj_float'
-    srseshad   09/11/02 - 
-    srseshad   09/01/02 - 
-    aahluwal   06/03/02 - bug 2360115
-    celsbern   10/19/01 - merge LOG to MAIN
-    rxgovind   10/16/01 - update typecodes
-    rxgovind   09/19/01 - add typecodes
-    rkasamse   08/15/01 - add OCI_DURATION_USER_CALLBACK
-    jchai      09/24/01 - add type code for PLS_INTEGER
-    porangas   08/22/01 - Fix bug#1776434
-    schatter   04/09/01 - merge 1456235: define OCI_DURATION_INVALID
-    rdani      10/12/00 - 1449943 NOCOPY and PIPELINE
-    ciyer      05/26/00 - short names for abstract, overriding
-    rkasamse   05/25/00 - OCCI enhancements
-    smuralid   05/11/00 - OCITypeMethodFlags - add NOT INSTANTIABLE, OVERRIDING
-    rxgovind   05/09/00 - add OCI_TYPECODE_NONE
-    tnbui      07/28/99 - Remove OCI_TYPECODE_TIMESTAMP_ITZ                    
-    tnbui      07/21/99 - TS LOCAL TZ                                          
-    thoang     06/21/99 - Add OCI_TYPECODE_TIMESTAMP_ITZ
-    thoang     03/04/99 - Add datetime datatypes
-    rkasamse   10/20/98 - add OCI_ATTR_CACHE_ARRAYFLUSH
-    rkasamse   10/29/98 - add OCI_DURATION_CALLOUT
-    rkasamse   04/28/98 - OCI_OBJECT_DETECTCHANGE -> OCI_ATTR_OBJECT_DETECTCHAN
-    rkasamse   04/28/98 - OCI_OBJECT_NEWNOTNULL -> OCI_ATTR_OBJECT_NEWNOTNULL  
-    rkasamse   04/23/98 - add OCI_OBJECT_DETECTCHANGE
-    rkasamse   04/03/98 - add OCI_OBJECT_NEWNOTNULL                            
-    pmitra     04/01/98 - OCI_LOCK_X_NOWAIT added                              
-    rxgovind   02/18/98 - add OCI_TYPECODE_OPAQUE
-    rkasamse   02/13/98 - Add OCI_DURATION_PROCESS
-    cxcheng    07/28/97 - fix compile with SLSHORTNAME
-    skrishna   07/14/97 - add OCIObjectGetProperty
-    cxcheng    04/30/97 - make OCITypeParamMode values consistent with PL/SQL
-    skrishna   04/28/97 - undocument OCIObjectProperty & OCIObjectEvent
-    cxcheng    03/29/97 - remove all remaining short names
-    sthakur    03/20/97 - add casts to constants
-    cxcheng    02/21/97 - temporarily put SLSHORTNAME for PL/SQL
-    cxcheng    02/06/97 - take out short name support except with SLSHORTNAME
-    lchidamb   01/20/97 - update OCIRef comments
-    sgollapu   11/19/96 - Add OCI type codes for BOOL,REC,and TAB
-    cxcheng    11/19/96 - more typecode changes
-    cxcheng    11/13/96 - add #include for ocidfn.h
-    cxcheng    11/13/96 - add OCI_TYPECODE_ADT for compatibility
-    cxcheng    11/12/96 - add SQLT_NCO for named collection
-    cxcheng    11/11/96 - more changes to typecodes
-    cxcheng    11/07/96 - #define OCI_TYPECODE_MLSLABEL to SQLT_LAB
-    cxcheng    11/06/96 - fix #define omission for OROTCNAT
-    cxcheng    10/30/96 - move OCI_TYPECODE_* to ocidfn.h as SQLT_*
-    cxcheng    10/28/96 - more beautification changes
-    jboonleu   10/29/96 - add flags for freeing object
-    dchatter   10/26/96 - delete redef of OCISvcCtx, OCIError, OCIEnv
-    cxcheng    10/15/96 - more changes
-    cxcheng    10/14/96 - more final fixes to constants
-    mluong     10/11/96 -
-    mluong     10/11/96 -  KOCON and KONSP are in lowercase
-    mluong     10/11/96 -  add some define per Calvin
-    cxcheng    10/09/96 -  add #define for OROOCOSFN to OCI_COPY_NOREF
-    jboonleu   10/08/96 -  change OROOCOSFN to OCICopyFlag
-    jboonleu   10/07/96 -  use new OCI names for cache options
-    cxcheng    10/07/96 -  add OROTCS02 for KOTTCBRI and OROTCS03 as spare
-    cxcheng    10/07/96 -  more lint fixes
-    cxcheng    10/02/96 -  move oronsp to ko.h as konsp
-    cxcheng    10/01/96 -  add long names for readability
-    cxcheng    10/01/96 -  remove orotty and orotal
-    rjenkins   09/28/96 -  2k char 4k varchar2
-    jboonleu   09/27/96 -  add macro used only in beta2
-    cxcheng    09/27/96 -  move oroenv to oroenv.h
-    cxcheng    09/24/96 -  remove unnecessary orotyp
-    cxcheng    09/25/96 -  add typecode OROTCS01 as placeholder for lob pointer
-    cxcheng    09/20/96 -  add TDO load option orotgo
-    jboonleu   09/18/96 -  add OROOPOREC
-    jboonleu   09/10/96 -  add OROOPODFL
-    jweisz     08/27/96 -  add SQL internal typecode OROTCS00
-    cxcheng    08/02/96 -  add PLSQL internal typecodes OROTCP..
-    cxcheng    08/01/96 -  add OROTCFAR to fill up space left by OROTCCAR
-    jboonleu   07/16/96 -  new pin option
-    cxcheng    06/18/96 -  add casts to OROTNOPRE and OROTNOSCL
-    cxcheng    05/29/96 -  change OROTCNPT back to OROTCDOM
-    vkrishna   05/27/96 -  add OROTCCAR
-    cxcheng    05/17/96 -  replace OROTCFAR with OROTCCAR
-    cxcheng    05/08/96 -  change orotmf from ub1 to ub2
-    cxcheng    05/07/96 -  fix public defines for method types
-    cxcheng    04/30/96 -  change OROTCDOM to OROTCNPT
-    cxcheng    04/15/96 -  remove obsolete OROTTYICT
-    jboonleu   04/12/96 -  add new pin option
-    sthakur    04/12/96 -  add indicator type and indicator status
-    cxcheng    04/10/96 -  add function parameter codes for ORT/KOT
-    cxcheng    04/03/96 -  replace OROTCFAR as OROTCCAR
-    jwijaya    03/29/96 -  add OROTTCCAR
-    jwijaya    03/27/96 -  better comments for orotc
-    cxcheng    02/23/96 -  add typecodes for SMALLINT and VARCHAR2
-    skrishna   02/22/96 -  add oroind - null indicator type
-    cxcheng    02/21/96 -  change lob character codes to OROTCCLB, OROTCBLB...
-    jboonleu   02/06/96 -  new value for predefined duration
-    cxcheng    01/12/96 -  add OROTCCLO, OROTCBLO, OROTCFIL to orotc
-    cxcheng    12/05/95 -  add OROTCDOM and OROTCAAT to orotc
-    skotsovo   10/30/95 -  reserve space for internal 'oid' type
-    jwijaya    10/20/95 -  support variable-length ref
-    cxcheng    10/03/95 -  add OROTMFOR for ordering function to orotmf
-    cxcheng    10/03/95 -  Adding the ordering function type to orotmf
-    jboonleu   09/28/95 -  set OROODTPRE 
-    jboonleu   09/25/95 -  add oroodt
-    skotsovo   03/10/95 -  update to only include release 1 
-    jboonleu   02/15/95 -  add OROOPOREC, remove orocro, oroolo
-    skotsovo   01/30/95 -  add default max lengths for varrays and vstrings 
-    skotsovo   01/24/95 -  categorize sint32, double, and real as number types 
-                           (with precision and scale) instead of scalar types.
-    skotsovo   12/20/94 -  add release 1 types 
-    skotsovo   12/12/94 -  update according to new ots doc
-    skotsovo   12/01/94 -  add default precision and scale 
-    jwijaya    11/15/94 -  rename ORONSPTAB to ORONSPEXT 
-    jwijaya    10/25/94 -  tint 
-    jwijaya    10/06/94 -  add namespace 
-    jwijaya    10/02/94 -  connection handle -> connection number 
-    skotsovo   09/12/94 -  keep 0 as uninitialized value for ORT consts 
-    skotsovo   08/24/94 -  fix orotec 
-    skotsovo   08/17/94 -  modify type code names 
-    skotsovo   08/12/94 -  fix 141 lint errors 
-    skotsovo   07/25/94 -  modify categorization of complex types (orotc) 
-    skotsovo   07/07/94 -  change typecode enum values & add decimal type
-    skotsovo   07/01/94 -  change order of typecodes 
-    jwijaya    06/15/94 -  review 
-    jboonleu   06/13/94 -  add comments for the object cache options
-    jwijaya    06/13/94 -  adhere to the header file template 
-    skotsovo   06/09/94 -  make ots scalar type names consistent with the ots 
-                           document 
-    jwijaya    06/07/94 -  include oratypes.h instead of s.h 
-    skotsovo   05/24/94 -  change typecodes 
-    jwijaya    05/23/94 -  fix comments of ororef 
-    skotsovo   05/19/94 -  remove type composition 
-    skotsovo   05/09/94 -  modified orotc according to new OTS document
-    jwijaya    05/03/94 -  oroid and ororef
-    jwijaya    01/26/94 -  Creation
-*/
-
-
-#ifndef ORATYPES
-#include <oratypes.h>
-#endif
-
-#ifndef OCIDFN_ORACLE
-#include <ocidfn.h>
-#endif
-
-#ifndef ORO_ORACLE
-#define ORO_ORACLE
-
-/*---------------------------------------------------------------------------*/
-/*                         SHORT NAMES SUPPORT SECTION                       */
-/*---------------------------------------------------------------------------*/
-
-#ifdef SLSHORTNAME
-
-/* the following are short names that are only supported on IBM mainframes
-   with the SLSHORTNAME defined.
-   With this all subsequent long names will actually be substituted with
-   the short names here */
-
-#define OCIDuration                     oroodt
-#define OCIInd                          oroind
-#define OCILockOpt                      oroolm
-#define OCIMarkOpt                      oroomo
-#define OCIObjectEvent                  orocev
-#define OCIObjectProperty               oroopr
-#define OCIPinOpt                       oroopo
-#define OCIRef                          ororef
-#define OCIRefreshOpt                   orooro
-#define OCITypeCode                     orotc
-#define OCITypeEncap                    orotec
-#define OCITypeGetOpt                   orotgo
-#define OCITypeMethodFlag               orotmf
-#define OCITypeParamMode                orotpm
-#define OCIObjectPropId                 oroopi
-#define OCIObjectLifetime               oroolft
-#define OCIObjectMarkstatus             oroomst
-#define OCI_LOCK_NONE                   OROOLMNUL
-#define OCI_LOCK_X                      OROOLMX
-#define OCI_LOCK_X_NOWAIT               OROOLMXNW
-#define OCI_MARK_DEFAULT                OROOMODFL
-#define OCI_MARK_NONE                   OROOMONON
-#define OCI_MARK_UPDATE                 OROOMOUPD
-#define OCI_OBJECTEVENT_AFTER_FLUSH     OROCEVAFL
-#define OCI_OBJECTEVENT_AFTER_REFRESH   OROCEVARF
-#define OCI_OBJECTEVENT_BEFORE_FLUSH    OROCEVBFL
-#define OCI_OBJECTEVENT_BEFORE_REFRESH  OROCEVBRF
-#define OCI_OBJECTEVENT_WHEN_LOCK       OROCEVWLK
-#define OCI_OBJECTEVENT_WHEN_MARK_DELETED OROCEVWDL
-#define OCI_OBJECTEVENT_WHEN_MARK_UPDATED OROCEVWUP
-#define OCI_OBJECTEVENT_WHEN_UNMARK     OROCEVWUM
-#define OCI_OBJECTPROP_DIRTIED          OROOPRDRT
-#define OCI_OBJECTPROP_LOADED           OROOPRLOD
-#define OCI_OBJECTPROP_LOCKED           OROOPRLCK
-#define OCI_PIN_ANY                     OROOPOANY
-#define OCI_PIN_DEFAULT                 OROOPODFL
-#define OCI_PIN_LATEST                  OROOPOLST
-#define OCI_PIN_RECENT                  OROOPOREC
-#define OCI_REFRESH_LOADED              OROOROLOD
-#define OCI_TYPEENCAP_PRIVATE           OROTECPVT
-#define OCI_TYPEENCAP_PUBLIC            OROTECPUB
-#define OCI_TYPEGET_ALL                 OROTGOALL
-#define OCI_TYPEGET_HEADER              OROTGOHDR
-#define OCI_TYPEMETHOD_CONSTANT         OROTMCON
-#define OCI_TYPEMETHOD_CONSTRUCTOR      OROTMCSTR
-#define OCI_TYPEMETHOD_DESTRUCTOR       OROTMDSTR
-#define OCI_TYPEMETHOD_INLINE           OROTMINL
-#define OCI_TYPEMETHOD_MAP              OROTMMAP
-#define OCI_TYPEMETHOD_OPERATOR         OROTMOP
-#define OCI_TYPEMETHOD_ORDER            OROTMOR
-#define OCI_TYPEMETHOD_RNDS             OROTMRDS
-#define OCI_TYPEMETHOD_RNPS             OROTMRPS
-#define OCI_TYPEMETHOD_SELFISH          OROTMSLF
-#define OCI_TYPEMETHOD_VIRTUAL          OROTMVRT
-#define OCI_TYPEMETHOD_WNDS             OROTMWDS
-#define OCI_TYPEMETHOD_WNPS             OROTMWPS
-#define OCI_TYPEMETHOD_ABSTRACT         OROTMABSTRACT
-#define OCI_TYPEMETHOD_OVERRIDING       OROTMOVERRIDING
-#define OCI_TYPEMETHOD_PIPELINED        OROTMPIPELINED
-#define OCI_TYPEPARAM_BYREF             OROTPMREF
-#define OCI_TYPEPARAM_IN                OROTPMIN
-#define OCI_TYPEPARAM_INOUT             OROTPMIO
-#define OCI_TYPEPARAM_OUT               OROTPMOUT
-#define OCI_TYPEPARAM_OUTNCPY           OROTPMOUTNCPY
-#define OCI_TYPEPARAM_INOUTNCPY         OROTPMIONCPY
-
-#endif                                                        /* SLSHORTNAME */
-
-
-/*---------------------------------------------------------------------------*/
-/*                    PUBLIC TYPES, CONSTANTS AND MACROS                     */
-/*---------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------*/
-/*                  GENERAL OBJECT TYPES, CONSTANTS, MACROS                  */
-/*---------------------------------------------------------------------------*/
-
-/*------------------------- OBJECT REFERENCE (REF) --------------------------*/
-
-typedef struct OCIRef OCIRef;
-/*
- * OCIRef - OCI object REFerence
- *
- * In the Oracle object runtime environment, an object is identified by an 
- * object reference (ref) which contains the object identifier plus other 
- * runtime information.  The contents of a ref is opaque to clients.  Use
- * OCIObjectNew() to construct a ref.
- */
-
-
-/*--------------------------- OBJECT INDICATOR ------------------------------*/
-
-typedef sb2 OCIInd;
-/*
- * OCIInd -- a variable of this type contains (null) indicator information
- */
-
-#define OCI_IND_NOTNULL (OCIInd)0                                /* not NULL */
-#define OCI_IND_NULL (OCIInd)(-1)                                    /* NULL */
-#define OCI_IND_BADNULL (OCIInd)(-2)                             /* BAD NULL */
-#define OCI_IND_NOTNULLABLE (OCIInd)(-3)                     /* not NULLable */
-
-/*---------------------------------------------------------------------------*/
-/*                               OBJECT CACHE                                */
-/*---------------------------------------------------------------------------*/
-
-/* To enable object change detection mode, set this to TRUE */
-#define OCI_ATTR_OBJECT_DETECTCHANGE            0x00000020
-
-/* To enable object creation with  non-NULL attributes by default, set the
-   following to TRUE.
-   By default, object is created with NULL attributes
-*/
-#define OCI_ATTR_OBJECT_NEWNOTNULL   0x00000010
-
-/* To enable sorting of the objects that belong to the same table
-   before being flushed through OCICacheFlush.
-   Please note that by enabling this object cache will not be flushing
-   the objects in the same order they were dirtied */
-#define OCI_ATTR_CACHE_ARRAYFLUSH 0x00000040
-
-/*--------------------------- OBJECT PIN OPTION -----------------------------*/
-
-enum OCIPinOpt
-{
-  /* 0 = uninitialized */
-  OCI_PIN_DEFAULT = 1,                                 /* default pin option */
-  OCI_PIN_ANY = 3,                          /* pin any copy of the object */
-  OCI_PIN_RECENT = 4,                    /* pin recent copy of the object */
-  OCI_PIN_LATEST = 5                     /* pin latest copy of the object */
-};
-typedef enum OCIPinOpt OCIPinOpt;
-
-/*
- * OCIPinOpt - OCI object Pin Option 
- *
- * In the Oracle object runtime environment, the program has the option to
- * specify which copy of the object to pin.  
- *
- * OCI_PINOPT_DEFAULT pins an object using the default pin option.  The default
- * pin option can be set as an attribute of the OCI environment handle 
- * (OCI_ATTR_PINTOPTION).  The value of the default pin option can be
- * OCI_PINOPT_ANY, OCI_PINOPT_RECENT, or OCI_PIN_LATEST. The default option
- * is initialized to OCI_PINOPT_ANY.
- *
- * OCI_PIN_ANY pins any copy of the object.  The object is pinned 
- * using the following criteria:
- *   If the object copy is not loaded, load it from the persistent store.
- *   Otherwise, the loaded object copy is returned to the program. 
- * 
- * OCI_PIN_RECENT pins the latest copy of an object.  The object is 
- * pinned using the following criteria:
- *   If the object is not loaded, load the object from the persistent store
- *       from the latest version.
- *   If the object is not loaded in the current transaction and it is not 
- *       dirtied, the object is refreshed from the latest version.
- *   Otherwise, the loaded object copy is returned to the program. 
- *
- * OCI_PINOPT_LATEST pins the latest copy of an object.  The object copy is 
- * pinned using the following criteria:
- *   If the object copy is not loaded, load it from the persistent store.
- *   If the object copy is loaded and dirtied, it is returned to the program.
- *   Otherwise, the loaded object copy is refreshed from the persistent store.
- */
-
-
-
-/*--------------------------- OBJECT LOCK OPTION ----------------------------*/
-
-enum OCILockOpt
-{
-  /* 0 = uninitialized */
-  OCI_LOCK_NONE = 1,                               /* null (same as no lock) */
-  OCI_LOCK_X = 2,                                          /* exclusive lock */
-  OCI_LOCK_X_NOWAIT = 3                      /* exclusive lock, do not wait  */
-};
-typedef enum OCILockOpt OCILockOpt;
-/*
- * OCILockOpt - OCI object LOCK Option 
- *
- * This option is used to specify the locking preferences when an object is
- * loaded from the server.
- */
-
-
-/*------------------------- OBJECT MODIFYING OPTION -------------------------*/
-
-enum OCIMarkOpt
-{
-  /* 0 = uninitialized */
-  OCI_MARK_DEFAULT = 1,        /* default (the same as OCI_MARK_NONE) */
-  OCI_MARK_NONE = OCI_MARK_DEFAULT,   /* object has not been modified */
-  OCI_MARK_UPDATE                               /* object is to be updated */
-};
-typedef enum OCIMarkOpt OCIMarkOpt;
-/*
- * OCIMarkOpt - OCI object Mark option
- *
- * When the object is marked updated, the client has to specify how the
- * object is intended to be changed.  
- */
-
-/*-------------------------- OBJECT Duration --------------------------------*/
- 
-typedef ub2 OCIDuration;
-
-#define  OCI_DURATION_INVALID 0xFFFF                     /* Invalid duration */
-#define  OCI_DURATION_BEGIN (OCIDuration)10
-                                           /* beginning sequence of duration */
-#define  OCI_DURATION_NULL (OCIDuration)(OCI_DURATION_BEGIN-1)
-                                                            /* null duration */
-#define  OCI_DURATION_DEFAULT (OCIDuration)(OCI_DURATION_BEGIN-2) /* default */
-#define  OCI_DURATION_USER_CALLBACK (OCIDuration)(OCI_DURATION_BEGIN-3)
-#define  OCI_DURATION_NEXT (OCIDuration)(OCI_DURATION_BEGIN-4)
-                                                    /* next special duration */
-#define  OCI_DURATION_SESSION (OCIDuration)(OCI_DURATION_BEGIN)
-                                                  /* the end of user session */
-#define  OCI_DURATION_TRANS (OCIDuration)(OCI_DURATION_BEGIN+1)
-                                              /* the end of user transaction */
-/******************************************************************************
-**  DO NOT USE OCI_DURATION_CALL. IT  IS UNSUPPORTED                         **
-**  WILL BE REMOVED/CHANGED IN A FUTURE RELEASE                              **
-******************************************************************************/
-#define  OCI_DURATION_CALL (OCIDuration)(OCI_DURATION_BEGIN+2)
-                                       /* the end of user client/server call */
-#define  OCI_DURATION_STATEMENT (OCIDuration)(OCI_DURATION_BEGIN+3)
-
-/* This is to be used only during callouts.  It is similar to that 
-of OCI_DURATION_CALL, but lasts only for the duration of a callout.
-Its heap is from PGA */
-#define  OCI_DURATION_CALLOUT (OCIDuration)(OCI_DURATION_BEGIN+4)
-
-#define  OCI_DURATION_LAST OCI_DURATION_CALLOUT 
-                                             /* last of predefined durations */
-
-/* This is not being treated as other predefined durations such as 
-   SESSION, CALL etc, because this would not have an entry in the duration
-   table and its functionality is primitive such that only allocate, free,
-   resize memory are allowed, but one cannot create subduration out of this
-*/ 
-#define  OCI_DURATION_PROCESS (OCIDuration)(OCI_DURATION_BEGIN-5) 
- 
-/*
- * OCIDuration - OCI object duration
- *
- * A client can specify the duration of which an object is pinned (pin
- * duration) and the duration of which the object is in memory (allocation
- * duration).  If the objects are still pinned at the end of the pin duration,
- * the object cache manager will automatically unpin the objects for the
- * client. If the objects still exist at the end of the allocation duration,
- * the object cache manager will automatically free the objects for the client.
- *
- * Objects that are pinned with the option OCI_DURATION_TRANS will get unpinned
- * automatically at the end of the current transaction.
- *
- * Objects that are pinned with the option OCI_DURATION_SESSION will get
- * unpinned automatically at the end of the current session (connection).
- *
- * The option OCI_DURATION_NULL is used when the client does not want to set
- * the pin duration.  If the object is already loaded into the cache, then the
- * pin duration will remain the same.  If the object is not yet loaded, the
- * pin duration of the object will be set to OCI_DURATION_DEFAULT.
- */
-
-/*----------------------------- OBJECT PROPERTY -----------------------------*/
- 
-/******************************************************************************
-**  DO NOT USE OCIObjectProperty. IT IS UNSUPPORTED                          **
-**  WILL BE REMOVED/CHANGED IN A FUTURE RELEASE                              **
-******************************************************************************/
-enum OCIObjectProperty
-{
-  /* 0 = uninitialized */
-  OCI_OBJECTPROP_DIRTIED = 1,                               /* dirty objects */
-  OCI_OBJECTPROP_LOADED,                /* objects loaded in the transaction */
-  OCI_OBJECTPROP_LOCKED                                    /* locked objects */
-};
-typedef enum OCIObjectProperty OCIObjectProperty;
-/*
- * OCIObjectProperty -- OCI Object Property
- * This specifies the properties of objects in the object cache.
- */
-
-/*------------------------- CACHE REFRESH OPTION ---------------------------*/
-
-enum OCIRefreshOpt
-{
-  /* 0 = uninitialized */
-  OCI_REFRESH_LOADED = 1        /* refresh objects loaded in the transaction */
-};
-typedef enum OCIRefreshOpt OCIRefreshOpt; 
-/*
- * OCIRefreshOpt - OCI cache Refresh Option
- * This option is used to specify the set of objects to be refreshed. 
- *
- * OCI_REFRESH_LOAD refreshes the objects that are loaded in the current  
- * transaction. 
- */
-
-/*-------------------------------- OBJECT EVENT -----------------------------*/
-
-/******************************************************************************
-**  DO NOT USE OCIObjectEvent. IT IS UNSUPPORTED                             **
-**  WILL BE REMOVED/CHANGED IN A FUTURE RELEASE                              **
-******************************************************************************/
-enum OCIObjectEvent
-{
-   /* 0 = uninitialized */
-   OCI_OBJECTEVENT_BEFORE_FLUSH = 1,            /* before flushing the cache */
-   OCI_OBJECTEVENT_AFTER_FLUSH,                  /* after flushing the cache */
-   OCI_OBJECTEVENT_BEFORE_REFRESH,            /* before refreshing the cache */
-   OCI_OBJECTEVENT_AFTER_REFRESH,              /* after refreshing the cache */
-   OCI_OBJECTEVENT_WHEN_MARK_UPDATED,    /* when an object is marked updated */
-   OCI_OBJECTEVENT_WHEN_MARK_DELETED,    /* when an object is marked deleted */
-   OCI_OBJECTEVENT_WHEN_UNMARK,          /* when an object is being unmarked */
-   OCI_OBJECTEVENT_WHEN_LOCK               /* when an object is being locked */
-};
-typedef enum OCIObjectEvent OCIObjectEvent;
-/*
- * OCIObjectEvent -- OCI Object Event 
- * This specifies the kind of event that is supported by the object
- * cache.  The program can register a callback that is invoked when the  
- * specified event occurs.
- */
-
-/*----------------------------- OBJECT COPY OPTION --------------------------*/
-#define OCI_OBJECTCOPY_NOREF (ub1)0x01 
-/*
- * OCIObjectCopyFlag - Object copy flag
- *
- * If OCI_OBJECTCOPY_NOREF is specified when copying an instance, the 
- * reference and lob will not be copied to the target instance.
- */
-
-/*----------------------------- OBJECT FREE OPTION --------------------------*/
-#define OCI_OBJECTFREE_FORCE      (ub2)0x0001
-#define OCI_OBJECTFREE_NONULL     (ub2)0x0002
-#define OCI_OBJECTFREE_HEADER     (ub2)0x0004
-/*
- * OCIObjectFreeFlag - Object free flag
- *
- * If OCI_OBJECTCOPY_FORCE is specified when freeing an instance, the instance
- * is freed regardless it is pinned or diritied.
- * If OCI_OBJECTCOPY_NONULL is specified when freeing an instance, the null 
- * structure is not freed.
- */
-
-/*----------------------- OBJECT PROPERTY ID -------------------------------*/
-
-typedef ub1 OCIObjectPropId;
-#define OCI_OBJECTPROP_LIFETIME 1       /* persistent or transient or value */
-#define OCI_OBJECTPROP_SCHEMA 2   /* schema name of table containing object */
-#define OCI_OBJECTPROP_TABLE 3     /* table name of table containing object */
-#define OCI_OBJECTPROP_PIN_DURATION 4             /* pin duartion of object */
-#define OCI_OBJECTPROP_ALLOC_DURATION 5         /* alloc duartion of object */
-#define OCI_OBJECTPROP_LOCK 6                      /* lock status of object */
-#define OCI_OBJECTPROP_MARKSTATUS 7                /* mark status of object */
-#define OCI_OBJECTPROP_VIEW 8            /* is object a view object or not? */
-
-/*
- * OCIObjectPropId - OCI Object Property Id
- * Identifies the different properties of objects.
- */
-
-/*----------------------- OBJECT LIFETIME ----------------------------------*/
-
-enum OCIObjectLifetime
-{
-   /* 0 = uninitialized */
-   OCI_OBJECT_PERSISTENT = 1,                          /* persistent object */
-   OCI_OBJECT_TRANSIENT,                                /* transient object */
-   OCI_OBJECT_VALUE                                         /* value object */
-};
-typedef enum OCIObjectLifetime OCIObjectLifetime;
-/*
- * OCIObjectLifetime - OCI Object Lifetime
- * Classifies objects depending upon the lifetime and referenceability 
- * of the object.
- */
-
-/*----------------------- OBJECT MARK STATUS -------------------------------*/
-
-typedef uword OCIObjectMarkStatus;
-#define OCI_OBJECT_NEW     0x0001                             /* new object */
-#define OCI_OBJECT_DELETED 0x0002                  /* object marked deleted */
-#define OCI_OBJECT_UPDATED 0x0004                  /* object marked updated */
-/*
- * OCIObjectMarkStatus - OCI Object Mark Status
- * Status of the object - new or updated or deleted
- */
-
-/* macros to test the object mark status */ 
-#define OCI_OBJECT_IS_UPDATED(flag) bit((flag), OCI_OBJECT_UPDATED)
-#define OCI_OBJECT_IS_DELETED(flag) bit((flag), OCI_OBJECT_DELETED)
-#define OCI_OBJECT_IS_NEW(flag) bit((flag), OCI_OBJECT_NEW)
-#define OCI_OBJECT_IS_DIRTY(flag) \
-  bit((flag), OCI_OBJECT_UPDATED|OCI_OBJECT_NEW|OCI_OBJECT_DELETED)
-
-/*---------------------------------------------------------------------------*/
-/*                               TYPE MANAGER                                */
-/*---------------------------------------------------------------------------*/
-
-/*------------------------------ TYPE CODE ----------------------------------*/
-
-/*
- * Type manager typecodes
- *
- * These are typecodes designed to be used with the type manager;
- * they also include longer, more readable versions of existing SQLT names.
- * Those types that are directly related to existing SQLT types are #define'd
- * to their SQLT equivalents.
- *
- * The type manager typecodes are designed to be useable for all OCI calls.
- * They are in the range from 192 to 320 for typecodes, so as not to conflict
- * with existing OCI SQLT typecodes (see ocidfn.h).
- */
-
-#define OCI_TYPECODE_REF         SQLT_REF        /* SQL/OTS OBJECT REFERENCE */
-#define OCI_TYPECODE_DATE        SQLT_DAT              /* SQL DATE  OTS DATE */
-#define OCI_TYPECODE_SIGNED8     27      /* SQL SIGNED INTEGER(8)  OTS SINT8 */
-#define OCI_TYPECODE_SIGNED16    28    /* SQL SIGNED INTEGER(16)  OTS SINT16 */
-#define OCI_TYPECODE_SIGNED32    29    /* SQL SIGNED INTEGER(32)  OTS SINT32 */
-#define OCI_TYPECODE_REAL        21                /* SQL REAL  OTS SQL_REAL */
-#define OCI_TYPECODE_DOUBLE      22  /* SQL DOUBLE PRECISION  OTS SQL_DOUBLE */
-#define OCI_TYPECODE_BFLOAT      SQLT_IBFLOAT       /* Binary float */ 
-#define OCI_TYPECODE_BDOUBLE     SQLT_IBDOUBLE  /* Binary double */
-#define OCI_TYPECODE_FLOAT       SQLT_FLT      /* SQL FLOAT(P)  OTS FLOAT(P) */
-#define OCI_TYPECODE_NUMBER      SQLT_NUM/* SQL NUMBER(P S)  OTS NUMBER(P S) */
-#define OCI_TYPECODE_DECIMAL     SQLT_PDN
-                                       /* SQL DECIMAL(P S)  OTS DECIMAL(P S) */
-#define OCI_TYPECODE_UNSIGNED8   SQLT_BIN
-                                       /* SQL UNSIGNED INTEGER(8)  OTS UINT8 */
-#define OCI_TYPECODE_UNSIGNED16  25  /* SQL UNSIGNED INTEGER(16)  OTS UINT16 */
-#define OCI_TYPECODE_UNSIGNED32  26  /* SQL UNSIGNED INTEGER(32)  OTS UINT32 */
-#define OCI_TYPECODE_OCTET       245                   /* SQL ???  OTS OCTET */
-#define OCI_TYPECODE_SMALLINT    246           /* SQL SMALLINT  OTS SMALLINT */
-#define OCI_TYPECODE_INTEGER     SQLT_INT        /* SQL INTEGER  OTS INTEGER */
-#define OCI_TYPECODE_RAW         SQLT_LVB          /* SQL RAW(N)  OTS RAW(N) */
-#define OCI_TYPECODE_PTR         32              /* SQL POINTER  OTS POINTER */
-#define OCI_TYPECODE_VARCHAR2    SQLT_VCS
-                                     /* SQL VARCHAR2(N)  OTS SQL_VARCHAR2(N) */
-#define OCI_TYPECODE_CHAR        SQLT_AFC    /* SQL CHAR(N)  OTS SQL_CHAR(N) */
-#define OCI_TYPECODE_VARCHAR     SQLT_CHR
-                                       /* SQL VARCHAR(N)  OTS SQL_VARCHAR(N) */
-#define OCI_TYPECODE_MLSLABEL    SQLT_LAB                    /* OTS MLSLABEL */
-#define OCI_TYPECODE_VARRAY      247         /* SQL VARRAY  OTS PAGED VARRAY */
-#define OCI_TYPECODE_TABLE       248              /* SQL TABLE  OTS MULTISET */
-#define OCI_TYPECODE_OBJECT      SQLT_NTY       /* SQL/OTS NAMED OBJECT TYPE */
-#define OCI_TYPECODE_OPAQUE       58                /*  SQL/OTS Opaque Types */
-#define OCI_TYPECODE_NAMEDCOLLECTION  SQLT_NCO
-                                            /* SQL/OTS NAMED COLLECTION TYPE */
-#define OCI_TYPECODE_BLOB        SQLT_BLOB    /* SQL/OTS BINARY LARGE OBJECT */
-#define OCI_TYPECODE_BFILE       SQLT_BFILE    /* SQL/OTS BINARY FILE OBJECT */
-#define OCI_TYPECODE_CLOB        SQLT_CLOB /* SQL/OTS CHARACTER LARGE OBJECT */
-#define OCI_TYPECODE_CFILE       SQLT_CFILE /* SQL/OTS CHARACTER FILE OBJECT */
-
-/* the following are ANSI datetime datatypes added in 8.1 */
-#define OCI_TYPECODE_TIME        SQLT_TIME                   /* SQL/OTS TIME */
-#define OCI_TYPECODE_TIME_TZ     SQLT_TIME_TZ             /* SQL/OTS TIME_TZ */
-#define OCI_TYPECODE_TIMESTAMP   SQLT_TIMESTAMP         /* SQL/OTS TIMESTAMP */
-#define OCI_TYPECODE_TIMESTAMP_TZ  SQLT_TIMESTAMP_TZ /* SQL/OTS TIMESTAMP_TZ */
-
-#define OCI_TYPECODE_TIMESTAMP_LTZ  SQLT_TIMESTAMP_LTZ /* TIMESTAMP_LTZ */
-
-#define OCI_TYPECODE_INTERVAL_YM SQLT_INTERVAL_YM   /* SQL/OTS INTRVL YR-MON */
-#define OCI_TYPECODE_INTERVAL_DS SQLT_INTERVAL_DS  /* SQL/OTS INTRVL DAY-SEC */
-#define OCI_TYPECODE_UROWID      SQLT_RDD                     /* Urowid type */
-
-
-#define OCI_TYPECODE_OTMFIRST    228     /* first Open Type Manager typecode */
-#define OCI_TYPECODE_OTMLAST     320                    /* last OTM typecode */
-#define OCI_TYPECODE_SYSFIRST    228     /* first OTM system type (internal) */
-#define OCI_TYPECODE_SYSLAST     235      /* last OTM system type (internal) */
-#define OCI_TYPECODE_PLS_INTEGER   266     /* type code for PLS_INTEGER */
-
-/* the following are PL/SQL-only internal. They should not be used */
-#define OCI_TYPECODE_ITABLE      SQLT_TAB             /* PLSQL indexed table */
-#define OCI_TYPECODE_RECORD      SQLT_REC                    /* PLSQL record */
-#define OCI_TYPECODE_BOOLEAN     SQLT_BOL                   /* PLSQL boolean */
-
-/* NOTE : The following NCHAR related codes are just short forms for saying
-   OCI_TYPECODE_VARCHAR2 with a charset form of SQLCS_NCHAR. These codes are
-   intended for use in the OCIAnyData API only and nowhere else. */
-#define OCI_TYPECODE_NCHAR       286
-#define OCI_TYPECODE_NVARCHAR2   287
-#define OCI_TYPECODE_NCLOB       288
-
-
-/* To indicate absence of typecode being specified */
-#define OCI_TYPECODE_NONE          0
-/* To indicate error has to be taken from error handle - reserved for
-   sqlplus use */
-#define OCI_TYPECODE_ERRHP         283
-
-/* The OCITypeCode type is interchangeable with the existing SQLT type
-   which is a ub2 */
-typedef ub2 OCITypeCode;
-
-
-/*----------------------- GET OPTIONS FOR TDO  ------------------------------*/
-
-enum OCITypeGetOpt
-{
-  OCI_TYPEGET_HEADER,
-                /* load only the header portion of the TDO when getting type */
-  OCI_TYPEGET_ALL       /* load all attribute and method descriptors as well */
-};
-typedef enum OCITypeGetOpt OCITypeGetOpt;
-
-/*
- * OCITypeGetOpt
- *
- * This is the flag passed to OCIGetTypeArray() to indicate how the TDO is
- * going to be loaded into the object cache.
- * OCI_TYPEGET_HEADER implies that only the header portion is to be loaded
- * initially, with the rest loaded in on a 'lazy' basis. Only the header is
- * needed for PL/SQL and OCI operations. OCI_TYPEGET_ALL implies that ALL
- * the attributes and methods belonging to a TDO will be loaded into the
- * object cache in one round trip. Hence it will take much longer to execute,
- * but will ensure that no more loading needs to be done when pinning ADOs
- * etc. This is only needed if your code needs to examine and manipulate
- * attribute and method information.
- *
- * The default is OCI_TYPEGET_HEADER.
- */
-
-
-/*------------------------ TYPE ENCAPSULTATION LEVEL ------------------------*/
-
-enum OCITypeEncap
-{
-  /* 0 = uninitialized */
-  OCI_TYPEENCAP_PRIVATE,                /* private: only internally visible */
-  OCI_TYPEENCAP_PUBLIC /* public: visible to both internally and externally */
-};
-typedef enum OCITypeEncap OCITypeEncap;
-/*
- * OCITypeEncap - OCI Encapsulation Level
- */
-
-
-/*---------------------------- TYPE METHOD FLAGS ----------------------------*/
-
-enum OCITypeMethodFlag
-{
-  OCI_TYPEMETHOD_INLINE = 0x0001,                                  /* inline */
-  OCI_TYPEMETHOD_CONSTANT = 0x0002,                              /* constant */
-  OCI_TYPEMETHOD_VIRTUAL = 0x0004,                                /* virtual */
-  OCI_TYPEMETHOD_CONSTRUCTOR = 0x0008,                        /* constructor */
-  OCI_TYPEMETHOD_DESTRUCTOR = 0x0010,                          /* destructor */
-  OCI_TYPEMETHOD_OPERATOR  = 0x0020,                             /* operator */
-  OCI_TYPEMETHOD_SELFISH = 0x0040,     /* selfish method (generic otherwise) */
-
-  OCI_TYPEMETHOD_MAP = 0x0080,                    /* map (relative ordering) */
-  OCI_TYPEMETHOD_ORDER  = 0x0100,               /* order (relative ordering) */
-  /* OCI_TYPEMETHOD_MAP and OCI_TYPEMETHOD_ORDER are mutually exclusive */
-
-  OCI_TYPEMETHOD_RNDS= 0x0200,               /* Read no Data State (default) */
-  OCI_TYPEMETHOD_WNDS= 0x0400,                        /* Write no Data State */
-  OCI_TYPEMETHOD_RNPS= 0x0800,                      /* Read no Process State */
-  OCI_TYPEMETHOD_WNPS= 0x1000,                     /* Write no Process State */
-  OCI_TYPEMETHOD_ABSTRACT = 0x2000,    /* abstract (not instantiable) method */
-  OCI_TYPEMETHOD_OVERRIDING = 0x4000,                   /* overriding method */
-  OCI_TYPEMETHOD_PIPELINED = 0x8000                   /* method is pipelined */
-};
-typedef enum OCITypeMethodFlag OCITypeMethodFlag;
-
-/* macros to test the type method flags */
-#define OCI_METHOD_IS_INLINE(flag) bit((flag), OCI_TYPEMETHOD_INLINE)
-#define OCI_METHOD_IS_CONSTANT(flag) bit((flag), OCI_TYPEMETHOD_CONSTANT)
-#define OCI_METHOD_IS_VIRTUAL(flag) bit((flag), OCI_TYPEMETHOD_VIRTUAL)
-#define OCI_METHOD_IS_CONSTRUCTOR(flag) bit((flag), OCI_TYPEMETHOD_CONSTRUCTOR)
-#define OCI_METHOD_IS_DESTRUCTOR(flag) bit((flag), OCI_TYPEMETHOD_DESTRUCTOR)
-#define OCI_METHOD_IS_OPERATOR(flag) bit((flag), OCI_TYPEMETHOD_OPERATOR)
-#define OCI_METHOD_IS_SELFISH(flag) bit((flag), OCI_TYPEMETHOD_SELFISH)
-#define OCI_METHOD_IS_MAP(flag) bit((flag), OCI_TYPEMETHOD_MAP)
-#define OCI_METHOD_IS_ORDER(flag) bit((flag), OCI_TYPEMETHOD_ORDER)
-#define OCI_METHOD_IS_RNDS(flag) bit((flag), OCI_TYPEMETHOD_RNDS)
-#define OCI_METHOD_IS_WNDS(flag) bit((flag), OCI_TYPEMETHOD_WNDS)
-#define OCI_METHOD_IS_RNPS(flag) bit((flag), OCI_TYPEMETHOD_RNPS)
-#define OCI_METHOD_IS_WNPS(flag) bit((flag), OCI_TYPEMETHOD_WNPS)
-#define OCI_METHOD_IS_ABSTRACT(flag) bit((flag), OCI_TYPEMETHOD_ABSTRACT)
-#define OCI_METHOD_IS_OVERRIDING(flag) bit((flag), OCI_TYPEMETHOD_OVERRIDING)
-#define OCI_METHOD_IS_PIPELINED(flag) bit((flag), OCI_TYPEMETHOD_PIPELINED)
-
-#define OCI_TYPEMETHOD_IS_INLINE(flag) bit((flag), OCI_TYPEMETHOD_INLINE)
-#define OCI_TYPEMETHOD_IS_CONSTANT(flag) bit((flag), OCI_TYPEMETHOD_CONSTANT)
-#define OCI_TYPEMETHOD_IS_VIRTUAL(flag) bit((flag), OCI_TYPEMETHOD_VIRTUAL)
-#define OCI_TYPEMETHOD_IS_CONSTRUCTOR(flag) \
-  bit((flag), OCI_TYPEMETHOD_CONSTRUCTOR)
-#define OCI_TYPEMETHOD_IS_DESTRUCTOR(flag) \
-  bit((flag), OCI_TYPEMETHOD_DESTRUCTOR)
-#define OCI_TYPEMETHOD_IS_OPERATOR(flag) bit((flag), OCI_TYPEMETHOD_OPERATOR)
-#define OCI_TYPEMETHOD_IS_SELFISH(flag) bit((flag), OCI_TYPEMETHOD_SELFISH)
-#define OCI_TYPEMETHOD_IS_MAP(flag) bit((flag), OCI_TYPEMETHOD_MAP)
-#define OCI_TYPEMETHOD_IS_ORDER(flag) bit((flag), OCI_TYPEMETHOD_ORDER)
-#define OCI_TYPEMETHOD_IS_RNDS(flag) bit((flag), OCI_TYPEMETHOD_RNDS)
-#define OCI_TYPEMETHOD_IS_WNDS(flag) bit((flag), OCI_TYPEMETHOD_WNDS)
-#define OCI_TYPEMETHOD_IS_RNPS(flag) bit((flag), OCI_TYPEMETHOD_RNPS)
-#define OCI_TYPEMETHOD_IS_WNPS(flag) bit((flag), OCI_TYPEMETHOD_WNPS)
-#define OCI_TYPEMETHOD_IS_ABSTRACT(flag) bit((flag), OCI_TYPEMETHOD_ABSTRACT)
-#define OCI_TYPEMETHOD_IS_OVERRIDING(flag) \
-  bit((flag), OCI_TYPEMETHOD_OVERRIDING)
-#define OCI_TYPEMETHOD_IS_PIPELINED(flag) bit((flag), OCI_TYPEMETHOD_PIPELINED)
-
-/* macros to set the type method flags */
-#define OCI_TYPEMETHOD_SET_INLINE(flag) bis((flag), OCI_TYPEMETHOD_INLINE)
-#define OCI_TYPEMETHOD_SET_CONSTANT(flag) bis((flag), OCI_TYPEMETHOD_CONSTANT)
-#define OCI_TYPEMETHOD_SET_VIRTUAL(flag) bis((flag), OCI_TYPEMETHOD_VIRTUAL)
-#define OCI_TYPEMETHOD_SET_CONSTRUCTOR(flag) \
-  bis((flag), OCI_TYPEMETHOD_CONSTRUCTOR)
-#define OCI_TYPEMETHOD_SET_DESTRUCTOR(flag) \
-  bis((flag), OCI_TYPEMETHOD_DESTRUCTOR)
-#define OCI_TYPEMETHOD_SET_OPERATOR(flag) bis((flag), OCI_TYPEMETHOD_OPERATOR)
-#define OCI_TYPEMETHOD_SET_SELFISH(flag) bis((flag), OCI_TYPEMETHOD_SELFISH)
-#define OCI_TYPEMETHOD_SET_MAP(flag) bis((flag), OCI_TYPEMETHOD_MAP)
-#define OCI_TYPEMETHOD_SET_ORDER(flag) bis((flag), OCI_TYPEMETHOD_ORDER)
-#define OCI_TYPEMETHOD_SET_RNDS(flag) bis((flag), OCI_TYPEMETHOD_RNDS)
-#define OCI_TYPEMETHOD_SET_WNDS(flag) bis((flag), OCI_TYPEMETHOD_WNDS)
-#define OCI_TYPEMETHOD_SET_RNPS(flag) bis((flag), OCI_TYPEMETHOD_RNPS)
-#define OCI_TYPEMETHOD_SET_WNPS(flag) bis((flag), OCI_TYPEMETHOD_WNPS)
-
-/* macros to clear the type method flags */
-#define OCI_TYPEMETHOD_CLEAR_INLINE(flag) bic((flag), OCI_TYPEMETHOD_INLINE)
-#define OCI_TYPEMETHOD_CLEAR_CONSTANT(flag) \
-  bic((flag), OCI_TYPEMETHOD_CONSTANT)
-#define OCI_TYPEMETHOD_CLEAR_VIRTUAL(flag) bic((flag), OCI_TYPEMETHOD_VIRTUAL)
-#define OCI_TYPEMETHOD_CLEAR_CONSTRUCTOR(flag) \
-  bic((flag), OCI_TYPEMETHOD_CONSTRUCTOR)
-#define OCI_TYPEMETHOD_CLEAR_DESTRUCTOR(flag) \
-  bic((flag), OCI_TYPEMETHOD_DESTRUCTOR)
-#define OCI_TYPEMETHOD_CLEAR_OPERATOR(flag) \
-  bic((flag), OCI_TYPEMETHOD_OPERATOR)
-#define OCI_TYPEMETHOD_CLEAR_SELFISH(flag) bic((flag), OCI_TYPEMETHOD_SELFISH)
-#define OCI_TYPEMETHOD_CLEAR_MAP(flag) bic((flag), OCI_TYPEMETHOD_MAP)
-#define OCI_TYPEMETHOD_CLEAR_ORDER(flag) bic((flag), OCI_TYPEMETHOD_ORDER)
-#define OCI_TYPEMETHOD_CLEAR_RNDS(flag) bic((flag), OCI_TYPEMETHOD_RNDS)
-#define OCI_TYPEMETHOD_CLEAR_WNDS(flag) bic((flag), OCI_TYPEMETHOD_WNDS)
-#define OCI_TYPEMETHOD_CLEAR_RNPS(flag) bic((flag), OCI_TYPEMETHOD_RNPS)
-#define OCI_TYPEMETHOD_CLEAR_WNPS(flag) bic((flag), OCI_TYPEMETHOD_WNPS)
-
-/*--------------------------- TYPE PARAMETER MODE ---------------------------*/
-
-enum OCITypeParamMode
-{
-  /* PL/SQL starts this from 0 */
-  OCI_TYPEPARAM_IN = 0,                                                /* in */
-  OCI_TYPEPARAM_OUT,                                                  /* out */
-  OCI_TYPEPARAM_INOUT,                                             /* in-out */
-  OCI_TYPEPARAM_BYREF,              /* call by reference (implicitly in-out) */
-  OCI_TYPEPARAM_OUTNCPY,                         /* OUT with NOCOPY modifier */
-  OCI_TYPEPARAM_INOUTNCPY                     /* IN OUT with NOCOPY modifier */
-};
-typedef enum OCITypeParamMode OCITypeParamMode;
-
-
-/*-------------------------------- DEFAULTS ---------------------------------*/
-
-/* default binary and decimal precision and scale */
-
-#define OCI_NUMBER_DEFAULTPREC ((ub1)0)            /* no precision specified */
-#define OCI_NUMBER_DEFAULTSCALE ((sb1)MAXSB1MINVAL)
-                                        /* no binary/decimal scale specified */
-
-/* default maximum length for varrays and vstrings (used in sql.bsq) */
-
-#define OCI_VARRAY_MAXSIZE 4000
-                          /* default maximum number of elements for a varray */
-#define OCI_STRING_MAXLEN  4000     /* default maximum length of a vstring */
-
-/*---------------------------------------------------------------------------*/
-/* This set of macro is used only in beta2. They should be removed as soon as
- * PLSQL has made the changes of not using these macros.
- */
- 
-/* Special duration for allocating memory only. No instance can be allocated
- * given these durations.
- */
-#define OCICoherency OCIRefreshOpt
-#define OCI_COHERENCY_NONE   (OCIRefreshOpt)2
-#define OCI_COHERENCY_NULL   (OCIRefreshOpt)4
-#define OCI_COHERENCY_ALWAYS (OCIRefreshOpt)5
-
-#endif /* ORO_ORACLE */
-
diff --git a/src/terralib/drivers/Oracle/OCI/include/ort.h b/src/terralib/drivers/Oracle/OCI/include/ort.h
deleted file mode 100644
index 1ddb2a4..0000000
--- a/src/terralib/drivers/Oracle/OCI/include/ort.h
+++ /dev/null
@@ -1,2593 +0,0 @@
-/* @(#)ort.h    1.44 95/07/07 */
-
-/* Copyright (c) 1994, 2003, Oracle Corporation.  All rights reserved.  */
-
-/* 
-  NAME
-
-    ORT - ORacle's external open Type interface to the open type manager (OTM)
-
-  DESCRIPTION
-
-    The open type manager interface includes dynamic type operations to
-    create, delete, update, and access types.  See the "Functional
-    Specification for Oracle Object Call Interface (Objects Project),
-    Version 1.0" for a user level description of the OTM.  For a more
-    detailed description, see the "Component Document for the Open Type
-    Manager, Version 1.0".
-
-    NOTE: MOST Of the functions in this header file are being desupported.
-          Please use the OCIDescribeAny interface as described in oci.h
-          instead.
-          The OCIType, OCITypeElem, OCITypeMethod abstract types continue
-          to be supported. The only two functions that remain to be documented
-          are OCITypeArrayByName and OCITypeArrayByRef.
-          All obsolete types/functions are marked accordingly below.
-
-  RELATED DOCUMENTS
-
-    For the functional specification for the OTM, see: 
-        [1] Kotsovolos, Susan, "Functional Specification for Oracle Object
-            Call Interface (Objects Project), Version 1.0", Oracle
-            Corporation, February 1995.
-    For the internal design of the OTM, see the following:
-        [2] Kotsovolos, Susan, "Component Document for the Open Type Manager",
-            Oracle Corporation, November 1994. 
-        [3] Kotsovolos, Susan, "Design for The Open Type Manager, Oracle 
-            Object Management Subsystem Version 1.0", Oracle Corporation, 
-            March 1994.
-        [4] Kotsovolos, Susan and Tin A. Nguyen, "The Open Type Manager",
-            Oracle Corporation, March 1994.
-        [5] Kotsovolos, Susan and Tin A. Nguyen, "Schema Evolution",
-            Oracle Corporation, March 1994.
-    For a description of the types the OTM must support, see:
-        [6] Nguyen, Tin A., "The Open Type System", Oracle Corporation, 
-            February 1994. 
-
-  INSPECTION STATUS 
-
-    Inspection date:    
-    Inspection status: 
-    Estimated increasing cost defects per page:
-    Rule sets:        
-
-  ACCEPTANCE REVIEW STATUS 
-
-    Review date:    
-    Review status:
-    Reviewers:  
-
-
-  **** ALL OBSOLETE FUNCTIONS/TYPES ARE MARKED ACCORDINGLY ***
-
-  EXPORT FUNCTIONS
-
-    None
-
-  PUBLIC DATA STRUCTURES
-
-      OCIType - type descriptor in the object cache
-      OCITypeElem - type element descriptor in the object cache
-            (used for attributes and paramters)
-      OCITypeCode  - Open Type System type code.
-      OCITypeMethod - method descriptor in the object cache
-      OCITypeParamMode - parameter modes (ie. IN, IN-OUT etc)
-
-  PUBLIC FUNCTIONS
-
-    ITERATOR (for OCITypeAttrNext and OCITypeMethodNext)
-
-      OCITypeIterNew  - ** OBSOLETE ** Create new instance of an iteraton.
-      OCITypeIterSet  - ** OBSOLETE ** Initialize iterator.
-      OCITypeIterFree - ** OBSOLETE ** Free instance of iterator.
-
-    TYPE GET
-
-      OCITypeByName      - ** OBSOLETE ** Get a type by name.
-      OCITypeArrayByName - Get an array of types by their names.
-      OCITypeByRef       - ** OBSOLETE ** Get a type by its CREF.
-      OCITypeArrayByRef  - Get an array of types by their CREFs.
-
-    TYPE ACCESSORS
-
-      OCITypeName     - ** OBSOLETE ** OCI Get a type's name.
-      OCITypeSchema   - ** OBSOLETE ** OCI Get a type's schema name.
-      OCITypeTypeCode - ** OBSOLETE ** OCI Get a type's type code.
-      OCITypeVersion  - ** OBSOLETE ** OCI Get a Type's user-readable Version.
-      OCITypeAttrs    - ** OBSOLETE ** OCI Get a Type's Number of Attributes.
-      OCITypeMethods  - ** OBSOLETE ** OCI Get a Type's Number of Methods.
-
-    TYPE ELEMENT ACCESSORS (they represent attributes/parameters/results)
-
-      OCITypeElemName      - ** OBSOLETE ** Get a type element's (only for
-                                attributes) name.
-      OCITypeElemType      - ** OBSOLETE ** Get a type element's type
-                                descriptor.
-      OCITypeElemTypeCode  - ** OBSOLETE ** Get a type element's typecode.
-      OCITypeElemParameterizedType - ** OBSOLETE ** Get a type element's
-                                        parameterized type's type descriptor.
-      OCITypeElemNumPrec   - ** OBSOLETE ** Get a number's precision.
-      OCITypeElemNumScale  - ** OBSOLETE ** Get a decimal or oracle Number's
-                                            Scale
-      OCITypeElemCharSetID - ** OBSOLETE ** Get a fixed or variable length
-                                            string's character set ID.
-      OCITypeElemCharSetForm - ** OBSOLETE ** Get a fixed or variable length
-                                              string's character set form (how
-                                              character set information has
-                                              been specified).
-      OCITypeElemLength    - ** OBSOLETE ** Get a raw, fixed or variable
-                                            length string's length.
-      OCITypeElemParamMode - ** OBSOLETE ** Get element's parameter's mode
-                                            (only valid for parameter).
-      OCITypeElemDefaultValue - ** OBSOLETE ** Get element's Default Value.
-
-    ATTRIBUTE ACCESSORS
-
-      OCITypeAttrByName - ** OBSOLETE ** Get an Attribute by Name.
-      OCITypeAttrNext   - ** OBSOLETE ** Get an Attribute by Iteration.
-
-    COLLECTION ACCESSORS
-
-      OCITypeCollTypeCode - ** OBSOLETE ** Get a named collection's typecode.
-      OCITypeCollElem     - ** OBSOLETE ** Get a named collection's element's
-                               type element information.
-      OCITypeCollSize     - ** OBSOLETE ** Get a named collection's size in
-                               number of elements.
-
-    METHOD ACCESSORS
-
-      OCITypeMethodOverload - ** OBSOLETE ** Get number of overloaded methods
-                                             with the given method name.
-                                             (no direct equivalent for
-                                              OCIDescribe interface)
-      OCITypeMethodByName   - ** OBSOLETE ** Get one or more methods by name.
-      OCITypeMethodNext     - ** OBSOLETE ** Iterate to the next method to
-                                             retrieve.
-      OCITypeMethodName     - ** OBSOLETE ** Get method's name.
-      OCITypeMethodEncap    - ** OBSOLETE ** Get method's encapsulation level. 
-      OCITypeMethodFlags    - ** OBSOLETE ** et method's flags.
-      OCITypeMethodMap      - ** OBSOLETE ** Get type's map function.
-      OCITypeMethodOrder    - ** OBSOLETE ** Get type's order function.
-      OCITypeMethodParams   - ** OBSOLETE ** Get a method's number of
-                                             parameters.
-
-    RESULT ACCESSORS
-
-      OCITypeResult - ** OBSOLETE ** OCI Get a method's Result.
-
-      See also ATTRIBUTE/PARAMETER/RESULT TYPE ACCESSORS.
-
-    PARAMETER ACCESSORS
-
-      OCITypeParamByPos  - ** OBSOLETE ** Get a Parameter in a method By
-                                          Position.
-      OCITypeParamByName - ** OBSOLETE ** Get a Parameter in a method By Name.
-      OCITypeParamPos    - ** OBSOLETE ** Get a Parameter's PoSition in a
-                                          method.
-
-  CALL GRAPHS:
-
-  Only type accessors are supported for 8.0.
-  ** OBSOLETE ** please use OCIDescribe interface
-
-  TYPE ACCESSOR EXAMPLE
-
-      CREATE TYPE CAR
-      (
-        name   vstring,
-        age    number,
-          number   car_age;                           /o Oracle number o/
-          weight   car_weight;                        /o abstract type o/
-
-        PUBLIC: 
-
-          /o methods o/
-          car(orlvs a_name, number an_age, WEIGHT a_weight);
-          ~car();
-          inline number get_age() const;
-          
-          /o relative ordering (map) functions o/
-          number car_map
-      );
-
-      /o the following code accesses the type created above o/
-
-      ub1      meth_flags;
-      ub4      i, j; 
-      ub4      text_len, position;
-      ub4      count;
-      ub4      length;
-      OCITypeCode    typecode;
-      OCIRef  *attr_ref;
-      OCIRef  *param_ref;
-      OCIType  *tdo, new_tdo, final_tdo;
-      OCITypeElem  *elem;
-      OCITypeIter  *iterator_ort;
-      oratext   (*names)[];
-      ub4      lengths[];
-      ub4     *positions;
-      oratext    *name;
-      oratext     name_buffer[M_IDEN];
-
-      /o initialize the references o/
-      DISCARD orlrini(env, err, (dvoid *)&attr_ref);
-      DISCARD orlrini(env, err, (dvoid *)&param_ref);
-
-      /o ----------------- GET INFORMATION ABOUT A TYPE ----------------- o/
-
-      /o start a transaction o/
-      
-      /o Pin the type until the end of the transaction.  Pinning the type is 
-       o required before using any type accessors. 
-       o/
-      if (OCITypeByName(env, err, svc, (oratext *)0, 0, "CAR", strlen("CAR"), 
-                  OCI_DURATION_TRANS, &car_ref, &car_tdo) != OCI_SUCCESS)
-        /o error o/ ;
-
-      /o get the type's name o/
-      if (!memcmp(OCITypeName(env, err, car_tdo, &text_len), "person",
-                              text_len))
-        /o do something o/ ;
-
-      /o get the type's schema name o/
-      if (!memcmp(OCITypeSchema(env, err, car_tdo, &text_len), "john",
-                  text_len))
-        /o do something o/ ;
-
-      /o get the type code of the type o/
-      if (OCITypeTypeCode(env, err, car_tdo) == OCI_TYPECODE_ADT)
-        /o do something o/ ; 
-
-      /o get the type version o/
-      if (!memcmp(OCITypeVersion(env, err, car_tdo, &text_len), "1", text_len))
-         /o do something o/  ;
-
-      /o ------- GET FLATTENED POSITION OF AN ATTRIBUTES IN A TYPE ------- o/
-
-      names = malloc(sizeof(oratext *) * 2);
-      names[0] = malloc(strlen("car_weight"));
-      names[1] = malloc(strlen("ounces"));
-      memcpy(names[0], "car_weight", strlen("car_weight"));
-      memcpy(names[1], "ounces", strlen("ounces"));
-
-      lengths = malloc(sizeof(ub4) * 2);
-      lengths[0] = strlen("car_weight");
-      lengths[1] = strlen("ounces");
-
-      /o ---------- GET IMMEDIATE ATTRIBUTES IN A TYPE ---------- o/
-
-      /o loop through all attributes in the type with iterator o/
-      if (OCITypeIterNew(env, err, car_tdo, &iterator_ort) != OCI_SUCCESS)
-        /o do something o/
-
-      while (OCITypeAttrNext(env, err, iterator_ort, &ado) != OCI_NO_DATA)
-      {
-        /o get the attribute's name o/
-        if (!memcmp(OCITypeElemName(env, err, ado, &text_len),
-                                    "tiger", text_len))
-          /o do something o/  ;
-
-        /o get the attribute's type descriptor o/
-        if (OCITypeElemType(env, err, ado, &tdo) != OCI_SUCCESS)
-          /o error o/ ;
-
-        /o get the attribute's type code o/
-        typecode = OCITypeElemTypeCode(env, err, ado);
-
-        switch (typecode)
-        {
-        /o scalar types o/
-        case OCI_TYPECODE_DATE:                                     /o date o/
-        case OCI_TYPECODE_SIGNED8:                                  /o byte o/
-        case OCI_TYPECODE_SIGNED16:                                /o short o/
-        case OCI_TYPECODE_UNSIGNED8:                       /o unsigned byte o/
-        case OCI_TYPECODE_UNSIGNED16:                     /o unsigned short o/
-        case OCI_TYPECODE_OCTET:                                   /o octet o/
-        case OCI_TYPECODE_TABLE:                            /o nested table o/
-        case OCI_TYPECODE_CLOB:                            /o character lob o/
-        case OCI_TYPECODE_BLOB:                               /o binary lob o/
-        case OCI_TYPECODE_CFILE:                   /o character file object o/
-        case OCI_TYPECODE_BFILE:                      /o binary file object o/
-
-          /o do something o/
-          break;
-
-        /o number types o/
-        case OCI_TYPECODE_NUMBER:                          /o oracle number o/
-        case OCI_TYPECODE_DECIMAL:                               /o decimal o/
-          {
-            /o get the scale of the number o/
-            if (OCITypeElemNumScale(env, err, ado) == 3)
-              /o do something o/ ;
-          }
-          /o fall through to get the precision o/
-
-        case OCI_TYPECODE_FLOAT:                                   /o float o/
-        case OCI_TYPECODE_SIGNED32:                                 /o long o/
-        case OCI_TYPECODE_UNSIGNED32:                      /o unsigned long o/
-        case OCI_TYPECODE_REAL:                                     /o real o/
-        case OCI_TYPECODE_DOUBLE:                                 /o double o/
-          {
-            /o get the precision of the number o/
-            if (OCITypeElemNumPrec(env, err, ado) == 2)
-              /o do something o/ ;
-          }
-          break;
-
-        /o string types o/
-        case OCI_TYPECODE_CHAR:                      /o fixed length string o/
-        case OCI_TYPECODE_VARCHAR2:               /o variable length string o/
-        case OCI_TYPECODE_RAW:                                       /o raw o/
-          {
-            /o get the length of the fixed or variable length string o/
-            if (OCITypeElemLength(env, err, ado) < 100)
-              /o do something o/
-          }
-          break;
-
-        /o parameterized types o/
-        case OCI_TYPECODE_REF:                          /o reference o/
-        case OCI_TYPECODE_PTR:                            /o pointer o/
-          {
-            /o get the type stored in the parameterized type o/
-            if (OCITypeElemParameterizedType(env, err, ado, &tdo)
-                 != OCI_SUCCESS)
-              /o error o/ ;
-
-            /o do something o/
-            if (OCI_TYPEELEM_IS_REF(OCITypeElemFlags(env, err, ado)))...
-          }
-          break;
-
-        /o domain type o/
-        case OCI_TYPECODE_NAMEDCOLLECTION:
-          switch (OCITypeCollTypeCode(env, err, tdo))
-          {
-          case OCI_TYPECODE_VARRAY:                   /o variable array o/
-            ub4   num_elems;
-            OCIType *element_type;
-
-            /o get the number of elements in the farray or the maximum number
-             o of elements in the varray.
-             o/
-            OCITypeCollSize(env, err, tdo, &num_elems);
-
-            /o get the type of the array o/
-            OCITypeElemType(env, err, tdo, &element_type);
-          }
-          break;
-
-          case OCI_TYPECODE_TABLE:                         /o multiset o/
-          {
-            OCIType *table_type;
-
-            /o get the type of the multiset o/
-            OCITypeElemType(env, err, tdo, &table_type);
-
-            /o do something o/
-          }
-        }
-
-        /o abstract type o/
-        case OCI_TYPECODE_ADT:                 /o abstract data type o/
-          {
-            /o get the adt information o/
-            if (OCITypeElemType(env, err, ado, &tdo) != OCI_SUCCESS)
-              /o error o/ ;
-
-            /o do something o/
-          }
-          break;
-
-        default:
-          DISCARD printf("Error:  invalid type code\n");
-
-        } /o end of typecode switch o/
-
-      } /o end of loop through all attributes in a type o/
-
-
-      /o ------------ GET THE IMMEDIATE METHODS OF A TYPE ------------ o/
-
-      /o loop through all methods in the type by reusing iterator o/
-      if (OCITypeIterSet(env, err, car_tdo, iterator_ort) != OCI_SUCCESS)
-        /o do something o/
-
-      while (OCITypeMethodNext(env, err, iterator_ort) != OCI_NO_DATA)
-      {
-        /o get the method's name o/
-        if (!memcmp(OCITypeMethodName(env, err, mdo, &text_len), "car",
-                    text_len))
-          /o do something o/  ;
-
-        /o get the method's encapsulation o/
-        if (OCITypeMethodEncap(env, err, mdo) == OCI_TYPEENCAP_PUBLIC)
-          /o do something o/  ;
-
-        /o get the method's flags o/
-        meth_flags = OCITypeMethodFlags(env, err, mdo);
-        if (meth_flags & OCI_TYPEMETHOD_VIRTUAL)  
-          /o do something o/  ;
-
-
-        /o ------------ GET THE PARAMETERS IN A METHOD ------------ o/
-
-        /o loop through all parameters in the method o/
-        count = OCITypeMethodParams(env, err, mdo);
-        for (j = 1; j <= count; j++)
-        {
-          /o get the parameter information by position o/
-          if (OCITypeParamByPos(env, err, mdo, i, &elem) != OCI_SUCCESS)
-            /o error o/ ;
-
-          /o get the parameter's name o/
-          if (!memcmp(OCITypeElemName(env, err, elem, &text_len), "an_age",
-                      text_len))
-            /o do something o/ ;
-
-          /o get the parameter's mode o/
-          if (OCITypeElemMode(env, err, elem) == OCI_PARAM_OUT)
-            /o do something o/ ;
-   
-          /o get the parameter's required flag o/
-          if (ortgprq(env, err, elem))
-            /o do something o/ ;
-        }
-      }
-
-      /o get a method by name o/
-      if (OCITypeMethodByName(env, err, car_tdo, "car_constructor", 
-                              strlen("car_constructor"), NULLP(OCIRef), &mdo) 
-                              != OCI_SUCCESS)
-        /o error o/ ;
-
-      /o get a parameter in a method by name o/
-      if (OCITypeParamByName(env, err, mdo, "an_age", strlen("an_age"), &elem) 
-                  != OCI_SUCCESS)
-        /o error o/ ;
-
-      /o get a parameter's typecode o/
-      typecode = OCITypeElemTypeCode(env, err, elem);
-   
-      /o get a parameter's type object o/
-      if (OCITypeElemType(env, err, elem, &tdo)) != OCI_SUCCESS)
-        /o error o/ ;
-
-      /o get a parameter's position in a method o/
-      if (ortgpps(env, err, mdo, "an_age", strlen("an_age"), 
-                  &position, NULLP(OCIRef), NULLP(OCITypeElem)) != OCI_SUCCESS)
-        /o error o/ ;
-
-      /o ------------ GET THE METHOD's RESULT ------------ o/
-     
-      /o get a method by name o/
-      if (OCITypeMethodByName(env, err, car_tdo, "get_age", strlen("get_age"),
-                  &mdo) != OCI_SUCCESS)
-        /o error o/ ;
-
-      /o get the typecode of the method's result o/
-      typecode = OCITypeElemTypeCode(env, err, mdo);
-
-
-      /o ----------------- END ---------------- o/
-
-      /o free the references implicitly allocated o/
-      DISCARD orlrfre(env, err, (dvoid *)&attr_ref);
-      DISCARD orlrfre(env, err, (dvoid *)&param_ref);
-
-  NOTES
-
-  MODIFIED
-    srseshad   03/12/03  - convert oci public api to ansi
-    aahluwal   06/03/02  - bug 2360115
-    skabraha   04/16/02  - fix compiler warnings
-    rkasamse   03/02/01  - do not use iterator : keyword in MSVB
-    bpalaval   02/09/01  - Change text to oratext.
-    rxgovind   01/31/00  - add OCIType interfaces for transient types
-    whe        09/01/99 -  976457:check __cplusplus for C++ code
-    cxcheng    05/06/97 -  make OCI_TYPE?? test macros return either 1 or 0
-    cxcheng    04/22/97 -  add comment on desupporting OCIType functions
-    skrishna   03/18/97 -  fix ifdef for supporting ansi and k&r proto-types
-    cxcheng    02/26/97 -  fix lint problem with oro names
-    cxcheng    02/06/97 -  take out short name support except with SLSHORTNAME
-    cxcheng    01/15/97 -  change prototype of OCITypeElemParameterizedType()
-    cxcheng    01/03/97 -  replace bit in OCI_TYPEPARAM_IS_REQUIRED with bitwis
-    cxcheng    12/31/96 -  replace OCI_PARAM_IS_REQUIRED with OCI_TYPEPARAM_IS_
-    cxcheng    12/09/96 -  add prototype for OCITypeElemExtTypeCode and OCIType
-    cxcheng    11/25/96 -  add schema name parameter to OCITypeVTInsert()
-    cxcheng    11/20/96 -  fix prototype for OCITypeByName()
-    cxcheng    11/11/96 -  fix prototype for OCITypeByName()
-    cxcheng    11/05/96 -  remove OCITypeElemExtTypeCode and OCITypeCollExtType
-    dchatter   10/28/96 -  change ortgatyp to be OCITypeArrayByName
-    cxcheng    10/25/96 -  fix problem with ortgatyp at end
-    cxcheng    10/22/96 -  add OCITypeByRef and OCITypeArrayByRef
-    cxcheng    10/20/96 -  remove ortgtyp() from #define section at end
-    cxcheng    10/18/96 -  rename OCITypeGetArray to OCITypeArrayByName
-    cxcheng    10/17/96 -  final change to prototype for OCI_TYPEPARAM_IS_REQUI
-    cxcheng    10/15/96 -  rename OCIEncapLevel and OCIMethodFlag
-    cxcheng    10/14/96 -  change prototype of OCITypeResult
-    mluong     10/11/96 -  fix compile error
-    jwijaya    10/10/96 -  fix bug on OCI_PARAM_IS_REQUIRED
-    cxcheng    10/09/96 -  more lint and link fixes
-    cxcheng    10/08/96 -  more lint fixes
-    cxcheng    10/07/96 -  more changes
-    cxcheng    10/04/96 -  replace short names with long names
-    cxcheng    10/01/96 -  change to long names for readability
-    cxcheng    09/27/96 -  rename ortgatyp() to ortgtya() for lint
-    cxcheng    09/20/96 -  add ortgatyp() for array get type
-    cxcheng    09/18/96 -  add array pin and iterator functions
-    cxcheng    08/09/96 -  add version table calls
-    cxcheng    07/22/96 -  add OCITypeElemType() to top
-    jwijaya    07/03/96 -  add ANSI prototypes
-    cxcheng    06/28/96 -  add OCITypeElemCharSetForm()
-    cxcheng    06/26/96 -  fix comment on OCITypeParamByPos()/ortgpps()
-    cxcheng    06/18/96 -  fix comments on OCITypeResult()
-    cxcheng    06/17/96 -  improve comments
-    skrishna   06/03/96 -  change OCITypeCollElem() prototype
-    vkrishna   05/29/96 -  replace OROTCFAR with OROTCCAR
-    cxcheng    05/28/96 -  fix comments, remove non-beta1 functions
-    cxcheng    05/02/96 -  fix prototype bugs
-    cxcheng    04/29/96 -  rename OCITypeElemm() to ortanct()
-    cxcheng    04/26/96 -  add ortgrbp and ortftyi,
-                           fix comments and examples
-    cxcheng    04/22/96 -  big merge to main branch
-    cxcheng    04/17/96 -  fix syntax
-    cxcheng    04/08/96 -  change prototype to ortaty()
-    skrishna   04/08/96 -  change ort*() to take OCIEnv* and OCIError* instead
-                           of oroenv*
-    cxcheng    03/28/96 -  add ortslob(), change ortsstr() prototype
-    cxcheng    03/13/96 -  change alter type interface
-    cxcheng    03/11/96 -  ORT interface changes
-    cxcheng    02/27/96 -  correct comments
-    jboonleu   02/09/96 -  rename oroopd to OCIDuration
-    cxcheng    01/19/96 -  change ORTCTYVAL to ORTCTYEMB for embedded ADT
-    cxcheng    02/14/96 -  add more comments
-    jboonleu   02/09/96 -  rename oroopd to OCIDuration
-    cxcheng    02/07/96 -  fix comments and examples
-    cxcheng    01/19/96 -  new ORT interface without korfc's
-    cxcheng    01/08/96 -  consolidate collection functions
-    cxcheng    12/14/95 -  remove obsolete ortgcol() and ortrelease()
-    jweisz     12/12/95 -  merge screwup: ortdth twice
-    cxcheng    12/05/95 -  change multiset interface for new standard
-    skotsovo   12/01/95 -  merge from /vobs/rdbms/public/ort.h@@/main/
-                           st_rdbms_big_dev/st_rdbms_obj/
-                           st_rdbms_jwijaya_variable_ref
-    cxcheng    11/13/95 -  add ortaty()/orteaty()
-    cxcheng    11/13/95 -  add new collection type accessors
-    skotsovo   10/30/95 -  add 'oid' type b/c extent type uses it.
-    skotsovo   10/24/95 -  update according to new variable length ref
-    cxcheng    10/05/95 -  add null support, change prototypes to calls
-    cxcheng    10/03/95 -  add OCITypeMethodOrder() to get ORDER method
-    cxcheng    09/28/95 -  add OCITypeElemm() for collection types support
-    skotsovo   06/05/95 -  add adt_type parameter to ortsab() 
-    skotsovo   05/10/95 -  ifdef'd out ortgafp() 
-    skotsovo   03/07/95 -  update interface to only include release 1
-    skotsovo   02/22/95 -  add multiset accessors 
-    skotsovo   02/09/95 -  update according to new ots doc 
-    skotsovo   01/31/95 -  add rest of release 1 types 
-    skotsovo   01/24/95 -  categorize sint32, double, and real as number types 
-                           (with precision and scale) instead of scalar types.
-    skotsovo   01/12/95 -  remove dependency from ortdty interface 
-    skotsovo   01/03/95 -  remove orotyp accessors 
-    skotsovo   12/12/94 -  update comments 
-    skotsovo   12/05/94 -  change OCITypeElemParameterizedTyper interface 
-    skotsovo   10/26/94 -  add type version table 
-    skotsovo   10/17/94 -  fix ortgafp() comments 
-    skotsovo   10/14/94 -  modify ortgafp() parameters 
-    skotsovo   10/14/94 -  add examples 
-    skotsovo   10/13/94 -  add a few new routines 
-    jwijaya    10/07/94 -  add namespace to pin by name 
-    jwijaya    10/02/94 -  connection handle -> connection number 
-    skotsovo   09/13/94 -  modify example to use updated oririni interface 
-    skotsovo   08/25/94 -  change scale to sb1 from sb2 
-    skotsovo   07/28/94 -  add ortbeg() and ortend() 
-    skotsovo   07/14/94 -  add decimal type & call graph
-    skotsovo   06/28/94 -  subset by removing miscellaneous functions 
-    skotsovo   06/28/94 -  consistently put comments before typedefs 
-    skotsovo   06/27/94 -  modify according to new header file template, add
-                           more examples, and change ortcty() to return a
-                           reference to the type
-    skotsovo   06/24/94 -  add functions to get type information from orotyp 
-    skotsovo   06/20/94 -  finish modifying according to header template 
-    skotsovo   06/09/94 -  modify according to header file template 
-    skotsovo   06/08/94 -  replace s.h with oratypes.h 
-    skotsovo   05/24/94 -  modify comments & update example
-    skotsovo   05/23/94 -  modify fnt names for create, alter and drop type 
-    skotsovo   05/18/94 -  remove ortdme() -- delete a method 
-    skotsovo   05/17/94 -  add tdo parameter to all type modifiers 
-    skotsovo   05/11/94 -  return text* instead of including it in arglist 
-    skotsovo   11/16/93 -  creation
-
-*/
-
-#ifndef ORATYPES
-#include <oratypes.h>
-#endif
-#ifndef ORO_ORACLE
-#include <oro.h>
-#endif
-#ifndef OCI_ORACLE
-#include <oci.h>
-#endif
-
-#ifndef ORT_ORACLE
-#define ORT_ORACLE
-
-/*---------------------------------------------------------------------------*/
-/*                         SHORT NAMES SUPPORT SECTION                       */
-/*---------------------------------------------------------------------------*/
-
-#ifdef SLSHORTNAME
-
-/* the following are short names that are only supported on IBM mainframes
-   with the SLSHORTNAME defined.
-   With this all subsequent long names will actually be substituted with
-   the short names here */
-
-#define OCITypeArrayByName              ortgatyp
-#define OCITypeAttrByName               ortgabn
-#define OCITypeAttrNext                 ortgabi
-#define OCITypeAttrs                    ortgtna
-#define OCITypeByRef                    ortgtbrf
-#define OCITypeCollElem                 ortgcel
-#define OCITypeCollExtTypeCode          ortgcsqt
-#define OCITypeCollSize                 ortgcne
-#define OCITypeCollTypeCode             ortgdttc
-#define OCITypeElem                     ortado
-#define OCITypeElemCharSetForm          ortgscform
-#define OCITypeElemCharSetID            ortgscid
-#define OCITypeElemDefaultValue         ortgpdv
-#define OCITypeElemExtTypeCode          ortgasqt
-#define OCITypeElemLength               ortgsl
-#define OCITypeElemName                 ortganm
-#define OCITypeElemNumPrec              ortgnp
-#define OCITypeElemNumScale             ortgns
-#define OCITypeElemParamMode            ortgpmo
-#define OCITypeElemParameterizedType    ortgpa
-#define OCITypeElemType                 ortgaty
-#define OCITypeElemTypeCode             ortgatc
-#define OCITypeIter                     ortitr
-#define OCITypeIterFree                 ortifre
-#define OCITypeIterNew                  ortinew
-#define OCITypeIterSet                  ortiset
-#define OCITypeMethod                   ortmdo
-#define OCITypeMethodByName             ortgmbn
-#define OCITypeMethodEncap              ortgmen
-#define OCITypeMethodFlags              ortgmfl
-#define OCITypeMethodMap                ortgmmap
-#define OCITypeMethodName               ortgmnm
-#define OCITypeMethodNext               ortgmbi
-#define OCITypeMethodOrder              ortgmor
-#define OCITypeMethodOverload           ortgmno
-#define OCITypeMethodParams             ortgmnp
-#define OCITypeMethods                  ortgtnm
-#define OCITypeName                     ortgtme
-#define OCITypeParamByName              ortgpbn
-#define OCITypeParamPos                 ortgpps
-#define OCITypeSchema                   ortgtsch
-#define OCITypeTypeCode                 ortgttc
-#define OCITypeVTInit                   ortvini
-#define OCITypeVTInsert                 ortvins
-#define OCITypeVTSelect                 ortvsel
-#define OCITypeVersion                  ortgtvn
-
-#endif                                                        /* SLSHORTNAME */
-
-
-/*============================*/        
-/* PUBLIC TYPES AND CONSTANTS */
-/*============================*/
-
-/*----------------------------- TYPE DESCRIPTION ----------------------------*/
-
-/*
- * OCIType - OCI Type Description Object 
- *
- * The contents of an 'OCIType' is private/opaque to clients.  Clients just 
- * need to declare and pass 'OCIType' pointers in to the type manage
- * functions.
- * The pointer points to the type in the object cache.  Thus, clients don't
- * need to allocate space for this type and must NEVER free the pointer to the
- * 'OCIType'.
- */
-
-typedef struct OCIType OCIType;
-
-/*------------------------- TYPE ELEMENT DESCRIPTION ------------------------*/
-
-
-/*
- * OCITypeElem - OCI Type Element object
- *
- * The contents of an 'OCITypeElem' is private/opaque to clients. Clients just 
- * need to declare and pass 'OCITypeElem' pointers in to the type manager 
- * functions.
- *
- * 'OCITypeElem' objects contains type element information such as the numeric
- * precision for example, for number objects, and the number of elements for
- * arrays.
- * They ARE used to describe type attributes, collection elements,
- * method parameters, and method results. Hence they are pass in or returned
- * by attribute, collection, and method parameter/result accessors.
- */
-
-typedef struct OCITypeElem OCITypeElem;
-
-
-/*--------------------------- METHOD DESCRIPTION ---------------------------*/
-
-
-/*
- * OCITypeMethod - OCI Method Description object 
- *
- * The contents of an 'OCITypeMethod' is private/opaque to clients.  Clients
- * just need to declare and pass 'OCITypeMethod' pointers in to the type
- * manager functions.
- * The pointer points to the method in the object cache.  Thus, clients don't
- * need to allocate space for this type and must NEVER free the pointer to 
- * the 'OCITypeMethod'.
- */
-
-typedef struct OCITypeMethod OCITypeMethod;
-
-
-/*--------------------------- TYPE ACCESS ITERATOR --------------------------*/
-
-/*
- * OCITypeIter- OCI Type Iterator
- *
- * The contents of an 'orti' is private/opaque to clients.  Clients just 
- * need to declare and pass 'orti' pointers in to the type manager functions.
- * The iterator is used to retreive MDO's and ADO's that belong to the TDO
- * one at a time. It needs to be allocated by the 'OCITypeIterNew()' function
- * call and deallocated with the 'OCITypeIterFree()' function call.
- */
-
-typedef struct OCITypeIter OCITypeIter;
-
-
-/*==================*/
-/* PUBLIC FUNCTIONS */
-/*==================*/
-
-/*--------------------------------------------------------------------------*/
-/*                                  ITERATOR                                */
-/*--------------------------------------------------------------------------*/
-
-/*-----------------------_- OCITypeIterNew ---------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeIterNew(    OCIEnv *env, OCIError *err, OCIType *tdo, 
-                         OCITypeIter **iterator_ort    );
-
-/*
-  NAME: OCITypeIterNew - OCI Iterator NEW
-  PARAMETERS:
-       env (IN/OUT) - OCI environment handle initialized in object mode
-       err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-       tdo (IN) - pointer to the pinned type in the object cache to
-                initialize the iterator with
-       iterator_ort (OUT) - pointer to the pointer to the new iterator created
-  DESCRIPTION:
-       Create a new instance of a method/attribute iterator and initalize
-       it's values.
-  RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-           1) any of the required parameters is null.
-           2) error while allocating space for the iterator.
-*/
-
-/*------------------------ OCITypeIterSet ---------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeIterSet(    OCIEnv *env, OCIError *err, OCIType *tdo, 
-                  OCITypeIter *iterator_ort    );
-
-/*
-  NAME: OCITypeIterSet - OCI Iterator SET
-  PARAMETERS:
-       env (IN/OUT) - OCI environment handle initialized in object mode
-       err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-       tdo (IN) - pointer to the pinned type in the object cache to
-                initialize the iterator with
-       iterator_ort (IN/OUT) - pointer to the iterator to set
-  DESCRIPTION:
-       Initializes the iterator. This is used to reset the state of the
-       iterator.
-  RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-           1) any of the required parameters is null.
-*/
-
-/*------------------------ OCITypeIterFree ---------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeIterFree(    OCIEnv *env, OCIError *err, OCITypeIter
-                          *iterator_ort    );
-
-/*
-  NAME: OCITypeIterFree - OCI Iterator FREe
-  PARAMETERS:
-       env (IN/OUT) - OCI environment handle initialized in object mode
-       err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-       iterator_ort (IN/OUT) - pointer to the iterator to free
-  DESCRIPTION:
-       Free space allocated for the iterator.
-  RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-           1) any of the required parameters is null.
-           2) error while freeing the iterator, probably bad iterator pointer.
-*/
-
-
-/*--------------------------------------------------------------------------*/
-/*                                  TYPE GET                                */
-/*--------------------------------------------------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeByName(    OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-                        CONST oratext *schema_name, ub4 s_length,
-                        CONST oratext *type_name, ub4 t_length,
-                        CONST oratext *version_name, ub4 v_length,
-                        OCIDuration pin_duration, OCITypeGetOpt get_option,
-                        OCIType **tdo    );
-/*
-  NAME: OCITypeByName - OCI Get the most current version of an existing TYPe
-                  by name.
-  PARAMETERS:
-       env (IN/OUT) - OCI environment handle initialized in object mode
-       err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-       svc (IN) - OCI service handle
-       schema_name (IN, optional) - name of schema associated with the 
-                  type.  By default, the user's schema name is used.
-       s_length (IN) - length of the 'schema_name' parameter
-       type_name (IN) - name of the type to get
-       t_length (IN) - length of the 'type_name' parameter
-       version_name (IN, optional) - user readable version of the type.
-                  Pass (oratext *)0 for the most current version.
-       v_length (IN) - length of version_name in bytes. Should be 0 if
-                  the most current version is to be retrieved.
-       pin_duration (IN) - pin duration (e.g. until the end of current
-                  transaction).  See 'oro.h' for a description of
-                  each option.
-       get_option (IN) - options for loading the types. It can be one of two
-                   values:
-                  OCI_TYPEGET_HEADER for only the header to be loaded, or
-                  OCI_TYPEGET_ALL for the TDO and all ADO and MDOs to be
-                    loaded.
-       tdo (OUT) - pointer to the pinned type in the object cache
-  DESCRIPTION:
-       Get a pointer to a version of the existing type associated
-       with schema/type name.
-  RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-           1) any of the required parameters is null.
-           2) the adt type associated with schema/type name does not exist.
-  NOTE:
-       Schema and type names are CASE-SENSITIVE. If they have been created
-       via SQL, you need to use uppercase names.
-*/
-
-sword OCITypeArrayByName(    OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc,
-                             ub4 array_len,
-                             CONST oratext *schema_name[], ub4 s_length[],
-                             CONST oratext *type_name[], ub4 t_length[],
-                             CONST oratext *version_name[], ub4 v_length[],
-                             OCIDuration pin_duration,
-                             OCITypeGetOpt get_option, OCIType **tdo    );
-
-/*
-  NAME: OCITypeArrayByName - OCI Get array of TYPes by name.
-  PARAMETERS:
-       env (IN/OUT) - OCI environment handle initialized in object mode
-       err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-       svc (IN) - OCI service handle
-       array_len (IN) - number of schema_name/type_name/version_name entries to
-                  be retrieved.
-       schema_name (IN, optional) - array of schema names associated with the
-                  types to be retrieved.  The array must have array_len
-                  elements if specified.
-                  If 0 is supplied, the default schema is assumed, otherwise
-                  it MUST have array_len number of elements.
-                  0 can be supplied for one or more of the entries to indicate
-                  that the default schema is desired for those entries.
-       s_length (IN) - array of schema_name lengths with each entry
-                  corresponding to the length of the corresponding schema_name
-                  entry in the schema_name array in bytes.
-                  The array must either have array_len number of elements or
-                  it MUST be 0 if schema_name is not specified.
-       type_name (IN) - array of the names of the types to retrieve. This
-                  MUST have array_len number of elements.
-       t_length (IN) - array of the lengths of type names in the type_name
-                  array in bytes.
-       version_name (IN) - array of the version names of the types to retrieve
-                  corresponding. This can be 0 to indicate retrieval of the
-                  most current versions, or it MUST have array_len number of
-                  elements.
-                  If 0 is supplied, the most current version is assumed,
-                  otherwise it MUST have array_len number of elements.
-                  0 can be supplied for one or more of the entries to indicate
-                  that the current version is desired for those entries.
-       v_length (IN) - array of the lengths of version names in the
-                  version_name array in bytes.
-       pin_duration (IN) - pin duration (e.g. until the end of current
-                  transaction) for the types retreieve.  See 'oro.h' for a
-                  description of each option.
-       get_option (IN) - options for loading the types. It can be one of two
-                   values:
-                  OCI_TYPEGET_HEADER for only the header to be loaded, or
-                  OCI_TYPEGET_ALL for the TDO and all ADO and MDOs to be
-                    loaded.
-       tdo (OUT) - output array for the pointers to each pinned type in the
-                  object cache. It must have space for array_len pointers.
-                  Use OCIObjectGetObjectRef() to obtain the CREF to each
-                  pinned type descriptor.
-  DESCRIPTION:
-       Get pointers to the existing types associated with the schema/type name
-       array. This is similar to OCITypeByName() except that all the TDO's are
-       retreived via a single network roundtrip.
-  RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-           1) any of the required parameters is null.
-           2) one or more adt types associated with a schema/type name entry
-              does not exist.
-*/
-
-sword   OCITypeByRef(    OCIEnv *env, OCIError *err,
-                         CONST OCIRef *type_ref, OCIDuration pin_duration,
-                         OCITypeGetOpt get_option, OCIType **tdo    );
-
-/*
-  NAME: OCITypeArrayByRef - OCI Get array of TYPes by REF.
-  PARAMETERS:
-       env (IN/OUT) - OCI environment handle initialized in object mode
-       err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-       type_ref (IN) - OCIRef * pointing to the particular version of
-                  the type descriptor object to obtain.
-                  The array must have array_len elements if specified.
-       pin_duration (IN) - pin duration (e.g. until the end of current
-                  transaction) for the type to retreieve.  See 'oro.h' for a
-                  description of each option.
-       get_option (IN) - options for loading the type. It can be one of two
-                   values:
-                  OCI_TYPEGET_HEADER for only the header to be loaded, or
-                  OCI_TYPEGET_ALL for the TDO and all ADO and MDOs to be
-                    loaded.
-       tdo (OUT) - pointer to the pinned type in the object cache
-  DESCRIPTION:
-       Get pointers to the 
-       with the schema/type name array. This is similar to OCITypeByName()
-       except that all the TDO's are retreived via a single network roundtrip.
-  RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-           1) any of the required parameters is null.
-           2) one or more adt types associated with a schema/type name entry
-              does not exist.
-*/
-
-sword   OCITypeArrayByRef(    OCIEnv *env, OCIError *err,
-                              ub4 array_len, CONST OCIRef **type_ref,
-                              OCIDuration pin_duration,
-                              OCITypeGetOpt get_option, OCIType **tdo    );
-
-/*
-  NAME: OCITypeArrayByRef - OCI Get array of TYPes by REF.
-  PARAMETERS:
-       env (IN/OUT) - OCI environment handle initialized in object mode
-       err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-       array_len (IN) - number of schema_name/type_name/version_name entries to
-                  be retrieved.
-       type_ref (IN) - array of OCIRef * pointing to the particular version of
-                  the type descriptor object to obtain.
-                  The array must have array_len elements if specified.
-       pin_duration (IN) - pin duration (e.g. until the end of current
-                  transaction) for the types retreieve.  See 'oro.h' for a
-                  description of each option.
-       get_option (IN) - options for loading the types. It can be one of two
-                   values:
-                  OCI_TYPEGET_HEADER for only the header to be loaded, or
-                  OCI_TYPEGET_ALL for the TDO and all ADO and MDOs to be
-                    loaded.
-       tdo (OUT) - output array for the pointers to each pinned type in the
-                  object cache. It must have space for array_len pointers.
-                  Use OCIObjectGetObjectRef() to obtain the CREF to each
-                  pinned type descriptor.
-  DESCRIPTION:
-       Get pointers to the 
-       with the schema/type name array. This is similar to OCITypeByName()
-       except that all the TDO's are retreived via a single network roundtrip.
-  RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-           1) any of the required parameters is null.
-           2) one or more adt types associated with a schema/type name entry
-              does not exist.
-*/
-
-
-/*--------------------------------------------------------------------------*/
-/*                              TYPE ACCESSORS                              */
-/*--------------------------------------------------------------------------*/
-
-/*---------------------------- OCITypeName ---------------------------------*/
-
-/* ** OBSOLETE ** */
-oratext* OCITypeName(    OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-                      ub4 *n_length    );
-/*
-   NAME: OCITypeName -  ORT Get a Type's naME.
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tdo (IN) - pointer to to the type descriptor in the object cache
-        n_length (OUT) - length (in bytes) of the returned type name.  The
-               caller must allocate space for the ub4 before calling this
-               routine.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling
-           any accessor.
-        2) All input parameters must not be NULL and must be valid.
-        3) 'n_length' must point to an allocated ub4.
-   DESCRIPTION:
-        Get the name of the type.
-   RETURNS:
-        the name of the type
-   NOTES:
-        The type descriptor, 'tdo', must be unpinned when the accessed 
-        information is no longer needed.
- */
-
-/*------------------------ OCITypeSchema ---------------------------------*/
-
-/* ** OBSOLETE ** */
-oratext* OCITypeSchema(    OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-                   ub4 *n_length    );
-/*
-   NAME: OCITypeSchema -  ORT Get a Type's SCHema name.
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tdo (IN) - pointer to to the type descriptor in the object cache
-        n_length (OUT) - length (in bytes) of the returned schema name.  The
-               caller must allocate space for the ub4 before calling this
-               routine.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-        3) 'n_length' must point to an allocated ub4.
-   DESCRIPTION:
-        Get the schema name of the type.
-   RETURNS:
-        the schema name of the type
-   NOTES:
-        The type descriptor, 'tdo', must be unpinned when the accessed 
-        information is no longer needed.
- */
-
-/*------------------------ OCITypeTypeCode ---------------------------------*/
-
-/* ** OBSOLETE ** */
-OCITypeCode OCITypeTypeCode(    OCIEnv *env, OCIError *err,
-                                CONST OCIType *tdo    );
-/*
-   NAME: OCITypeTypeCode - OCI Get a Type's Type Code.
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tdo (IN) - pointer to to the type descriptor in the object cache
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the type code of the type.
-   RETURNS:
-        The type code of the type.
-   NOTES:
-        The type descriptor, 'tdo', must be unpinned when the accessed 
-        information is no longer needed.
- */
-
-/*----------------------- OCITypeCollTypeCode -------------------------------*/
-
-/* ** OBSOLETE ** */
-OCITypeCode OCITypeCollTypeCode(    OCIEnv *env, OCIError *err,
-                                    CONST OCIType *tdo    );
-/*
-   NAME: OCITypeCollTypeCode - OCI Get a Domain Type's Type Code.
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tdo (IN) - pointer to to the type descriptor in the object cache
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-        3) 'tdo' MUST point to a named collection type.
-   DESCRIPTION:
-        Get the type code of the named collection type. For V8.0, named
-        collection types can only be variable length arrays and nested tables.
-   RETURNS:
-        OCI_TYPECODE_VARRAY for variable length array, and
-        OCI_TYPECODE_TABLE for nested tables.
-   NOTES:
-        The type descriptor, 'tdo', should be unpinned when the accessed 
-        information is no longer needed.
- */
-
-/*------------------------- OCITypeVersion ---------------------------------*/
-
-/* ** OBSOLETE ** */
-oratext* OCITypeVersion(    OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-                         ub4 *v_length    );
-/*
-   NAME: OCITypeVersion - OCI Get a Type's user-readable VersioN. 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tdo (IN) - pointer to to the type descriptor in the object cache
-        v_length (OUT) - length (in bytes) of the returned user-readable 
-               version.  The caller must allocate space for the ub4 before 
-               calling this routine.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-        3) 'v_length' must point to an allocated ub4.
-   DESCRIPTION:
-        Get the user-readable version of the type.
-   RETURNS:
-        The user-readable version of the type
-   NOTES:
-        The type descriptor, 'tdo', must be unpinned when the accessed 
-        information is no longer needed.
- */
-
-/*--------------------------- OCITypeAttrs ---------------------------------*/
-
-/* ** OBSOLETE ** */
-ub4 OCITypeAttrs(    OCIEnv *env, OCIError *err, CONST OCIType *tdo    );
-/*
-   NAME: OCITypeAttrs - OCI Get a Type's Number of Attributes. 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tdo (IN) - pointer to to the type descriptor in the object cache
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the number of attributes in the type.
-   RETURNS:
-        The number of attributes in the type. 0 for ALL non-ADTs.
-   NOTES:
-        The type descriptor, 'tdo', must be unpinned when the accessed 
-        information is no longer needed.
- */
-
-/*------------------------- OCITypeMethods ---------------------------------*/
-
-/* ** OBSOLETE ** */
-ub4 OCITypeMethods(    OCIEnv *env, OCIError *err, CONST OCIType *tdo    );
-/*
-   NAME: OCITypeMethods - OCI Get a Type's Number of Methods. 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tdo (IN) - pointer to to the type descriptor in the object cache
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the number of methods in a type.
-   RETURNS:
-        The number of methods in the type
-   NOTES:
-        The type descriptor, 'tdo', must be unpinned when the accessed 
-        information is no longer needed.
- */
-
-
-/*--------------------------------------------------------------------------*/
-/*                     TYPE ELEMENT INFORMATION ACCESSORS                   */
-/*--------------------------------------------------------------------------*/
-
-/*------------------------ OCITypeElemName ---------------------------------*/
-
-/* ** OBSOLETE ** */
-oratext* OCITypeElemName(    OCIEnv *env, OCIError *err, 
-                           CONST OCITypeElem *elem, ub4 *n_length    );
-/*
-   NAME: OCITypeElemName - OCI Get an Attribute's NaMe. 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        elem (IN) - pointer to the type element descriptor in the object cache
-        n_length (OUT) - length (in bytes) of the returned attribute name.  
-               The caller must allocate space for the ub4 before calling this 
-               routine.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-        3) 'n_length' must point to an allocated ub4.
-   DESCRIPTION:
-        Get the name of the attribute.
-   RETURNS:
-        the name of the attribute and the length in n_length
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
- */
-
-/*------------------------ OCITypeElemTypeCode ------------------------------*/
-
-/* ** OBSOLETE ** */
-OCITypeCode OCITypeElemTypeCode(    OCIEnv *env, OCIError *err,
-                                    CONST OCITypeElem *elem    );
-/*
-   NAME: OCITypeElemTypeCode - OCI Get an Attribute's TypeCode. 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        elem (IN) - pointer to the type element descriptor in the object cache
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the typecode of an attribute's type.
-   RETURNS:
-        the typecode of the attribute's type.  If this is a scalar type, the 
-        typecode sufficiently describes the scalar type and no further calls 
-        need to be made.  Valid scalar types include: OCI_TYPECODE_SIGNED8,
-        OCI_TYPECODE_UNSIGNED8, OCI_TYPECODE_SIGNED16, OCI_TYPECODE_UNSIGNED16,
-        OCI_TYPECODE_SIGNED32, OCI_TYPECODE_UNSIGNED32, OCI_TYPECODE_REAL,
-        OCI_TYPECODE_DOUBLE, OCI_TYPECODE_DATE,
-        OCI_TYPECODE_MLSLABEL, OROTCOID, OCI_TYPECODE_OCTET, or OROTCLOB.
-        This function converts the CREF (stored in the attribute) into a
-        typecode.
-   NOTES:
-       The type must be unpinned when the accessed information is no 
-       longer needed.
- */
-
-/*------------------------ OCITypeElemType ---------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeElemType(    OCIEnv *env, OCIError *err, CONST OCITypeElem *elem, 
-                          OCIType **elem_tdo    );
-/*
-  PARAMETERS
-     env (IN/OUT) - OCI environment handle initialized in object mode
-     err (IN/OUT) - error handle. If there is an error, it is
-             recorded in 'err' and this function returns OCI_ERROR.
-             The error recorded in 'err' can be retrieved by calling
-             OCIErrorGet().
-     elem (IN) - pointer to the type element descriptor in the object cache
-     elem_tdo (OUT) - If the function completes successfully, 'elem_tdo'
-            points to the type descriptor (in the object cache) of the type of
-            the element.
-
-  REQUIRES
-     1) All type accessors require that the type be pinned before calling
-        any accessor.  This can be done by calling 'OCITypeByName()'.
-     2) if 'elem' is not null, it must point to a valid type element descriptor
-        in the object cache.
-
-  DESCRIPTION
-     Get the type tdo of the type of this element.
-  RETURNS
-     OCI_SUCCESS if the function completes successfully.
-     OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-     OCI_ERROR if
-         1) any of the parameters is null.
-
-  NOTES
-     The type must be unpinned when the accessed information is no
-     longer needed.  This can be done by calling 'OCIObjectUnpin()'.
- */
-
-/*------------------------- OCITypeElemFlags -------------------------------*/
-
-/* ** OBSOLETE ** */
-ub4 OCITypeElemFlags(    OCIEnv *env, OCIError *err,
-                         CONST OCITypeElem *elem    );
-/*
-   NAME: OCITypeElemFlags - OCI Get a Elem's FLags
-                              (inline, constant, virtual, constructor,
-                              destructor). 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        elem (IN) - pointer to the type element descriptor in the object cache
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the flags of a type element (attribute, parameter).
-   RETURNS:
-        The flags of the type element.
-   NOTES:
-        The flag bits are not externally documented. Use only the macros
-        in the last section (ie. OCI_TYPEPARAM_IS_REQUIRED, and
-        OCI_TYPEELEM_IS_REF) to test for them only. The type must be unpinned
-        when the accessed information is no longer needed.
- */
-
-/*------------------------ OCITypeElemNumPrec ------------------------------*/
-
-/* ** OBSOLETE ** */
-ub1 OCITypeElemNumPrec(    OCIEnv *env, OCIError *err,
-                           CONST OCITypeElem *elem    );
-/*
-   NAME: OCITypeElemNumPrec - Get a Number's Precision.  This includes float,
-                              decimal, real, double, and oracle number.
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        elem (IN) - pointer to the type element descriptor in the object cache
-   REQUIRES:
-        All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the precision of a float, decimal, long, unsigned long, real, 
-        double, or Oracle number type. 
-   RETURNS:
-        the precision of the float, decimal, long, unsigned long, real, double,
-        or Oracle number 
- */
-
-/*------------------------- OCITypeElemNumScale -----------------------------*/
-
-/* ** OBSOLETE ** */
-sb1 OCITypeElemNumScale(    OCIEnv *env, OCIError *err,
-                            CONST OCITypeElem *elem    );
-/*
-   NAME: OCITypeElemNumScale - Get a decimal or oracle Number's Scale 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        elem (IN) - pointer to the type element descriptor in the object cache
-   REQUIRES:
-        All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the scale of a decimal, or Oracle number type. 
-   RETURNS:
-        the scale of the decimal, or Oracle number 
- */
-
-/*------------------------ OCITypeElemLength -------------------------------*/
-
-/* ** OBSOLETE ** */
-ub4 OCITypeElemLength(    OCIEnv *env, OCIError *err,
-                          CONST OCITypeElem *elem    );
-/*
-   NAME: OCITypeElemLength - Get a raw, fixed or variable length String's
-                             length in bytes.
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        elem (IN) - pointer to the type element descriptor in the object cache
-   REQUIRES:
-        All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the length of a raw, fixed or variable length string type. 
-   RETURNS:
-        length of the raw, fixed or variable length string
- */
-
-/*----------------------- OCITypeElemCharSetID -----------------------------*/
-
-/* ** OBSOLETE ** */
-ub2 OCITypeElemCharSetID(    OCIEnv *env, OCIError *err,
-                             CONST OCITypeElem *elem    );
-/*
-   NAME: OCITypeElemCharSetID - Get a fixed or variable length String's
-                                character set ID
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        elem (IN) - pointer to the type element descriptor in the object cache
-   REQUIRES:
-        All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the character set ID of a fixed or variable length string type. 
-   RETURNS:
-        character set ID of the fixed or variable length string
- */
-
-/*---------------------- OCITypeElemCharSetForm ----------------------------*/
-
-/* ** OBSOLETE ** */
-ub2 OCITypeElemCharSetForm(    OCIEnv *env, OCIError *err,
-                               CONST OCITypeElem *elem    );
-/*
-   NAME: OCITypeElemCharSetForm - Get a fixed or variable length String's
-                                  character set specification form.
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        elem (IN) - pointer to the attribute information in the object cache
-   REQUIRES:
-        All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the character form of a fixed or variable length string type.
-        The character form is an enumerated value that can be one of the
-        4 values below:
-               SQLCS_IMPLICIT for CHAR, VARCHAR2, CLOB w/o a specified set
-               SQLCS_NCHAR    for NCHAR, NCHAR VARYING, NCLOB
-               SQLCS_EXPLICIT for CHAR, etc, with "CHARACTER SET ..." syntax
-               SQLCS_FLEXIBLE for PL/SQL "flexible" parameters
-   RETURNS:
-        character form of the fixed or variable string
- */
-
-/*--------------------- OCITypeElemParameterizedType ------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeElemParameterizedType(    OCIEnv *env, OCIError *err,
-                                       CONST OCITypeElem *elem, 
-                                       OCIType **type_stored    );
-/*
-   NAME: OCITypeElemParameterizedType 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        elem (IN) - pointer to the type element descriptor in the object cache
-        type_stored (OUT) - If the function completes successfully, 
-               and the parameterized type is complex, 'type_stored' is NULL.
-               Otherwise, 'type_stored' points to the type descriptor (in the 
-               object cache) of the type that is stored in the parameterized 
-               type.  The caller must allocate space for the OCIType* 
-               before calling this routine and must not write into the space.
-   REQUIRES:
-        All input parameters must be valid.
-   DESCRIPTION:
-        Get a descriptor to the parameter type of a parameterized type.
-        Parameterized types are types of the form:
-          REF T
-          VARRAY (n) OF T
-        etc, where T is the parameter in the parameterized type.
-        Additionally is_ref is set if the parameter is a PTR or REF.
-        For example, it is set for REF T or VARRAY(n) OF REF T.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-            1) any of the parameters is null.
-            2) 'type_stored' is not NULL but points to NULL data.
-   NOTES:
-        Complex parameterized types will be in a future release (once 
-        typedefs are supported.  When setting the parameterized type 
-        information, the user must typedef the contents if it's a
-        complex parameterized type.  Ex. for varray<varray<car>>, use
-        'typedef varray<car> varcar' and then use varray<varcar>. 
- */
-
-/*----------------------- OCITypeElemExtTypeCode ----------------------------*/
- 
-/* ** OBSOLETE ** */
-OCITypeCode OCITypeElemExtTypeCode(    OCIEnv *env, OCIError *err,
-                                       CONST OCITypeElem *elem    );
-/*
-   NAME: OCITypeElemExtTypeCode - OCI Get an element's SQLT constant.
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        elem (IN) - pointer to the type element descriptor in the object cache
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling
-           any accessor.
-        2) All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the internal Oracle typecode associated with an attribute's type.
-        This is the actual typecode for the attribute when it gets mapped
-        to a column in the Oracle database.
-   RETURNS:
-        The Oracle typecode associated with the attribute's type.
-   NOTES:
-        The type must be unpinned when the accessed information is no
-        longer needed.
- */
-
-/*--------------------------------------------------------------------------*/
-/*                           ATTRIBUTE ACCESSORS                            */
-/*--------------------------------------------------------------------------*/
-
-/*------------------------ OCITypeAttrByName -------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeAttrByName(    OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-                            CONST oratext *name, ub4 n_length,
-                            OCITypeElem **elem    );
-/*
-   NAME: OCITypeAttrByName - OCI Get an Attribute By Name. 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tdo (IN) - pointer to to the type descriptor in the object cache
-        name (IN) - the attribute's name 
-        n_length (IN) - length (in bytes) of the 'name' parameter
-        elem (OUT) - If this function completes successfully, 'elem' points to 
-               the selected type element descriptor pertaining to the
-               attributein the object cache.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) if 'tdo' is not null, it must point to a valid type descriptor 
-           in the object cache.
-   DESCRIPTION:
-        Get an attribute given its name.  
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-            1) any of the required parameters is null.
-            2) the type does not contain an attribute with the input 'name'. 
-            3) 'name' is NULL.
-   NOTES:
-        The type descriptor, 'tdo', must be unpinned when the accessed 
-        information is no longer needed.
-        Schema and type names are CASE-SENSITIVE. If they have been created
-        via SQL, you need to use uppercase names.
- */
-
-/*------------------------ OCITypeAttrNext ---------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeAttrNext(    OCIEnv *env, OCIError *err, 
-                        OCITypeIter *iterator_ort, OCITypeElem **elem    );
-
-/*
-   NAME: OCITypeAttrNext - OCI Get an Attribute By Iteration.
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        iterator_ort (IN/OUT) - iterator for retrieving the next attribute;
-               see OCITypeIterNew() to initialize iterator.
-        elem (OUT) - If this function completes successfully, 'elem' points to 
-               the selected type element descriptor pertaining to the
-               attributein the object cache.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-            any accessor. 
-        2) if 'tdo' is not null, it must point to a valid type descriptor 
-           in the object cache.
-   DESCRIPTION:
-        Iterate to the next attribute to retrieve.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_NO_DATA if there are no more attributes to iterate on; use
-            OCITypeIterSet() to reset the iterator if necessary.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-            1) any of the required parameters is null.
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
- */
-
-/*--------------------------------------------------------------------------*/
-/*                           COLLECTION ACCESSORS                           */
-/*--------------------------------------------------------------------------*/
-
-/*------------------------ OCITypeCollElem ---------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeCollElem(    OCIEnv *env, OCIError *err, CONST OCIType *tdo,
-                          OCITypeElem **element    );
-/*
-   NAME: OCITypeCollElem
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tdo (IN) - pointer to the type descriptor in the object cache
-        element (IN/OUT) - If the function completes successfully, this
-               points to the descriptor for the collection's element.
-               It is stored in the same format as an ADT attribute's
-               descriptor.
-               If *element is NULL, OCITypeCollElem() implicitly allocates a
-               new instance of OCITypeElem in the object cache. This instance
-               will be
-               automatically freed at the end of the session, and does not have
-               to be freed explicitly.
-               If *element is not NULL, OCITypeCollElem() assumes that it
-               points to a valid OCITypeElem descriptor and will copy the
-               results into it.
-   REQUIRES:
-        All input parameters must be valid.
-   DESCRIPTION:
-        Get a pointer to the descriptor (OCITypeElem) of the element of an
-        array or the rowtype of a nested table.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-            1) any of the parameters is null.
-            2) the type TDO does not point to a valid collection's type.
-   NOTES:
-        Complex parameterized types will be in a future release (once 
-        typedefs are supported.  When setting the parameterized type 
-        information, the user must typedef the contents if it's a
-        complex parameterized type.  Ex. for varray<varray<car>>, use
-        'typedef varray<car> varcar' and then use varray<varcar>. 
- */
-
-/*------------------------ OCITypeCollSize ---------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeCollSize(    OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-                          ub4 *num_elems    );
-/*
-   NAME: OCITypeCollSize - OCI Get a Collection's Number of Elements.
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tdo (IN) - pointer to the type descriptor in the object cache
-        num_elems (OUT) - number of elements in collection
-   REQUIRES:
-        All input parameters must be valid. tdo points to an array type
-        defined as a domain.
-   DESCRIPTION:
-        Get the number of elements stored in a fixed array or the maximum 
-        number of elements in a variable array.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-            1) any of the parameters is null.
-            2) 'tdo' does not point to a domain with a collection type.
-   NOTES:
-        Complex parameterized types will be in a future release (once 
-        typedefs are supported.  When setting the parameterized type 
-        information, the user must typedef the contents if it's a
-        complex parameterized type.  Ex. for varray<varray<car>>, use
-        'typedef varray<car> varcar' and then use varray<varcar>. 
- */
-
-/*------------------------ OCITypeCollExtTypeCode ---------------------------*/
- 
-/* ** OBSOLETE ** */
-sword OCITypeCollExtTypeCode(    OCIEnv *env, OCIError *err,
-                               CONST OCIType *tdo, OCITypeCode *sqt_code    );
-/*
-   NAME: ortcsqt - OCI Get a Collection element's DTY constant.
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tdo (IN) - pointer to the type descriptor in the object cache
-        sqt_code (OUT) - SQLT code of type element.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling
-           any accessor.
-        2) All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the SQLT constant associated with an domain's element type.
-        The SQLT codes are defined in <sqldef.h> and are needed for OCI/OOCI
-        use.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null.
-        OCI_ERROR if
-            1) any of the parameters is null.
-            2) 'tdo' does not point to a domain with a collection type.
-   NOTES:
-        The type must be unpinned when the accessed information is no
-        longer needed.
- */
- 
-
-/*--------------------------------------------------------------------------*/
-/*                             METHOD ACCESSORS                             */
-/*--------------------------------------------------------------------------*/
-
-/*------------------------- OCITypeMethodOverload --------------------------*/
-
-/* ** OBSOLETE ** */
-ub4 OCITypeMethodOverload(    OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-                              CONST oratext *method_name, ub4 m_length    );
-/*
-   NAME: OCITypeMethodOverload - OCI Get type's Number of Overloaded names
-                                 for the given method name.
-   PARAMETERS:
-        gp (IN/OUT) - pga environment handle.  Any errors are recorded here.
-        tdo (IN) - pointer to to the type descriptor in the object cache
-        method_name (IN) - the method's name
-        m_length (IN) - length (in bytes) of the 'method_name' parameter
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling
-           any accessor.
-        2) if 'tdo' is not null, it must point to a valid type descriptor
-           in the object cache.
-   DESCRIPTION:
-        Overloading of methods implies that more than one method may have the
-        same method name.  This routine returns the number of methods that
-        have the given method name.  If there are no methods with the input
-        method name, 'num_methods' is 0.  The caller uses this information when
-        allocating space for the array of mdo and/or position pointers before
-        calling 'OCITypeMethodByName()' or 'ortgmps()'.
-   RETURNS:
-        The number of methods with the given name. 0 if none contains the
-        name.
-   NOTES:
-        Schema and type names are CASE-SENSITIVE. If they have been created
-        via SQL, you need to use uppercase names.
- */
-
-/*------------------------ OCITypeMethodByName ------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeMethodByName(    OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-                              CONST oratext *method_name, ub4 m_length,
-                              OCITypeMethod **mdos    );
-/*
-   NAME: OCITypeMethodByName - OCI Get one or more Methods with Name. 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tdo (IN) - pointer to to the type descriptor in the object cache
-        method_name (IN) - the methods' name  
-        m_length (IN) - length (in bytes) of the 'name' parameter
-        mdos (OUT) - If this function completes successfully, 'mdos' points to
-                the selected methods in the object cache.  The caller must
-                allocate space for the array of OCITypeMethod pointers before
-                calling this routine and must not write into the space.
-                The number of OCITypeMethod pointers that will be returned can
-                be obtained by calling 'OCITypeMethodOverload()'.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) if 'tdo' is not null, it must point to a valid type descriptor 
-           in the object cache.
-   DESCRIPTION:
-        Get one or more methods given the name.  
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-            1) any of the required parameters is null.
-            2) No methods in type has name 'name'.
-            3) 'mdos' is not NULL but points to NULL data.
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
-        Schema and type names are CASE-SENSITIVE. If they have been created
-        via SQL, you need to use uppercase names.
- */
-
-/*------------------------ OCITypeMethodNext --------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeMethodNext(    OCIEnv *env, OCIError *err, 
-                            OCITypeIter *iterator_ort,
-                            OCITypeMethod **mdo   );
-
-/*
-   NAME: OCITypeMethodNext - OCI Get a Method By Iteration.
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        iterator_ort (IN/OUT) - iterator for retrieving the next method;
-               see OCITypeIterNew() to set iterator.
-        mdo (OUT) - If this function completes successfully, 'mdo' points to 
-               the selected method descriptor in the object cache.  Positions 
-               start at 1.  The caller must allocate space for the
-               OCITypeMethod* before calling this routine and must not write 
-               nto the space. 
-   REQUIRES:
-         1) All type accessors require that the type be pinned before calling 
-            any accessor. 
-        2) if 'tdo' is not null, it must point to a valid type descriptor 
-           in the object cache.
-   DESCRIPTION:
-        Iterate to the next method to retrieve.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_NO_DATA if there are no more attributes to iterate on; use
-            OCITypeIterSet() to reset the iterator if necessary.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-            1) any of the required parameters is null.
-            2) 'mdo' is not NULL but points to NULL data.
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
- */
-
-/*------------------------ OCITypeMethodName --------------------------------*/
-
-/* ** OBSOLETE ** */
-oratext *OCITypeMethodName(    OCIEnv *env, OCIError *err,
-                            CONST OCITypeMethod *mdo, ub4 *n_length    );
-/*
-   NAME: OCITypeMethodName - OCI Get a Method's NaMe. 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        mdo (IN) - pointer to the method descriptor in the object cache
-        n_length (OUT) - length (in bytes) of the 'name' parameter.  The caller
-               must allocate space for the ub4 before calling this routine.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the (non-unique) real name of the method.
-   RETURNS:
-        the non-unique name of the method or NULL if there is an error.
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
- */
-
-/*------------------------ OCITypeMethodEncap -------------------------------*/
-
-/* ** OBSOLETE ** */
-OCITypeEncap OCITypeMethodEncap(    OCIEnv *env, OCIError *err,
-                                    CONST OCITypeMethod *mdo    );
-/*
-   NAME: OCITypeMethodEncap - Get a Method's ENcapsulation (private/public). 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        mdo (IN) - pointer to the method descriptor in the object cache
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the encapsulation (private, or public) of a method.
-   RETURNS:
-        the encapsulation (private, or public) of the method
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
- */
-
-/*------------------------ OCITypeMethodFlags -------------------------------*/
-
-/* ** OBSOLETE ** */
-OCITypeMethodFlag OCITypeMethodFlags(    OCIEnv *env, OCIError *err,
-                                         CONST OCITypeMethod *mdo    );
-/*
-   NAME: OCITypeMethodFlags - OCI Get a Method's FLags
-                              (inline, constant, virtual, constructor,
-                              destructor). 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        mdo (IN) - pointer to the method descriptor in the object cache
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the flags (inline, constant, virutal, constructor, destructor) of
-        a method.
-   RETURNS:
-        the flags (inline, constant, virutal, constructor, destructor) of
-        the method
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
- */
-
-/*------------------------ OCITypeMethodMap ---------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeMethodMap(    OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-                           OCITypeMethod **mdo    );
-/*
-   NAME: OCITypeMethodMap - OCI Get the Method's MAP function.
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tdo (IN) - pointer to to the type descriptor in the object cache
-        mdo (OUT) - If this function completes successfully, and there is a 
-               map function for this type, 'mdo' points to the selected method 
-               descriptor in the object cache.  Otherwise, 'mdo' is null.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All required input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        A type may have only one map function.  'OCITypeMethodMap()' finds
-        this function, if it exists, and returns a reference and a pointer to
-        the method descriptor in the object cache.  If the type does not have a
-        map (relative ordering) function, then 'mdo_ref' and 'mdo' are set
-        to null and an error is returned.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-            the type does not contain a map function.
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
- */
-
-/*------------------------ OCITypeMethodOrder -------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeMethodOrder(    OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-                             OCITypeMethod **mdo    );
-/*
-   NAME: OCITypeMethodOrder - OCI Get the Method's ORder function.
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        tdo (IN) - pointer to to the type descriptor in the object cache
-        mdo (OUT) - If this function completes successfully, and there is a 
-               map function for this type, 'mdo' points to the selected method 
-               descriptor in the object cache.  Otherwise, 'mdo' is null.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All required input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        A type may have only one ORder or MAP function. 'OCITypeMethodOrder()'
-        finds this function, if it exists, and returns a ref and a pointer
-        to the method descriptor in the object cache.  If the type does not
-        have a map (relative ordering) function, then 'mdo_ref' and 'mdo' are
-        set to null and an error is returned.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-            the type does not contain a map function.
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
- */
-
-/*------------------------ OCITypeMethodParams ------------------------------*/
-
-/* ** OBSOLETE ** */
-ub4 OCITypeMethodParams(    OCIEnv *env, OCIError *err,
-                            CONST OCITypeMethod *mdo    );
-/*
-   NAME: OCITypeMethodParams - OCI Get a Method's Number of Parameters. 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        mdo (IN) - pointer to the method descriptor in the object cache
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the number of parameters in a method.
-   RETURNS:
-        the number of parameters in the method
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
- */
-
-
-/*--------------------------------------------------------------------------*/
-/*                             RESULT ACCESSORS                             */
-/*--------------------------------------------------------------------------*/
-
-/*-------------------------- OCITypeResult ---------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeResult(    OCIEnv *env, OCIError *err, CONST OCITypeMethod *mdo,
-                        OCITypeElem **elem    );
-/*
-   NAME: OCITypeResult - OCI Get a method's result type descriptor.
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        mdo (IN) - pointer to the method descriptor in the object cache
-        elem (OUT) - If this function completes successfully, 'rdo' points to 
-               the selected result (parameter) descriptor in the object cache.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor.
-        2) 'elem' MUST be the address of an OCITypeElem pointer.
-   DESCRIPTION:
-        Get the result of a method.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-            1) any of the required parameters is null.
-            2) method returns no results.
-   NOTES:
-        The method must be unpinned when the accessed information is no 
-        longer needed.
- */
-
-
-/*--------------------------------------------------------------------------*/
-/*                           PARAMETER ACCESSORS                            */
-/*--------------------------------------------------------------------------*/
-
-/*------------------------ OCITypeParamByPos -------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeParamByPos(    OCIEnv *env, OCIError *err,
-                            CONST OCITypeMethod *mdo, ub4 position, 
-                            OCITypeElem **elem    );
-/*
-   NAME: OCITypeParamByPos - OCI Get a Parameter in a method By Position. 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        mdo (IN) - pointer to the method descriptor in the object cache
-        position (IN) - the parameter's position.  Positions start at 1.
-        elem (OUT) - If this function completes successfully, 'elem' points to 
-               the selected parameter descriptor in the object cache.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-   DESCRIPTION:
-        Get a parameter given its position in the method.  Positions start 
-        at 1.  
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-            1) any of the required parameters is null.
-            2) 'position' is not >= 1 and <= the number of parameters in the
-               method.
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
- */
-
-/*------------------------ OCITypeParamByName -------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeParamByName(    OCIEnv *env, OCIError *err,
-                             CONST OCITypeMethod *mdo, 
-                             CONST oratext *name, ub4 n_length,
-                             OCITypeElem **elem    );
-/*
-   NAME: OCITypeParamByName - OCI Get a Parameter in a method By Name. 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        mdo (IN) - pointer to the method descriptor in the object cache
-        name (IN) - the parameter's name
-        n_length (IN) - length (in bytes) of the 'name' parameter
-        elem (OUT) - If this function completes successfully, 'elem' points to 
-               the selected parameter descriptor in the object cache.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) if 'mdo' is not null, it must point to a valid method descriptor 
-           in the object cache.
-   DESCRIPTION:
-        Get a parameter given its name.  
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-            1) any of the required parameters is null.
-            2) the method does not contain a parameter with the input 'name'. 
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
- */
-
-/*------------------------ OCITypeParamPos ---------------------------------*/
-
-/* ** OBSOLETE ** */
-sword OCITypeParamPos(    OCIEnv *env, OCIError *err,
-                          CONST OCITypeMethod *mdo, 
-                          CONST oratext *name, ub4 n_length, ub4 *position, 
-                          OCITypeElem **elem    );
-/*
-   NAME: OCITypeParamPos - OCI Get a parameter's position in a method
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        mdo (IN) - pointer to the method descriptor in the object cache
-        name (IN) - the parameter's name
-        n_length (IN) - length (in bytes) of the 'name' parameter
-        position (OUT) - If this function completes successfully, 'position' 
-               points to the position of the parameter in the method starting 
-               at position 1. position MUST point to space for a ub4.
-        elem (OUT) - If this function completes successfully, and 
-               the input 'elem' is not NULL, 'elem' points to the selected 
-               parameter descriptor in the object cache.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) if 'mdo' is not null, it must point to a valid method descriptor 
-           in the object cache.
-   DESCRIPTION:
-        Get the position of a parameter in a method.  Positions start at 1.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null. 
-        OCI_ERROR if
-            1) any of the parameters is null.
-            2) the method does not contain a parameter with the input 'name'. 
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
- */
-
-/*------------------------ OCITypeParamElemMode -----------------------------*/
-
-/* ** OBSOLETE ** */
-OCITypeParamMode OCITypeElemParamMode(    OCIEnv *env, OCIError *err,
-                                          CONST OCITypeElem *elem    );
-/*
-   NAME: OCITypeElemParamMode - OCI Get a parameter's mode
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        elem (IN) - pointer to the parameter descriptor in the object cache
-                (represented by an OCITypeElem)
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the mode (in, out, or in/out) of the parameter.
-   RETURNS:
-        the mode (in, out, or in/out) of the parameter
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
- */
-
-/*------------------------- OCITypeElemDefaultValue -------------------------*/
-
-/* ** OBSOLETE ** */
-oratext* OCITypeElemDefaultValue(    OCIEnv *env, OCIError *err,
-                                  CONST OCITypeElem *elem,
-                                  ub4 *d_v_length    );
-/*
-   NAME: OCITypeElemDefaultValue - OCI Get the element's Default Value. 
-   PARAMETERS: 
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        elem (IN) - pointer to the parameter descriptor in the object cache
-                (represented by an OCITypeElem)
-        d_v_length (OUT) - length (in bytes) of the returned default value.
-               The caller must allocate space for the ub4 before calling this 
-               routine.
-   REQUIRES:
-        1) All type accessors require that the type be pinned before calling 
-           any accessor. 
-        2) All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Get the default value in text form (PL/SQL) of an element. For V8.0,
-        this only makes sense for a method parameter.
-   RETURNS:
-        The default value (text) of the parameter.
-   NOTES:
-        The type must be unpinned when the accessed information is no 
-        longer needed.
- */
- 
-
-/*--------------------------------------------------------------------------*/
-/*                           TYPE VERSION TABLE                             */
-/*--------------------------------------------------------------------------*/
-
-/* For V8.0, the type version table is meant to be an internal data structure
-   only for Oracle clients for type version maintanence purposes. A more
-   general version of the API may be made public in subsequent releases. */
-
-
-/*--------------------------- OCITypeVTInit --------------------------------*/
- 
-/* ** OBSOLETE ** */
-sword OCITypeVTInit(    OCIEnv *env, OCIError *err    );
-/*
-   NAME: OCITypeVTInit - OCI type Version table INItialize
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-   REQUIRES:
-        none
-   DESCRIPTION:
-        Allocate space for and initialize the type version table and the type
-        version table's index.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null.
-        OCI_ERROR if internal errors occurrs during initialization.
- */
- 
-/*--------------------------- OCITypeVTInsert -------------------------------*/
- 
-/* ** OBSOLETE ** */
-sword OCITypeVTInsert(    OCIEnv *env, OCIError *err, 
-                          CONST oratext *schema_name, ub4 s_n_length, 
-                          CONST oratext *type_name, ub4 t_n_length, 
-                          CONST oratext *user_version, ub4 u_v_length    );
-/*
-   NAME: OCITypeVTInsert - OCI type Version table INSert entry.
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        schema_name (IN, optional) - name of schema associated with the 
-                  type.  By default, the user's schema name is used.
-        s_n_length (IN) - length of the 'schema_name' parameter
-        type_name (IN) - type name to insert
-        t_n_length (IN) - length (in bytes) of the 'type_name' parameter
-        user_version (IN) - user readable version of the type
-        u_v_length (IN) - length (in bytes) of the 'user_version' parameter
-   REQUIRES:
-        none
-   DESCRIPTION:
-        Insert an entry into the type version table and the type version
-        table's index.  The entry's type name and user readable version
-        fields are updated with the input values.  All other fields are
-        initialized to null.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null.
-        OCI_ERROR if
-            1) any of the parameters is invalid.
-            2) an entry for 'type_name' has already been registered in the
-               type version table.
- */
-
-/*------------------------------ OCITypeVTSelect ----------------------------*/
-
-/* OCITypeVTSelect - OCI type VERSion table SELECT entry */
-/* ** OBSOLETE ** */
-sword OCITypeVTSelect(    OCIEnv *env, OCIError *err, 
-                          CONST oratext *schema_name, ub4 s_n_length, 
-                          CONST oratext *type_name, ub4 t_n_length, 
-                          oratext **user_version, ub4 *u_v_length,
-                        ub2 *version );
-/*
-   NAME: OCITypeVTSelect - OCI type Version table SELect entry.
-   PARAMETERS:
-        env (IN/OUT) - OCI environment handle initialized in object mode
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        schema_name (IN, optional) - name of schema associated with the 
-                  type.  By default, the user's schema name is used.
-        s_n_length (IN) - length of the 'schema_name' parameter
-        type_name (IN) - type name to select
-        t_n_length (IN) - length (in bytes) of the 'type_name' parameter
-        user_version (OUT, optional) - pointer to user readable version of the
-                 type
-        u_v_length (OUT, optional) - length (in bytes) of the 'user_version'
-                 parameter
-        version (OUT, optional) - internal type version
-   REQUIRES:
-        All input parameters must not be NULL and must be valid.
-   DESCRIPTION:
-        Select an entry in the type version table by name.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'env' or 'err' is null.
-        OCI_ERROR if
-            1) any of the parameters is invalid.
-            2) an entry with 'type_name' does not exist.
- */
-
-/* Compatibility function - following function prototype retained for 
-   compatibility only */
-sword ortgcty(    OCIEnv *env, OCIError *err, OCIType *coll_tdo,
-                  OCIType **collelem_tdo    );
-
-/*---------------------------------------------------------------------------*/
-/*               Transient Type Construction functions                       */
-/*---------------------------------------------------------------------------*/
-
-sword OCITypeBeginCreate(OCISvcCtx *svchp, OCIError *errhp, OCITypeCode tc,
-                         OCIDuration dur, OCIType **type);
-/*
-   NAME: OCITypeBeginCreate - OCI Type Begin Creation of a transient type.
-   REMARKS
-       Begins the construction process for a transient type. The type will be
-       anonymous (no name). To create a persistent named type, the CREATE TYPE
-       statement should be used from SQL. Transient types have no identity.
-       They are pure values.
-   PARAMETERS:
-       svchp (IN)       - The OCI Service Context.
-       errhp (IN/OUT)   - The OCI error handle. If there is an error, it is
-                          recorded in errhp and this function returns
-                          OCI_ERROR. Diagnostic information can be obtained by
-                          calling OCIErrorGet().
-       tc               - The TypeCode for the type. The Typecode could
-                          correspond to a User Defined Type or a Built-in type.
-                          Currently, the permissible values for User Defined 
-                          Types are OCI_TYPECODE_OBJECT for an Object Type
-                          (structured), OCI_TYPECODE_VARRAY for a VARRAY
-                          collection type or OCI_TYPECODE_TABLE for a nested
-                          table collection type. For Object types,
-                          OCITypeAddAttr() needs to be called to add each of
-                          the attribute types. For Collection types,
-                          OCITypeSetCollection() needs to be called.
-                          Subsequently, OCITypeEndCreate() needs to be called 
-                          to finish the creation process.
-                          The permissible values for Built-in type codes are
-                          specified in the user manual. Additional information
-                          on built-ins if any (like precision, scale for
-                          numbers, character set info for VARCHAR2s etc.) must
-                          be set with a subsequent call to OCITypeSetBuiltin().
-                          Subsequently OCITypeEndCreate() needs to be called
-                          to finish the creation process.
-       dur              - The allocation duration for the Type. Could be a
-                          predefined or a user defined duration.
-       type(OUT)        - The OCIType (Type Descriptor) that is being
-                          constructed.
-  RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_ERROR on error.
-*/
-
-
-sword OCITypeSetCollection(OCISvcCtx *svchp, OCIError *errhp, OCIType *type,
-                           OCIParam *collelem_info, ub4 coll_count);
-/*
-   NAME: OCITypeSetCollection - OCI Type Set Collection information
-   REMARKS :
-       Set Collection type information. This call can be called only if the
-       OCIType has been constructed with a collection typecode.
-   PARAMETERS:
-       svchp (IN)      -  The OCI Service Context.
-       errhp (IN/OUT)  -  The OCI error handle. If there is an error, it is 
-                          recorded in errhp and this function returns
-                          OCI_ERROR. Diagnostic information can be obtained by
-                          calling OCIErrorGet().
-       type(IN OUT)    -  The OCIType (Type Descriptor) that is being
-                          constructed.
-       collelem_info   -  collelem_info provides information on the collection
-                          element. It is obtained by allocating an OCIParam
-                          (parameter handle) and setting type information in
-                          the OCIParam using OCIAttrSet() calls.
-       coll_count      -  The count of elements in the collection. Pass 0 for
-                          a nested table (unbounded).
-  RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_ERROR on error.
-*/
-
-sword OCITypeSetBuiltin(OCISvcCtx *svchp, OCIError *errhp, OCIType *type,
-                        OCIParam *builtin_info);
-/*
-   NAME: OCITypeSetBuiltin - OCI Type Set Builtin information.
-   REMARKS:
-       Set Built-in type information. This call can be called only if the
-       OCIType has been constructed with a built-in typecode
-       (OCI_TYPECODE_NUMBER etc.).
-   PARAMETERS:
-       svchp (IN)       - The OCI Service Context.
-       errhp (IN/OUT)   - The OCI error handle. If there is an error, it is 
-                          recorded in errhp and this function returns
-                          OCI_ERROR. Diagnostic information can be obtained by
-                          calling OCIErrorGet().
-       type(IN OUT)     - The OCIType (Type Descriptor) that is being
-                          constructed.
-       builtin_info     - builtin_info provides information on the built-in
-                          (like precision, scale, charater set etc.). It is
-                          obtained by allocating an OCIParam (parameter handle)
-                          and setting type information in the OCIParam using
-                           OCIAttrSet() calls.
-  RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_ERROR on error.
-*/
-
-sword OCITypeAddAttr(OCISvcCtx *svchp, OCIError *errhp, OCIType *type,
-                     CONST oratext *a_name, ub4 a_length, 
-                     OCIParam *attr_info);
-/*
-   NAME: OCITypeAddAttr - OCI Type Add Attribute to an Object Type.
-   REMARKS:
-       Adds an attribute to an Object type (that was constructed earlier with
-       typecode OCI_TYPECODE_OBJECT).
-   PARAMETERS:
-       svchp (IN)       - The OCI Service Context
-       errhp (IN/OUT)   - The OCI error handle. If there is an error, it is
-                          recorded in errhp and this function returns
-                          OCI_ERROR. Diagnostic information can be obtained by
-                          calling OCIErrorGet().
-       type (IN/OUT)    - The Type description that is being constructed.
-       a_name(IN)       - Optional. gives the name of the attribute.
-       a_length         - Optional. gives length of attribute name.
-       attr_info        - Information on the attribute. It is obtained by
-                          allocating an OCIParam (parameter handle) and setting
-                          type information in the OCIParam using OCIAttrSet()
-                          calls.
-  RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_ERROR on error.
-*/
-
-sword OCITypeEndCreate(OCISvcCtx *svchp, OCIError *errhp, OCIType *type);
-/*
-   NAME: OCITypeEndCreate - OCI Type End Creation
-   REMARKS:
-       Finishes construction of a type description.Subsequently, only access
-       will be allowed.
-   PARAMETERS:
-       svchp (IN)       - The OCI Service Context
-       errhp (IN/OUT)   - The OCI error handle. If there is an error, it is
-                          recorded in errhp and this function returns
-                          OCI_ERROR. Diagnostic information can be obtained by
-                          calling OCIErrorGet().
-       type (IN/OUT)    - The Type description that is being constructed.
-   RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_ERROR on error.
-*/
-
-/*=========================*/
-/* PUBLIC MACROS AND FLAGS */
-/*=========================*/
-
-/*--------------------------------------------------------------------------*/
-/*                          TYPE ELEMENT FLAGS                              */
-/*--------------------------------------------------------------------------*/
-
-#define OCI_TYPEELEM_REF        0x8000                   /* element is a REF */
-#define OCI_TYPEPARAM_REQUIRED  0x0800              /* parameter is required */
-
-/* macros to test flags */
-#define OCI_TYPEELEM_IS_REF(elem_flag) \
-  (((elem_flag) & OCI_TYPEELEM_REF)!=0)
-#define OCI_TYPEPARAM_IS_REQUIRED(param_flag) \
-  (((param_flag) & OCI_TYPEPARAM_REQUIRED)!=0)
-
-
-#endif /* ORT_ORACLE */
-
diff --git a/src/terralib/drivers/Oracle/TeOCIConnect.cpp b/src/terralib/drivers/Oracle/TeOCIConnect.cpp
deleted file mode 100644
index 39506af..0000000
--- a/src/terralib/drivers/Oracle/TeOCIConnect.cpp
+++ /dev/null
@@ -1,456 +0,0 @@
-/************************************************************************************
-TerraLib - a library for developing GIS applications.
-Copyright � 2001-2007 INPE and Tecgraf/PUC-Rio.
-
-This code is part of the TerraLib library.
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library.
-
-The authors reassure the license terms regarding the warranties.
-They specifically disclaim any warranties, including, but not limited to,
-the implied warranties of merchantability and fitness for a particular purpose.
-The library provided hereunder is on an "as is" basis, and the authors have no
-obligation to provide maintenance, support, updates, enhancements, or modifications.
-In no event shall INPE and Tecgraf / PUC-Rio be held liable to any party for direct,
-indirect, special, incidental, or consequential damages arising out of the use
-of this library and its documentation.
-*************************************************************************************/
-
-
-#include "TeOCIConnect.h"
-#include "TeOCISDO.h"
-#include <cstring>
-
-
-TeOCIConnection::TeOCIConnection() 
-{
-	connected_ = false;
-	useSDO_ = false;
-
-	envhp_ = 0;
-	errhp_ = 0;
-	srvhp_ = 0;
-	svchp_ = 0;
-	usrhp_ = 0;
-	txnhp_ = 0;
-	stmthp_ = 0;
-	tdo_geometry_ = 0;
-	tdo_ordinates_ = 0;
-	ordinates_ = 0;
-	blobValue_ = 0;
-}
-
-
-bool TeOCIConnection::connect(const char* dblink, const char* username, const char* password, const bool& useSDO) 
-{
-	sword status;
-
-	int mode = OCI_THREADED|OCI_OBJECT;
-	
-	//create and initialize the environment
-	status = SDO_OCIEnvCreate(&envhp_, (ub4)mode, (dvoid *)0, 
-				      (dvoid*(*)(dvoid *ctxp, size_t size))0, 
-				      (dvoid*(*)(dvoid *ctxp, dvoid *memptr, size_t newsize))0, 
-				      (void (*)(dvoid *ctxp, dvoid *memptr))0, 
-					  (size_t)0, (dvoid**)0);
-	if(!checkError(errhp_, status))
-		return false;
-
-	// Allocate handles - errhp_(OCIError) and srvhp_ (OCIServer)
-	status = SDO_OCIHandleAlloc((dvoid*)envhp_, (dvoid**)&errhp_, (ub4)OCI_HTYPE_ERROR,
-					   (size_t)0, (dvoid**)0);
-	if(!checkError(errhp_, status))
-		return false;
-
-	status = SDO_OCIHandleAlloc((dvoid*)envhp_, (dvoid**)&srvhp_, (ub4)OCI_HTYPE_SERVER,
-					   (size_t)0, (dvoid**)0);
-	if(!checkError(errhp_, status))
-		return false;
-
-	// Multiple Sessions or Connections
-	status = SDO_OCIServerAttach(srvhp_, errhp_, (text*)dblink, 
-						 (sb4)strlen(dblink), (ub4)OCI_DEFAULT);
-	if(!checkError(errhp_, status))
-		return false;
-
-	// Allocate handles: svchp_(OCISvcCtx)
-	status = SDO_OCIHandleAlloc((dvoid*)envhp_, (dvoid**)&svchp_, (ub4)OCI_HTYPE_SVCCTX, 
-					   (size_t)0, (dvoid**)0);
-	if(!checkError(errhp_, status))
-		return false;
-
-	// Set the server attribute in the service context handle
-	status = SDO_OCIAttrSet((dvoid*)svchp_, (ub4)OCI_HTYPE_SVCCTX, (dvoid*)srvhp_, (ub4)0, 
-				   (ub4)OCI_ATTR_SERVER, errhp_);
-	if(!checkError(errhp_, status))
-		return false;
-
-	/// Allocate a user session handle
-	status = SDO_OCIHandleAlloc((dvoid*)envhp_, (dvoid**)&usrhp_, (ub4)OCI_HTYPE_SESSION, 
-					   (size_t)0, (dvoid**)0);
-	if(!checkError(errhp_, status))
-		return false;
-
-	// set user name attribute in user session handle 
-	status = SDO_OCIAttrSet((dvoid*)usrhp_, (ub4)OCI_HTYPE_SESSION, (dvoid*)username, 
-				   (ub4)strlen(username), (ub4)OCI_ATTR_USERNAME, errhp_);
-	if(!checkError(errhp_, status))
-		return false;
-	
-	// set password attribute in user session handle
-	status = SDO_OCIAttrSet((dvoid*)usrhp_, (ub4)OCI_HTYPE_SESSION, (dvoid*)password, 
-				   (ub4)strlen(password), (ub4)OCI_ATTR_PASSWORD, errhp_);
-	if(!checkError(errhp_, status))
-		return false;
-
-	// Session begins - establishes a session for a user against a particular
-	// server. This call is required for the user to execute operations on the server.
-	status = SDO_OCISessionBegin(svchp_, errhp_, usrhp_, OCI_CRED_RDBMS, 
-								 OCI_DEFAULT);
-	if(!checkError(errhp_, status))
-		return false;
-
-	// set the user session attribute in the service context handle
-	status = SDO_OCIAttrSet((dvoid*)svchp_, (ub4)OCI_HTYPE_SVCCTX, (dvoid*)usrhp_, (ub4)0, 
-				   (ub4)OCI_ATTR_SESSION, errhp_);
-	if(!checkError(errhp_, status))
-		return false;
-
-	// allocate transaction handle 1 and set it in the service handle (OCITrans)
-	status = OCIHandleAlloc((dvoid *)envhp_, (dvoid **)&txnhp_, OCI_HTYPE_TRANS, 0, 0);
-	if(!checkError(errhp_, status))
-		return false;
-
-	status = OCIAttrSet((dvoid *)svchp_, OCI_HTYPE_SVCCTX, (dvoid *)txnhp_, 0,OCI_ATTR_TRANS, errhp_);
-	if(!checkError(errhp_, status))
-		return false;
-
-	// locate stmthp_
-	status = SDO_OCIHandleAlloc((dvoid*)envhp_, (dvoid**)&stmthp_, 
-								  (ub4)OCI_HTYPE_STMT, (size_t)0, (dvoid**)0);
-	if(!checkError(errhp_, status))
-		return false;
-
-	if(useSDO)
-	{
-		//load the tdo type to sdo_geometry (OCIType)
-		status = OCITypeByName(envhp_, errhp_, svchp_, (const text *)
-			"MDSYS", (ub4) strlen((char *)"MDSYS"),
-			(const text *) "SDO_GEOMETRY",	(ub4) strlen((char *)"SDO_GEOMETRY"),
-			(text *)0, 0, OCI_DURATION_SESSION, OCI_TYPEGET_HEADER, &tdo_geometry_);
-		if(!checkError(errhp_, status))
-			return false;
-
-		//load the tdo type to sdo_ordinates (OCIType)
-		status = OCITypeByName(envhp_, errhp_, svchp_, (const text *)
-			"MDSYS", (ub4) strlen((char *)"MDSYS"),
-			(const text *) "SDO_ORDINATE_ARRAY", (ub4) strlen((char *)"SDO_ORDINATE_ARRAY"),
-			(text *)0, 0, OCI_DURATION_SESSION, OCI_TYPEGET_HEADER, &tdo_ordinates_);
-		if(!checkError(errhp_, status))
-			return false;
-	}
-	connected_ = true;
-	useSDO_ = useSDO;
-	return true;
-}
-
-
-void TeOCIConnection::disconnect()  
-{
-	
-	OCIObjectFree(envhp_, errhp_, (dvoid*)ordinates_, (ub4)OCI_OBJECTFREE_FORCE);
-	
-	// Session ends
-	SDO_OCISessionEnd(svchp_, errhp_, usrhp_, (ub4)OCI_DEFAULT);
-	SDO_OCIServerDetach(srvhp_, errhp_, (ub4)OCI_DEFAULT);
-
-
-	SDO_OCIHandleFree((dvoid*)tdo_geometry_, (ub4)OCI_HTYPE_DESCRIBE);
-	SDO_OCIHandleFree((dvoid*)tdo_ordinates_, (ub4)OCI_HTYPE_DESCRIBE);
-
-	// Finalize svchp_, srvhp_, errhp_ and stmthp_
-	SDO_OCIHandleFree((dvoid*)txnhp_, (ub4)OCI_HTYPE_TRANS);
-	SDO_OCIHandleFree((dvoid*)srvhp_, (ub4)OCI_HTYPE_SERVER);
-	SDO_OCIHandleFree((dvoid*)svchp_, (ub4)OCI_HTYPE_SVCCTX);
-	SDO_OCIHandleFree((dvoid*)errhp_, (ub4)OCI_HTYPE_ERROR);
-	SDO_OCIHandleFree((dvoid*)usrhp_, (ub4)OCI_HTYPE_SESSION);
-	SDO_OCIHandleFree((dvoid*)stmthp_, (ub4)OCI_HTYPE_STMT);
-	
-	SDO_OCIHandleFree((dvoid*)envhp_, (ub4)OCI_HTYPE_ENV);
-
-	
-
-	connected_ = false;		
-	envhp_ = 0;
-	errhp_ = 0;
-	srvhp_ = 0;
-	svchp_ = 0;
-	usrhp_ = 0;
-	txnhp_ = 0;
-	tdo_geometry_ = 0;
-	tdo_ordinates_ = 0;
-	ordinates_ = 0;
-	stmthp_ = 0;
-	if(blobValue_)
-		delete [] blobValue_;
-	blobValue_ = 0;
-}
-
-
-bool TeOCIConnection::prepare(const string& stmt)
-{	
-	if (!connected_)
-		return false;
-	
-	ub4 size = stmt.size();
-	sword status = SDO_OCIStmtPrepare(svchp_, (OCIStmt *)stmthp_, errhp_, (text*)stmt.c_str(), (ub4)size,  
-		(text*)0, (ub4)0, (ub4)OCI_NTV_SYNTAX, (ub4)OCI_DEFAULT);
-	if(!checkError(errhp_, status))
-		return false;
-
-	return true;
-}
-
-
-bool TeOCIConnection::bindByPos(int pos, void* value, int size, void* indicator, int type)
-{
-	if (!connected_)
-		return false;
-
-	OCIBind *bindp = NULL;
-
-	sword status = SDO_OCIBindByPos(stmthp_, &bindp, errhp_, pos, (dvoid *)value, 
-								(sb4)size, type, (dvoid *)indicator, (ub2 *)0, 
-								(ub2 *)0, (ub4)0, (ub4 *)0, (ub4)OCI_DEFAULT);
-	if(!checkError(errhp_, status))
-		return false;
-	return true;
-}
-
-bool TeOCIConnection::bindOrdinates()
-{
-	OCIBind		*bnd1p = NULL;
-	
-	/* bind coordinate varray object */
-	sword status = OCIBindByName(stmthp_, &bnd1p, errhp_, 
-	    (text *)":ordinates_", (sb4)-1, (dvoid *)0, (sb4)0, SQLT_NTY, (dvoid *)0, 
-		(ub2 *)0, (ub2 *)0, (ub4)0, (ub4 *)0, (ub4)OCI_DEFAULT);
-	if(!checkError(errhp_, status))
-		return false;
-
-	status = OCIBindObject(bnd1p, errhp_, tdo_ordinates_, (dvoid **)&ordinates_, (ub4 *)0, 
-	    (dvoid **)0, (ub4 *)0);
-	if(!checkError(errhp_, status))
-		return false;
-
-	return true;
-}
-
-int TeOCIConnection::queryType()  
-{	
-	ub2 querytype_;
-		
-	sword status = OCIAttrGet((dvoid *)stmthp_, (ub4)OCI_HTYPE_STMT, (ub2 *)&querytype_,
-	(ub4*)NULL, (ub4)OCI_ATTR_STMT_TYPE, (OCIError *)errhp_);
-	if(!checkError(errhp_, status))
-		return -1;
-	return (querytype_);
-}
-
-
-bool TeOCIConnection::allocateObjectOrdinates()
-{
-	sword status = SDO_OCIObjectNew(envhp_, errhp_, svchp_, OCI_TYPECODE_VARRAY, tdo_ordinates_, (dvoid*)NULL, 
-					OCI_DURATION_SESSION, TRUE, (dvoid**)&ordinates_);
-
-	if(!checkError(errhp_, status))
-		return false;
-
-	return true;
-}
-
-
-bool TeOCIConnection::appendOrdinates(const double& val)
-{
-	
-	OCINumber	oci_number;
-	sword       status;
-	
-	status = OCINumberFromReal(errhp_, (dvoid *)&(val), 
-		(uword)sizeof(double),&oci_number);
-
-	status = OCICollAppend(envhp_, errhp_, 
-		(dvoid *) &oci_number,
-		(dvoid *)0, (OCIColl *)ordinates_);
-
-	if(!checkError(errhp_, status))
-		return false;
-
-	return true;
-}
-
-bool TeOCIConnection::transStart()
-{
-	sword status = OCITransStart (svchp_, errhp_, 60, OCI_TRANS_NEW); 
-	if(!checkError(errhp_, status))
-		return false;
-
-	return true;
-}
-
-bool TeOCIConnection::transRollback()
-{
-	sword status = OCITransRollback(svchp_, errhp_, (ub4) 0);
-	if(!checkError(errhp_, status))
-		return false;
-
-	return true;
-}
-
-bool TeOCIConnection::transCommit()
-{
-	sword status = OCITransCommit(svchp_, errhp_, (ub4) 0);
-	if(!checkError(errhp_, status))
-		return false;
-
-	return true;
-}
-
-bool TeOCIConnection::execute(const string& stm)
-{
-	if(!prepare(stm))
-		return false;
-	
-	if ((queryType()<0) || (queryType()==1))
-		return false;  //return records (query)
-	
-	transStart();
-	sword status = OCIStmtExecute(svchp_, stmthp_, errhp_, (ub4)1, (ub4)0, (OCISnapshot *)NULL, 
-								  (OCISnapshot *)NULL, (ub4)OCI_DEFAULT);
-	
-	if(!checkError(errhp_, status))
-	{
-		transRollback();
-		return false;
-	}
-
-	transCommit();
-	return true; 
-}
-
-
-bool TeOCIConnection::executeSDOSTM(const string& stm)  
-{
-	if(!prepare(stm))
-		return false;
-
-	if(!bindOrdinates())
-		return false;
-
-	if((queryType()<0) || (queryType()==1))
-		return false;  //return records (query)
-		
-	transStart();
-	sword status = OCIStmtExecute(svchp_, stmthp_, errhp_, (ub4)1, (ub4)0, (OCISnapshot *)NULL, 
-								  (OCISnapshot *)NULL, (ub4)OCI_DEFAULT);
-	
-	if(!checkError(errhp_, status))
-	{		
-		OCIObjectFree(envhp_, errhp_, (dvoid *)ordinates_, (ub2)OCI_OBJECTFREE_FORCE);
-		transRollback();
-		return false;
-	}
-
-	transCommit();
-	OCIObjectFree(envhp_, errhp_, (dvoid *)ordinates_, (ub2)OCI_OBJECTFREE_FORCE);
-	return true; 
-}
-
-bool 
-TeOCIConnection::executeBLOBSTM(const string& stm, unsigned char* blobValue, const int& blobLength, const string& name)
-{
-	//prepare the statement
-	if(!prepare(stm))
-		return false;
-	
-	if((queryType()<0) || (queryType()==1))
-		return false;  //return records (query)
-
-	//Bind blob
-	OCIBind		*bnd1p = NULL;
-	sword status = OCIBindByName(stmthp_, &bnd1p, errhp_,
-                (text *) name.c_str(), (sb4) name.size(),
-                (dvoid *) blobValue, (sb4) blobLength, SQLT_LBI,
-                (dvoid *) 0, (ub2 *)0, (ub2 *) 0,
-                (ub4) 0, (ub4 *) 0, (ub4) OCI_DEFAULT);
-	if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-		return false;
-
-	status = OCIStmtExecute(svchp_, stmthp_, errhp_, (ub4)1, (ub4)0, (OCISnapshot *)NULL, 
-						  (OCISnapshot *)NULL, (ub4)OCI_DEFAULT);
-	if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-		return false;
-
-	return true;
-}
-
-
-
-bool TeOCIConnection::checkError(OCIError* errhp_, int status) 
-{
-	char errbuf[512];
-	sb4 errcode = 0;
-	bool returnedVal = false;
-		
-	if (status == OCI_ERROR)
-	{
-		SDO_OCIErrorGet((dvoid*)errhp_, (ub4)1, (text*)NULL, &errcode, 
-						(text*)errbuf, (ub4)sizeof(errbuf), OCI_HTYPE_ERROR);
-		errorMess_ = errbuf;
-		return false;
-	}
-
-	switch (status)
-	{ 
-		case OCI_SUCCESS:
-			//errorMess_ = "Success!";
-			returnedVal = true;
-			break;
-
-		case OCI_SUCCESS_WITH_INFO:
-			//errorMess_ = "Success with information!";
-			returnedVal = true;
-			break;
-
-		case OCI_NEED_DATA:
-			errorMess_ = "Need data!";
-			break;
-		
-		case OCI_NO_DATA:
-			errorMess_ = "No data!";
-			break;
-
-		//An invalid handle was passed as a parameter or a user callback is passed an
-		//invalid handle or invalid context. No further diagnostics are available.
-		case OCI_INVALID_HANDLE:
-			errorMess_ = "Invalid handle!";
-			break;
-
-		case OCI_STILL_EXECUTING:
-			errorMess_ = "Still executing!";
-			break;
-
-		case OCI_CONTINUE:
-			errorMess_ = "Continue!";
-			break;
-		default:
-			break;
-	}
-
-	return returnedVal;
-}
diff --git a/src/terralib/drivers/Oracle/TeOCIConnect.h b/src/terralib/drivers/Oracle/TeOCIConnect.h
deleted file mode 100644
index ba47607..0000000
--- a/src/terralib/drivers/Oracle/TeOCIConnect.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/************************************************************************************
-TerraLib - a library for developing GIS applications.
-Copyright � 2001-2007 INPE and Tecgraf/PUC-Rio.
-
-This code is part of the TerraLib library.
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library.
-
-The authors reassure the license terms regarding the warranties.
-They specifically disclaim any warranties, including, but not limited to,
-the implied warranties of merchantability and fitness for a particular purpose.
-The library provided hereunder is on an "as is" basis, and the authors have no
-obligation to provide maintenance, support, updates, enhancements, or modifications.
-In no event shall INPE and Tecgraf / PUC-Rio be held liable to any party for direct,
-indirect, special, incidental, or consequential damages arising out of the use
-of this library and its documentation.
-*************************************************************************************/
-/*! \file  TeOCIConnect.h
-    \brief This file contains the class OCIConnect that is responsible for the connection to ORACLE DBMS using OCI (Oracle Call Interface) library. 
-*/
-
-#ifndef OCI_CONNECT_H
-#define OCI_CONNECT_H
-
-#include <oci.h>
-#include <string>
-
-#include "TeOracleDefines.h"
-
-using namespace std;
-
-/*! \class TeOCIConnection
-	\brief This class is used to connect to a ORACLE DBMS
-
-	This class is reponsible for the connection to ORACLE DBMS using OCI (Oracle Call Interface) library.
-*/
-class TLORACLE_DLL TeOCIConnection
-{
-protected:
-	bool	     connected_;		//!< indicates if there is a connection opened or not
-	bool		 useSDO_;			//!< indicates if the connected Oracle DBMS uses the SDO_GEOMETRY type 
-	string       errorMess_;		//!< error message returned by the ORACLE DBMS
-
-public:
-	/** @name OCI connection handles
-	*/
-	//@{ 	
-	OCIEnv*			envhp_;		//!< environment OCI handle        
-	OCIError*		errhp_;		//!< error OCI handle
-
-	OCIServer*		srvhp_;		//!< service context OCI handle - represents a connection 
-	OCISvcCtx*		svchp_;		//!< service context OCI handle - defines a service
-	OCISession*		usrhp_;		//!< service context OCI handle - defines the permissions and privileges associated to an user
-	OCITrans*		txnhp_;		//!< service context OCI handle - controls the transactions 
-
-	OCIStmt*		stmthp_;	//!< environment OCI handle - stores SQL statement
-	//@}
-
-	OCIType*		tdo_geometry_; 		//!< describes the SDO_GEOMETRY type 
-	OCIType*		tdo_ordinates_;		//!< describes the SDO_ORDINATES type
-	OCIArray*		ordinates_;			//!< stores the ordinates to insert into database 	
-
-	unsigned char*	blobValue_;			//!< stores the blob value that will be inserted into database  
-
-public:
-	
-	//! Constructor
-	TeOCIConnection();
-
-	//! Destructor
-	~TeOCIConnection() { disconnect(); }
-
-	//! Connects to ORACLE DBMS
-	bool connect(const char* dblink, const char* username, const char* password, const bool& useSDO = false);
-	
-	//! Disconnects to ORACLE DBMS
-	void disconnect();
-
-	//! Prepares the SQL statement to be executed
-	bool prepare(const string& stmt);
-
-	//! Binds objects by position
-	bool bindByPos(int pos, void* value, int size, void* indicator, int type);
-	
-	//! Binds objects by name
-	bool bindByName(char* name, void* value, int size, void* indicator, int type);
-	
-	//! Binds ordinate object
-	bool bindOrdinates();
-
-	//! Appends ordinates to be inserted or updated
-	bool appendOrdinates(const double& val);
-
-	//! Locates memory to the ordinates 
-	bool allocateObjectOrdinates();
-
-	//! Returns the query (statement SQL) type 
-	int	queryType(void);
-
-	//! Starts a transaction 
-	bool transStart();
-
-	//! Rollbacks a transaction
-	bool transRollback();
-
-	//! Commits a transaction
-	bool transCommit();
-	
-	//! Executes only SQL statements that do not return rows (INSERT, UPDATE, DELETE, etc)
-	bool execute(const string& stm);
-	
-	//! Executes only SQL statements that insert or update rows with SDO Objects 
-	bool executeSDOSTM(const string& stm);
-
-	//! Executes only SQL statements that insert or update rows with BLOB
-	bool executeBLOBSTM(const string& stm, unsigned char* blobValue, const int& blobLength, const string& name);
-
-	//! Checks if there is an opened conection
-	bool isConnected() { return connected_; }
-
-	//! Returns if the connected Oracle DBMS uses the SDO_GEOMETRY type
-	bool useSDOType() { return useSDO_; } 
-
-	//! Checks OCI error handle
-	bool checkError(OCIError* errhp, int status);
-
-	//! Gets the error message
-	string getErrorMessage() { return errorMess_; }
-};
-
-#endif
diff --git a/src/terralib/drivers/Oracle/TeOCICursor.cpp b/src/terralib/drivers/Oracle/TeOCICursor.cpp
deleted file mode 100644
index 68989f5..0000000
--- a/src/terralib/drivers/Oracle/TeOCICursor.cpp
+++ /dev/null
@@ -1,1391 +0,0 @@
-/************************************************************************************
-TerraLib - a library for developing GIS applications.
-Copyright � 2001-2007 INPE and Tecgraf/PUC-Rio.
-
-This code is part of the TerraLib library.
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library.
-
-The authors reassure the license terms regarding the warranties.
-They specifically disclaim any warranties, including, but not limited to,
-the implied warranties of merchantability and fitness for a particular purpose.
-The library provided hereunder is on an "as is" basis, and the authors have no
-obligation to provide maintenance, support, updates, enhancements, or modifications.
-In no event shall INPE and Tecgraf / PUC-Rio be held liable to any party for direct,
-indirect, special, incidental, or consequential damages arising out of the use
-of this library and its documentation.
-*************************************************************************************/
-
-
-#include "TeOCICursor.h"
-#include "TeOCISDO.h"
-#include "TeUtils.h"
-
-//C include files
-#include <cstring>
-#include <cstdlib>
-
-
-string getSQLToLoadBlobLength(const string& sql, const vector<string>& blobNames)
-{
-	string sqlSelectAux, sqlFromAux, sqlWhereAux;
-	
-	//Select clause
-	size_t posFrom = sql.find(" FROM ", 0);
-	sqlSelectAux = sql.substr(0, posFrom);
-	
-	//From and Where clause
-	sqlWhereAux = " ";
-	size_t posWhere = sql.find(" WHERE ", 0);
-	if(posWhere != string::npos)
-	{
-		sqlFromAux = sql.substr(posFrom, (posWhere-posFrom)+1);
-		sqlWhereAux = sql.substr(posWhere);
-	}
-	else
-		sqlFromAux = sql.substr(posFrom);
-	 
-	string beforeBlobName="";
-	//Verify if there is  string "SELECT *" 
-	size_t pos =  sqlSelectAux.find (" *", 0);
-	if(pos != string::npos) 
-	{
-		//two option:
-		//1: if there is only 1 table -> include an alias in the FROM clause  
-		//2: if there are more than 1 table -> include SELECT * ... and alias in the FROM clause
-		size_t posJoin = sqlFromAux.find(" JOIN ", 0);
-		size_t posVirg = sqlFromAux.find(",", 0);
-
-		if((posJoin!=string::npos) || (posVirg!=string::npos)) //there are more than 1
-		{
-			string aux = " FROM ( SELECT * "+ sqlFromAux + sqlWhereAux +" ) t ";
-			sqlFromAux = aux;
-			sqlWhereAux = "";
-		}
-		else //there are only 1
-			sqlFromAux += " t ";
-			
-		sqlSelectAux.replace(pos+1, 1, " t.* ");
-		beforeBlobName = "t.";
-	}
-	
-	for(unsigned int i=0; i<blobNames.size(); ++i)
-		sqlSelectAux += " , LENGTH("+ beforeBlobName + blobNames[i] +") ";
-		
-	return (sqlSelectAux+sqlFromAux+sqlWhereAux);
-	
-}
-
-//Given a string, remove all blanks and tabs (rigth)
-char* StrClean(char *name)
-{
-    int j;
-	
-	if ((name == NULL)) /*SGError.Handler(NULLPOINTER,FATAL);*/ 
-		return 0;
-
-	for (j = strlen(name)-1; j>=0; j--)
-	{
-		if ( !((name[j]==' ') || (name[j]=='\t') || (name[j]== '\0')) ) 
-			break;
-	}
-	
-	name[j+1] = '\0';
-
-	return name;
-}
-
-
-TeOCICursor::TeOCICursor(TeOCIConnection* connec, const unsigned long& maxBlobSize, const unsigned long& maxRowNum)
-{
-	if(!connec)
-		return;
-	
-	maxRows_ = MAX_ROWS;
-	maxBuflen_ = MAX_BLOB_LENGTH;
-
-	//size in bytes to each blob
-	if(maxBlobSize>0)
-		maxBuflen_ = maxBlobSize;
-
-	if(maxRowNum>0)
-		maxRows_ = maxRowNum;
-	
-	connection_ = connec;
-	stmthpToQuery_ = NULL;
-	dschp_ = NULL;
-	fieldValue_ = "";
-	ordinates_ = 0;
-	isOpen_ = false;
-	hasBlob_ = false;
-	row_Index_ = -1;
-	rows_Fetched_ = 0;
-	rows_Mem_ = 0;
-	row_Cur_ = -1;
-	last_Row_ = false;
-	errorMessage_ = "";
-	numColls_ = -1;
-	colBlobName_.clear();
-
-	if(connection_->useSDOType())
-	{
-		for(int i=0;i<maxRows_;i++)
-		{
-			global_geom_obj_[i] = NULL;
-			global_geom_ind_[i] = NULL;
-		}
-	}
-}
-
-bool TeOCICursor::open()  
-{
-	if(!connection_)
-		return false;
-
-	sword status;
-	if(isOpen_)
-		this->close();
-	isOpen_ = false;
-
-	// Initialize statement handle 
-	status = SDO_OCIHandleAlloc((dvoid*)connection_->envhp_, (dvoid**)&stmthpToQuery_, 
-								  (ub4)OCI_HTYPE_STMT, (size_t)0, (dvoid**)0);
-	if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-		return false;
-	
-	// describe spatial object types (OCIDescribe)
-	status = SDO_OCIHandleAlloc((dvoid*)connection_->envhp_, (dvoid**)&dschp_, 
-								(ub4)OCI_HTYPE_DESCRIBE, (size_t)0, (dvoid **)0);
-	if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-	{
-		//free stmthpToQuery_ located previously
-		SDO_OCIHandleFree((dvoid *)stmthpToQuery_, (ub4)OCI_HTYPE_STMT);
-		return false;
-	}
-
-	if(connection_->useSDOType())
-	{
-		status = SDO_OCIObjectNew(connection_->envhp_, connection_->errhp_, connection_->svchp_, OCI_TYPECODE_VARRAY, 
-					connection_->tdo_ordinates_, (dvoid*)NULL, OCI_DURATION_SESSION, TRUE, 
-					(dvoid**)&ordinates_);
-
-		if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-		{
-			//free dschp_ located previously
-			SDO_OCIHandleFree((dvoid*)dschp_, (ub4)OCI_HTYPE_DESCRIBE);
-			//free stmthpToQuery_ located previously
-			SDO_OCIHandleFree((dvoid *)stmthpToQuery_, (ub4)OCI_HTYPE_STMT);
-            return false;
-		}
-	}
-	isOpen_ = true;
-	return true;
-}
-
-
-void TeOCICursor::close()
-{
-	freeResult(); //free all located memory
-	// Finalize stmthpToQuery_ and dschp_
-	if(isOpen_)
-	{
-		SDO_OCIHandleFree((dvoid *)stmthpToQuery_, (ub4)OCI_HTYPE_STMT);
-		SDO_OCIHandleFree((dvoid*)dschp_, (ub4)OCI_HTYPE_DESCRIBE);
-		stmthpToQuery_ = NULL;
-		dschp_ = NULL;
-	}
-	isOpen_ = false;
-	numColls_ = -1;
-}
-
-void TeOCICursor::freeResult()
-{	
-	//vector of buffers to store blob
-	for(unsigned int b=0; b<lobBuffer_.size(); ++b)
-	{
-		if(lobBuffer_[b])
-		{
-			delete [] lobBuffer_[b];
-			lobBuffer_[b] = NULL;
-		}
-	}
-	lobBuffer_.clear();
-	
-	//buffer to store alphanumeric data
-	for(unsigned int i=0; i<buffers_.size();i++)
-	{
-		int coltype = colType_[i];
-		switch (coltype)
-		{
-			case 3: //INTEGER
-				delete [] ((signed int*) buffers_[i]);
-				break;
-			
-			case 2: //NUMBER
-				delete [] ((OCINumber*) buffers_[i]);
-				break;
-			
-			case 4: //FLOAT DOUBLE
-				delete [] ((double*) buffers_[i]);
-				break;
-			
-			case 96: //CHAR
-			case 9: //VARCHAR:
-			case 1: //VARCHAR2:	
-				delete [] ((char *) buffers_[i]);
-				break;
-			
-			case 12: //Date
-					delete [] ((OCIDate *) buffers_[i]);
-					break;
-			default:
-					break;
-			
-		} //switch
-	} //for
-
-	//sdo geometry
-	if(connection_->useSDOType())  
-	{
-		for(int i=0;i<maxRows_;i++) 
-		{
-			/// free the spatial object instance 
-			OCIObjectFree(connection_->envhp_, connection_->errhp_, (dvoid *)global_geom_obj_[i], 
-				   (ub2)OCI_OBJECTFREE_FORCE);
-			
-			global_geom_obj_[i] = NULL;
-			global_geom_ind_[i] = NULL;
-		}
-
-		OCIObjectFree(connection_->envhp_, connection_->errhp_, (dvoid *)ordinates_, (ub2)OCI_OBJECTFREE_FORCE);
-		ordinates_ = 0;
-	}
-
-	buffers_.clear();
-	defines_.clear(); // ver se o freestmtp desaloca os OCIDefines 
-	ind_.clear();
-	colType_.clear();
-	colSize_.clear();
-	colScale_.clear();
-	colName_.clear();
-	numColls_ = -1;
-	hasBlob_ = false;
-	colBlobName_.clear();
-}
-
-
-void TeOCICursor::defineByPos(int pos, void* value, int size, void* indicator, 
-						 int type)
-{
-	OCIDefine *defnp = NULL;
-
-	SDO_OCIDefineByPos(stmthpToQuery_, &defnp, connection_->errhp_, (ub4)pos, 
-								  (dvoid *)value, (sb4)size, type, 
-								  (dvoid *)indicator, (ub2 *)0, (ub2 *)0,
-								  (ub4)OCI_DEFAULT);
-}
-
-
-bool TeOCICursor::fetch(int rows)
-{
-	sword status;
-	status = OCIStmtFetch(stmthpToQuery_, connection_->errhp_, (ub4) rows, (ub4) OCI_FETCH_NEXT,
-                               (ub4) OCI_DEFAULT);
-
-	if (status == OCI_SUCCESS || status == OCI_SUCCESS_WITH_INFO)
-		return true;
-	else
-		return false;
-
-}
-
-bool TeOCICursor::appendOrdinates(const double& val)
-{
-	
-	OCINumber	oci_number;
-	sword       status;
-
-	if(!ordinates_)
-	{
-		status = SDO_OCIObjectNew(connection_->envhp_, connection_->errhp_, connection_->svchp_, OCI_TYPECODE_VARRAY, 
-					connection_->tdo_ordinates_, (dvoid*)NULL, OCI_DURATION_SESSION, TRUE, 
-					(dvoid**)&ordinates_);
-
-		if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-			return false;
-	}
-	
-	status = OCINumberFromReal(connection_->errhp_, (dvoid *)&(val), 
-		(uword)sizeof(double),&oci_number);
-
-	status = OCICollAppend(connection_->envhp_, connection_->errhp_, 
-		(dvoid *) &oci_number,
-		(dvoid *)0, (OCIColl *)ordinates_);
-
-	if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-		return false;
-
-	return true;
-}
-
-bool TeOCICursor::bindOrdinates()
-{
-	OCIBind		*bnd1p = NULL;
-	sword		status; 
-
-	if(!ordinates_)
-	{
-		status = SDO_OCIObjectNew(connection_->envhp_, connection_->errhp_, connection_->svchp_, OCI_TYPECODE_VARRAY, 
-					connection_->tdo_ordinates_, (dvoid*)NULL, OCI_DURATION_SESSION, TRUE, 
-					(dvoid**)&ordinates_);
-
-		if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-			return false;
-	}
-	
-	/* bind coordinate varray object */
-	status = OCIBindByName(stmthpToQuery_, &bnd1p, connection_->errhp_, 
-	    (text *)":ordinates_", (sb4)-1, (dvoid *)0, (sb4)0, SQLT_NTY, (dvoid *)0, 
-		(ub2 *)0, (ub2 *)0, (ub4)0, (ub4 *)0, (ub4)OCI_DEFAULT);
-	if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-		return false;
-
-	status = OCIBindObject(bnd1p, connection_->errhp_, connection_->tdo_ordinates_, (dvoid **)&ordinates_, (ub4 *)0, 
-	    (dvoid **)0, (ub4 *)0);
-	if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-		return false;
-
-	return true;
-}
-
-bool TeOCICursor::moveFirst()
-{		
-	sword status;
-	if(!hasBlob_)
-		// this is for scroolable cursor
-		status = OCIStmtFetch2(stmthpToQuery_, connection_->errhp_, (ub4)maxRows_, OCI_FETCH_FIRST, (sb4) 0, OCI_DEFAULT);
-	else
-		status = OCIStmtFetch2(stmthpToQuery_, connection_->errhp_, (ub4)maxRows_, OCI_FETCH_NEXT, (sb4) 0, OCI_DEFAULT);
-
-	checkError(status);
-	if (status == OCI_SUCCESS || status == OCI_SUCCESS_WITH_INFO  || status == OCI_NO_DATA)
-	{
-		OCIAttrGet((dvoid *)stmthpToQuery_, (ub4)OCI_HTYPE_STMT,
-			     (dvoid *)&rows_Fetched_, (ub4 *)0, 
-			     (ub4)OCI_ATTR_ROW_COUNT, connection_->errhp_);
-
-		if(!rows_Fetched_)  
-			return false;
-
-		if(status == OCI_NO_DATA)
-			last_Row_ = true;
-
-		row_Index_ = 0;
-
-		if(rows_Fetched_ < maxRows_)  
-			rows_Mem_ = rows_Fetched_;
-		else
-			rows_Mem_ = maxRows_;
-
-		row_Cur_ = 0;
-		return true;
-	}
-	return false;
-}
-
-bool TeOCICursor::moveNext()
-{
-	sword status;
-		
-	if((row_Index_+1) >= rows_Mem_) 
-	{
-		if(last_Row_)
-			return false;
-		
-		// this is for scroolable cursor
-		status = OCIStmtFetch2(stmthpToQuery_, connection_->errhp_, (ub4) maxRows_, OCI_FETCH_NEXT, (sb4) 0, OCI_DEFAULT);
-
-		if (status == OCI_SUCCESS || status == OCI_SUCCESS_WITH_INFO || status == OCI_NO_DATA)
-		{
-			OCIAttrGet((dvoid *)stmthpToQuery_, (ub4)OCI_HTYPE_STMT,
-					(dvoid *)&rows_Fetched_, (ub4 *)0, 
-					(ub4)OCI_ATTR_ROWS_FETCHED, connection_->errhp_);
-
-			if(!rows_Fetched_)
-				return false;
-
-			if(status == OCI_NO_DATA)
-			{
-				if(last_Row_)
-					return false;
-				else
-					last_Row_ = true;
-			}
-
-			row_Index_ = 0;
-
-			if(rows_Fetched_ < maxRows_)
-				rows_Mem_ = rows_Fetched_;
-			else
-				rows_Mem_ = maxRows_;
-
-			row_Cur_++;
-			return true;
-		}
-		else
-			return false;
-	}
-	else
-		row_Index_++;
-	
-	row_Cur_++;
-	return true;
-}
-
-bool TeOCICursor::moveLast()  
-{
-	sword status = OCIStmtFetch2(stmthpToQuery_, connection_->errhp_, (ub4) 1, 
-                               OCI_FETCH_LAST, (sb4) 0, OCI_DEFAULT);
-	//podemos pegar informacao da ultima linha
-	if (status == OCI_SUCCESS || status == OCI_SUCCESS_WITH_INFO)
-	{
-		last_Row_ = true;
-		return true;
-	}
-	else
-		return false;
-}
-
-bool TeOCICursor::moveTo(int pos) //begin in 0
-{
-	// It is not possible use scrollable cursor with blob
-	if(hasBlob_) 
-	{
-		// for non-scroolable cursor, needs to query again
-		// if pos is at the end of recordset may be slow
-		int topos;
-		if(pos > 0)
-			topos = pos-1;
-		else
-			topos = row_Cur_ + pos;
-		if(topos < 0)
-			topos = 0;
-
-		if(!moveFirst())
-			return false;
-
-		while(row_Cur_ != topos)
-		{
-			if(!moveNext())
-				return false;
-		}
-		return true;
-	}
-
-	sword status;
-	int auxPos = maxRows_*int(pos/maxRows_);
-
-	// row_Cur_ = absolute current row 
-	// row_Index_ = relative current row - client side
-	if(int(row_Cur_/maxRows_) == int(pos/maxRows_)) 
-	{
-		row_Index_ = pos - (maxRows_*int(pos/maxRows_));
-		row_Cur_ = pos;
-		return true;
-	}
-
-	if(pos<row_Cur_)
-	{
-		if(!moveFirst())
-			return false;
-	}
-
-	status = OCIStmtFetch2(stmthpToQuery_, connection_->errhp_, (ub4) maxRows_, OCI_FETCH_ABSOLUTE, (sb4)auxPos+1, OCI_DEFAULT); 
-	row_Index_ = pos-auxPos;
-	row_Cur_ = pos;
-
-	if (status == OCI_SUCCESS || status == OCI_SUCCESS_WITH_INFO || status == OCI_NO_DATA)
-	{
-		OCIAttrGet((dvoid *)stmthpToQuery_, (ub4)OCI_HTYPE_STMT,
-				 (dvoid *)&rows_Fetched_, (ub4 *)0, 
-				 (ub4)OCI_ATTR_ROWS_FETCHED, connection_->errhp_);
-
-		if(!rows_Fetched_)
-			return false;
-		
-		if(status == OCI_NO_DATA)
-			last_Row_ = true;
-		return true;
-	}
-
-	return false;
-}
-
-// Throw CCursorException if OCI error found
-bool TeOCICursor::checkError(sword status)
-{
-	sb4 errcode = 0;
-	char message[256];
-	bool returnedVal = false;
-
-	if (status == OCI_ERROR)
-	{
-		SDO_OCIErrorGet((dvoid*)connection_->errhp_, (ub4)1, (text*)NULL, &errcode, 
-						(text*)message, (ub4)256, OCI_HTYPE_ERROR);
-
-		errorMessage_ = message;
-		return false;
-	}
-	
-	switch (status)
-	{ 
-		case OCI_SUCCESS:
-			errorMessage_ = "Success!";
-			returnedVal = true;
-			break;
-
-		case OCI_SUCCESS_WITH_INFO:
-			errorMessage_ = "Success with information!";
-			returnedVal = true;
-			break;
-
-		case OCI_NEED_DATA:
-			errorMessage_ = "Need data!";
-			break;
-		
-		case OCI_NO_DATA:
-			errorMessage_ = "No data!";
-			break;
-
-		//An invalid handle was passed as a parameter or a user callback is passed an
-		//invalid handle or invalid context. No further diagnostics are available.
-		case OCI_INVALID_HANDLE:
-			errorMessage_ = "Invalid handle!";
-			break;
-
-		case OCI_STILL_EXECUTING:
-			errorMessage_ = "Still executing!";
-			break;
-
-		case OCI_CONTINUE:
-			errorMessage_ = "Continue!";
-			break;
-		default:
-			break;
-	}
-
-	return returnedVal;
-
-}
-
-
-bool TeOCICursor::prepare(const string& stmt)
-{	
-	ub4 size = stmt.size();
-	sword status = SDO_OCIStmtPrepare(connection_->svchp_, (OCIStmt *)stmthpToQuery_, connection_->errhp_, (text*)stmt.c_str(), (ub4)size,  
-		(text*)0, (ub4)0, (ub4)OCI_NTV_SYNTAX, (ub4)OCI_DEFAULT);
-	if((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-		return false;
-
-	return true;
-}
-
-
-int TeOCICursor::queryType()  
-{	
-	ub2 querytype_;
-		
-	sword status = OCIAttrGet((dvoid *)stmthpToQuery_, (ub4)OCI_HTYPE_STMT, (ub2 *)&querytype_,
-	(ub4*)NULL, (ub4)OCI_ATTR_STMT_TYPE, (OCIError *)connection_->errhp_);
-	if((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-		return -1;
-	return (querytype_);
-}
-
-bool TeOCICursor::query(const string& query)
-{
-	if (!isOpen_)
-		open();
-			
-	row_Index_ = -1;
-	rows_Fetched_ = 0;
-	rows_Mem_ = 0;
-	row_Cur_ = -1;
-	last_Row_ = false;
-
-	if(!prepare(query))
-		return false;	
-	
-	// query type equal to 1 = OCI_STMT_SELECT
-	if(queryType()!=1) 
-		return false;
-		
-	 //iters equal to zero because the defines_ (OCIDefines) have not located yet 
-	sword status = OCIStmtExecute(connection_->svchp_, stmthpToQuery_, connection_->errhp_, (ub4)0, (ub4)0, (OCISnapshot *)NULL, 
-								  (OCISnapshot *)NULL, OCI_STMT_SCROLLABLE_READONLY);
-	checkError(status);
-	if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-		return false;
-
-	loadCollDescription(); // load columns description
-	
-	if(hasBlob_)
-	{
-		vector<string> auxBlobColls;
-		string sql ="";
-		for(unsigned int blobIndex=0; blobIndex<colType_.size(); ++blobIndex)
-		{
-			if(colType_[blobIndex]==113) //blob type
-				auxBlobColls.push_back(colName_[blobIndex]);
-		}
-		
-		if(!auxBlobColls.empty())
-			sql = getSQLToLoadBlobLength(query, auxBlobColls);
-
-		freeResult();
-		colBlobName_ = auxBlobColls;
-
-		maxRows_ = 10; //get only 10 rows from server when there is blob type.
-		
-		if(!prepare(sql))
-			return false;
-		
-		// Is is not possible use the scrollable cursor with blob data type
-		status = OCIStmtExecute(connection_->svchp_, stmthpToQuery_, connection_->errhp_, (ub4)0, (ub4)0, (OCISnapshot *)NULL, 
-								  (OCISnapshot *)NULL, OCI_DEFAULT);
-		if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-			return false;
-
-		loadCollDescription(); // to get the new attribute in SQL
-	}
-
-	if(!allocateCursor())
-		return false;
-	return true; 
-}
-
-
-bool TeOCICursor::querySDO(const string& query)
-{
-	if (!isOpen_)
-		open();
-
-	row_Index_ = -1;
-	rows_Fetched_ = 0;
-	rows_Mem_ = 0;
-	row_Cur_ = -1;
-	last_Row_ = false;
-
-	if(!prepare(query))
-		return false;
-
-	if(!bindOrdinates())
-		return false;	
-
-	// query type equal to 1 = OCI_STMT_SELECT
-	if (queryType() != 1) //must be executed by TeOCIConnect->execute()
-		return false;
-		
-	//iters equal to zero because the defines_ (OCIDefines) have not located yet 
-	sword status = OCIStmtExecute(connection_->svchp_, stmthpToQuery_, connection_->errhp_, (ub4)0, (ub4)0, (OCISnapshot *)NULL, 
-								  (OCISnapshot *)NULL, OCI_STMT_SCROLLABLE_READONLY);
-	
-	if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-		return false;
-	
-	loadCollDescription(); // load columns description
-
-	if(hasBlob_)
-	{
-		vector<string> auxBlobColls;
-		string sql ="";
-		for(unsigned int blobIndex=0; blobIndex<colType_.size(); ++blobIndex)
-		{
-			if(colType_[blobIndex]==113) //blob type
-				auxBlobColls.push_back(colName_[blobIndex]);
-		}
-		
-		if(!auxBlobColls.empty())
-			sql = getSQLToLoadBlobLength(query, auxBlobColls);
-
-		freeResult();
-		colBlobName_ = auxBlobColls;
-
-		maxRows_ = 10; //get only 10 rows from server when there is blob type.
-
-		if(!prepare(sql))
-			return false;
-		
-		// Is is not possible use the scrollable cursor with blob data type
-		status = OCIStmtExecute(connection_->svchp_, stmthpToQuery_, connection_->errhp_, (ub4)0, (ub4)0, (OCISnapshot *)NULL, 
-								  (OCISnapshot *)NULL, OCI_DEFAULT);
-		if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-			return false;
-
-		loadCollDescription(); // to get the new attribute in SQL
-	}
-
-	if(!allocateCursor())
-		return false;
-
-	return true; 
-}
-
-
-int TeOCICursor::numCol()  
-{	
-	if(numColls_>=0)
-		return (numColls_-(colBlobName_.size()));
-	
-	/* Get the number of columns in the query */
-	OCIAttrGet(stmthpToQuery_, OCI_HTYPE_STMT, &numColls_,
-	0, OCI_ATTR_PARAM_COUNT, connection_->errhp_);
-	
-	return (numColls_-(colBlobName_.size()));
-}
-
-
-int TeOCICursor::numRows()
-{
-	int numrows_ = 0;
-	
-	/* Get the number of rows in the query */
-	SDO_OCIAttrGet((dvoid*)stmthpToQuery_, (ub4)OCI_HTYPE_STMT, (dvoid*)&numrows_,
-	(ub4*)0, (ub4)OCI_ATTR_ROW_COUNT, (OCIError*)connection_->errhp_);
-	return (numrows_);
-
-}
-
-
-void TeOCICursor::loadCollDescription() 
-{
-	OCIParam* colhd=NULL;
-	//int		dtype;
-	ub2	dtype = 0;
-	string	colname;
-	//int		colsize;
-	ub2  colsize = (ub2) 0;
-	//int		colscale;
-	sb1  colscale = (sb1) 0;
-	
-	numCol(); // atualize the numColls_ variable
-	hasBlob_ = false;
-
-	int i;
-	for(i=1; i<=numColls_; ++i)
-	{
-		// get parameter for i-th column
-		SDO_OCIParamGet((dvoid*)stmthpToQuery_, (ub4)OCI_HTYPE_STMT, (OCIError *)connection_->errhp_, (dvoid**)&colhd, (ub4)i);
-
-		// get data type 
-		SDO_OCIAttrGet((dvoid *)colhd, (ub4)OCI_DTYPE_PARAM, (dvoid *)&dtype, (ub4*)0, (ub4)OCI_ATTR_DATA_TYPE, (OCIError *)connection_->errhp_);
-
-		// get coll name 
-		text *colname_ = NULL;
-		ub4	colnamesz_;
-				
-		OCIAttrGet((dvoid *)colhd, (ub4)OCI_DTYPE_PARAM, (dvoid **)&colname_, (ub4*)&colnamesz_, (ub4)OCI_ATTR_NAME, (OCIError *)connection_->errhp_ );
-
-		char temp[100];
-		for(int j=0;j<(int)colnamesz_;j++)
-			temp[j] = colname_[j];
-		temp[colnamesz_] = '\0';
-		colname = temp;
-
-		// retrieve the column size attribute
-		SDO_OCIAttrGet((dvoid *)colhd, (ub4)OCI_DTYPE_PARAM, (dvoid *)&colsize, (ub4*)0, (ub4)OCI_ATTR_DATA_SIZE, (OCIError *)connection_->errhp_ );
-
-		// retrieve the column scale attribute
-		SDO_OCIAttrGet((dvoid *)colhd, (ub4)OCI_DTYPE_PARAM, (dvoid *)&colscale, (ub4*)0, (ub4)OCI_ATTR_SCALE, (OCIError *)connection_->errhp_ );
-
-		colName_.push_back(colname);
-		colType_.push_back((int)dtype);
-		colSize_.push_back((int)colsize);
-		colScale_.push_back((int)colscale);
-
-		if(dtype==113)
-			hasBlob_ = true;
-	}
-}
-
-
-int TeOCICursor::colType (int colnumber)   
-{
-	//first coll number is 1
-	if((colnumber==0) || (colnumber>(int)colType_.size()))
-		return 0;
-
-	return colType_[colnumber-1];
-}
-
-
-string TeOCICursor::colName (int colnumber) 
-{	
-	//first coll number is 1
-	if((colnumber==0) || (colnumber>(int)colName_.size()))
-		return "";
-
-	return colName_[colnumber-1];
-}
-
-
-int TeOCICursor::colSize (int colnumber) 
-{
-	//first coll number is 1
-	if((colnumber==0) || (colnumber>(int)colSize_.size()))
-		return 0;
-
-	return colSize_[colnumber-1];
-}
-
-
-int TeOCICursor::colScale (int colnumber) 
-{
-	//first coll number is 1
-	if((colnumber==0) || (colnumber>(int)colScale_.size()))
-		return 0;
-
-	return colScale_[colnumber-1];
-}
-
-
- bool TeOCICursor::allocateCursor()
- {
-	int			size;
-	int			coltype=0;
-	int			colsize=0;
-	int			colscale=0;
-	sword		status;
-	
-	try
-	{
-		ind_.resize(numColls_);
-
-		for(int nc=0; nc<numColls_; ++nc)
-		{
-			defines_.push_back (0);
-			buffers_.push_back (0);
-		}
-
-		for(int i=1; i<=numColls_;i++)
-		{
-			coltype = colType_[i-1];
-			colsize = colSize_[i-1];
-			colscale = colScale_[i-1];
-
-			switch (coltype)
-			{
-				case 3: //INTEGER
-					buffers_[i-1] = new signed int[maxRows_];
-					colsize = sizeof(signed int);
-
-					status = OCIDefineByPos(stmthpToQuery_, &(defines_[i-1]), connection_->errhp_, (ub4)i, 
-							(dvoid *)(signed int*)buffers_[i-1], (sb4)colsize, coltype, 
-							(dvoid *)&ind_[i-1], (ub2 *)0, (ub2 *)0,(ub4)OCI_DEFAULT);
-					if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-						return false;
-
-					break;
-
-			
-				case 2: //NUMBER
-										
-					buffers_[i-1] = (OCINumber *) new OCINumber[maxRows_]; //();								
-					status = OCIDefineByPos(stmthpToQuery_, &(defines_[i-1]), connection_->errhp_, (ub4)i, 
-							(dvoid *)buffers_[i-1], sizeof(OCINumber), SQLT_VNU, 
-							(dvoid *)&ind_[i-1], (ub2 *)0, (ub2 *)0,(ub4)OCI_DEFAULT);
-					if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-						return false;
-			
-					break;
-							
-
-				case 4: //FLOAT DOUBLE
-					
-					buffers_[i-1] = new double[maxRows_];
-					colsize = sizeof(double);
-					coltype = 4;
-				
-					status = SDO_OCIDefineByPos(stmthpToQuery_, &(defines_[i-1]), connection_->errhp_, (ub4)i, 
-							(dvoid *)(double*)buffers_[i-1], (sb4)colsize, coltype, 
-							(dvoid *)&ind_[i-1], (ub2 *)0, (ub2 *)0, (ub4)OCI_DEFAULT);
-					if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-						return false;
-				
-				
-					break;
-
-				case 96: //CHAR
-				case 9: //VARCHAR:
-				case 1: //VARCHAR2:
-					buffers_[i-1] = (char *) new char[maxRows_*(colsize+1)];
-			
-					status = SDO_OCIDefineByPos(stmthpToQuery_, &(defines_[i-1]), connection_->errhp_, (ub4)i, 
-							(dvoid *)buffers_[i-1], (sb4)(colsize+1), SQLT_STR, 
-							(dvoid *)&ind_[i-1], (ub2 *)0, (ub2 *)0,(ub4)OCI_DEFAULT);
-						if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-							return false;
-				
-					break;
-
-				case 12: //Date
-					buffers_[i-1] = (OCIDate *) new OCIDate[maxRows_]; //();								
-					status = OCIDefineByPos(stmthpToQuery_, &(defines_[i-1]), connection_->errhp_, (ub4)i, 
-							(dvoid *)buffers_[i-1], sizeof(OCIDate), SQLT_ODT, 
-							(dvoid *)&ind_[i-1], (ub2 *)0, (ub2 *)0,(ub4)OCI_DEFAULT);
-					if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-							return false;
-				
-					break;
-
-
-				case 108: //OBJECT SDO_GEOMETRY
-				
-					status = SDO_OCIObjectNew(connection_->envhp_, connection_->errhp_, connection_->svchp_,
-							OCI_TYPECODE_OBJECT, connection_->tdo_geometry_, (dvoid*)NULL, 
-							OCI_DURATION_SESSION, TRUE, 
-							(dvoid**)global_geom_obj_);
-					if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-							return false;
-					
-					defines_[i-1] = NULL;
-								
-					status = SDO_OCIDefineByPos(stmthpToQuery_, &(defines_[i-1]), connection_->errhp_, (ub4)i, 
-							(dvoid *)0, (sb4)0, SQLT_NTY, (dvoid *)&ind_[i-1],
-							(ub2 *)0, (ub2 *)0, (ub4)OCI_DEFAULT);
-					if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-							return false;
-					
-					status = OCIDefineObject(defines_[i-1], connection_->errhp_, connection_->tdo_geometry_, 
-							(dvoid **)global_geom_obj_, (ub4 *)0, 
-							(dvoid **)global_geom_ind_, (ub4 *)0);
-					if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-							return false;
-
-					break;
-
-				case 113 :	//SQLT_BLOB
-					
-					hasBlob_ = true;
-					lobBuffer_.push_back(NULL);
-					lobBuffer_[lobBuffer_.size()-1] = new unsigned char[maxBuflen_*maxRows_]; 
-					size = sizeof(unsigned char)*maxBuflen_;
-										
-					status = OCIDefineByPos (stmthpToQuery_, &(defines_[i-1]), connection_->errhp_, (ub4)i, 
-						(dvoid *)lobBuffer_[lobBuffer_.size()-1], size, SQLT_LBI, (void *)&ind_[i-1], (ub2 *)0, (ub2 *)0, 
-						(ub4)OCI_DEFAULT); 
-					if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-							return false;
-					
-					status = OCIDefineArrayOfStruct(defines_[i-1], connection_->errhp_, size, 0, 0, 0);
-					if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-						return false;
-					break;
-				default:
-					break;
-			
-			} //switch
-	
-		} //for
-	}//try
-
-	catch(...) 
-	{
-		return false;
-	}
-
-	return true;
-}	
-
-char* TeOCICursor::getFieldValue(int i)  //inicia em 1
-{ 
-	
-	int				tempInt;
-	double			tempDouble;
-	char			str[30];
-	unsigned int	size; 
-	string			tempDate;
-	sword			status;
-		
-	if(i < 1)
-		return (char*)0;
-
-	int coltype = colType_[i-1]; 
-	int colsize = colSize_[i-1]; 
-	
-	//OBS:	When the SQL use grouping functions (MAX, MIN, etc), the returned value always has
-	//		colscale equal to zero, even when it is double
-	int indica = ind_[i-1].sbind[row_Index_];
-
-	std::string format = "DD/MM/YYYY HH24:MI:SS";
-	size = format.size();
-
-	switch (coltype)
-	{
-		case 3: //INTEGER
-			if(indica == -1)
-				return "";
-
-			tempInt = *((int*)buffers_[i-1]+row_Index_);
-			fieldValue_ = Te2String(tempInt);
-			return ((char*)fieldValue_.c_str());
-			break;
-
-		case 2: //NUMBER
-			
-			if(indica == -1)
-				return "";
-			status = OCINumberToReal(connection_->errhp_, ((OCINumber *)buffers_[i-1]+row_Index_), 
-				(uword)sizeof(double), (dvoid *)&tempDouble);
-			if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-				return "";
-			
-			fieldValue_ = Te2String(tempDouble, 10);
-			return ((char*)fieldValue_.c_str());
-			break;
-			
-
-		case 4: //FLOAT DOUBLE
-				
-			if(indica == -1)
-				return "";
-			
-			tempDouble = *((const double*)buffers_[i-1]+row_Index_);
-			fieldValue_ = Te2String(tempDouble, 10);
-			return ((char*)fieldValue_.c_str());
-			break;
-
-		case 96: //CHAR
-		case 9: //VARCHAR:
-		case 1: //VARCHAR2:
-			
-			if(indica == -1)
-				return "";
-
-			fieldValue_ = ((char*)buffers_[i-1]+((colsize+1)*row_Index_));
-			fieldValue_ = StrClean((char*)fieldValue_.c_str());
-			return ((char*)fieldValue_.c_str());
-			break;
-
-		case 12: //Date
-			
-			if(indica == -1)
-				return "";
-
-			fieldValue_ = "";
-			//size = sizeof(OCIDate);
-													
-			status =  OCIDateToText(connection_->errhp_, ((OCIDate *)buffers_[i-1]+row_Index_), 
-				(unsigned char*)format.c_str(), format.size(), NULL, 0, &size, (unsigned char*)tempDate.c_str());
-			if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-				return "";
-			memcpy(str, tempDate.c_str(), size);
-			strncat((char*)fieldValue_.c_str(), str, size);
-
-			return ((char*)fieldValue_.c_str());
-			break;
-
-		case 108: //OBJECT SDO_GEOMETRY
-		default:
-			break;
-							
-	} //switch
-		
-	return (char*)"";
-}
-
-int TeOCICursor::getDimArraySize()
-{
-	int ndim=-1;
-
-	// Get the size of the elem info array
-    OCICollSize(connection_->envhp_, connection_->errhp_, 
-				(OCIColl *)(global_geom_obj_[row_Index_]->sdo_elem_info), &ndim);
-
-	return(ndim);
-}
-
-bool TeOCICursor::getDimElement(int i,int &elem)
-{
-	int				exists;
-	OCINumber		*oci_number;
-	double			el;
-
-
-	OCICollGetElem(connection_->envhp_, connection_->errhp_, 
-	   (OCIColl *)(global_geom_obj_[row_Index_]->sdo_elem_info), 
-	   (sb4)i-1, (boolean *)&exists, 
-	   (dvoid **)&oci_number, (dvoid **)0);
-
-	OCINumberToReal(connection_->errhp_, oci_number, (uword)sizeof(double),
-		(dvoid *)&el);
-	
-	elem = (int)el;
-	return true;
-}
-
-
-int TeOCICursor::getNumberOrdinates()
-{
-	int nOrds=-1;
-
-	/* Get the size of the ordinates_ array */
-    OCICollSize(connection_->envhp_, connection_->errhp_, 
-				(OCIColl *)(global_geom_obj_[row_Index_]->sdo_ordinates), &nOrds);
-
-	return(nOrds);
-}
-
-bool TeOCICursor::getCoordinates(int i, TeCoord2D& coord)
-{
-	int				exists;
-	OCINumber		*oci_number;
-	double			coor_x;
-	double			coor_y;
-
-	int pos = i;
-
-	OCICollGetElem(connection_->envhp_, connection_->errhp_, 
-	   (OCIColl *)(global_geom_obj_[row_Index_]->sdo_ordinates), 
-	   (sb4)(pos-1), (boolean *)&exists, 
-	   (dvoid **)&oci_number, (dvoid **)0);
-
-	OCINumberToReal(connection_->errhp_, oci_number, (uword)sizeof(double),
-		(dvoid *)&coor_x);
-	
-	pos++;
-
-	OCICollGetElem(connection_->envhp_, connection_->errhp_, 
-	   (OCIColl *)(global_geom_obj_[row_Index_]->sdo_ordinates),  
-	   (sb4)(pos-1), (boolean *)&exists, 
-	   (dvoid **)&oci_number, (dvoid **)0);
-
-	OCINumberToReal(connection_->errhp_, oci_number, (uword)sizeof(double),
-		(dvoid *)&coor_y);
-
-	coord.x(coor_x);
-	coord.y(coor_y);
-
-	return true;
-}
-
-
-bool TeOCICursor::getCoordinates(vector<TeCoord2D>& result)
-{
-	
-	OCIIter		*iterator;
-	dvoid		*elem;
-	OCIInd		*elemind ;
-	double		ordinate1, ordinate2; 
-	OCINumber	*aux1;
-	OCINumber	*aux2;
-	//boolean		eoc;
-	int			eoc;
-
-	sword status = OCIIterCreate(connection_->envhp_, connection_->errhp_, 
-		(OCIArray *)(global_geom_obj_[row_Index_]->sdo_ordinates), &iterator);
-	if (status != OCI_SUCCESS)
-		return false;
-	
-	/* Get the first and second element of the clients varray */
-	status = OCIIterNext(connection_->envhp_, connection_->errhp_, iterator, &elem,
-		(dvoid **) &elemind, (boolean *)&eoc);
-	if (eoc || status != OCI_SUCCESS)
-	{
-		OCIIterDelete(connection_->envhp_, connection_->errhp_, &iterator);
-		return false;
-	}
-
-	aux1 = (OCINumber *)elem;
-	OCINumberToReal(connection_->errhp_, (OCINumber *)aux1, (uword)sizeof(double),
-					(dvoid *)&ordinate1);
-
-	status = OCIIterNext(connection_->envhp_, connection_->errhp_, iterator, &elem,
-				(dvoid **)&elemind, (boolean *)&eoc);
-	if (eoc || status != OCI_SUCCESS)
-	{
-		OCIIterDelete(connection_->envhp_, connection_->errhp_, &iterator);
-		return false;
-	}
-
-	aux2 = (OCINumber *)elem;
-	OCINumberToReal(connection_->errhp_, (OCINumber *) aux2, (uword)sizeof(double),
-					(dvoid *)&ordinate2);
-
-	TeCoord2D coord(ordinate1, ordinate2);
-	result.push_back (coord);
-	
-	while (!eoc && status == OCI_SUCCESS)
-	{
-		status = OCIIterNext(connection_->envhp_, connection_->errhp_, iterator, &elem,
-				(dvoid **)&elemind, (boolean *)&eoc);
-		if (status != OCI_SUCCESS)
-		{
-			OCIIterDelete(connection_->envhp_, connection_->errhp_, &iterator);
-			return false;
-		}
-
-		aux1 = (OCINumber *)elem;
-		OCINumberToReal(connection_->errhp_, (OCINumber *)aux1, (uword)sizeof(double),
-					(dvoid *)&ordinate1);
-
-		status = OCIIterNext(connection_->envhp_, connection_->errhp_, iterator, &elem,
-				(dvoid **)&elemind, (boolean *)&eoc);
-		if (status != OCI_SUCCESS)
-		{
-			OCIIterDelete(connection_->envhp_, connection_->errhp_, &iterator);
-			return false;
-		}
-
-		aux2 = (OCINumber *)elem;
-		OCINumberToReal(connection_->errhp_, (OCINumber *) aux2, (uword)sizeof(double),
-					(dvoid *)&ordinate2);
-
-		TeCoord2D coord(ordinate1, ordinate2);
-		result.push_back (coord);
-	}
-
-	/* destroy the iterator */
-	status = OCIIterDelete(connection_->envhp_, connection_->errhp_, &iterator);
-	return true;
-}
-
-
-int
-TeOCICursor::getGeometryType()
-{
-	int gtype=-1;
-
-	OCINumberToInt(connection_->errhp_, &(global_geom_obj_[row_Index_]->sdo_gtype),
-				 (uword)sizeof(int), OCI_NUMBER_SIGNED,
-				 (dvoid *)&gtype);
-
-	return gtype;
-}
-
-int
-TeOCICursor::getSpatialReferenceId()
-{
-	int srid=-1;
-
-	OCINumberToInt(connection_->errhp_, &(global_geom_obj_[row_Index_]->sdo_srid),
-				 (uword)sizeof(int), OCI_NUMBER_SIGNED,
-				 (dvoid *)&srid);
-
-	return srid;
-}
-
-bool
-TeOCICursor::getXYZcoord(double& x, double& y)
-{
-	if (global_geom_ind_[row_Index_]->sdo_point._atomic == OCI_IND_NOTNULL)
-	{
-		if (global_geom_ind_[row_Index_]->sdo_point.x == OCI_IND_NOTNULL)
-		{
-			sword status = OCINumberToReal(connection_->errhp_, &(global_geom_obj_[row_Index_]->sdo_point.x), 
-										 (uword)sizeof(double),(dvoid *)&x);
-
-			if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-				return false;
-		}
-
-		if (global_geom_ind_[row_Index_]->sdo_point.y == OCI_IND_NOTNULL)
-		{
-			sword status = OCINumberToReal(connection_->errhp_, &(global_geom_obj_[row_Index_]->sdo_point.y), 
-										 (uword)sizeof(double),(dvoid *)&y);
-			if ((status != OCI_SUCCESS) && (status!=OCI_SUCCESS_WITH_INFO))
-				return false;
-		}
-		return true;
-	}
-	else
-		return false;
-}
-
-bool
-TeOCICursor::readBlob(unsigned char* buffer, unsigned int& bufsize, unsigned int& blobCol)
-{
-	string blobColS = colName_[blobCol];
-	return(readBlob(buffer, bufsize, blobColS));
-}
-
-bool
-TeOCICursor::readBlob(unsigned char* buffer, unsigned int& bufsize, const string& blobCol)
-{
-	int blobIndex = -1;
-	if(colBlobName_.size()==1)
-		blobIndex=0;
-	else
-	{
-		for(unsigned int j=0; j<colBlobName_.size(); j++)
-		{
-			if(TeStringCompare(blobCol, colBlobName_[j]))
-			{
-				blobIndex = j;
-				break;
-			}
-		}
-	}
-
-	if(blobIndex<0)
-		return false;
-
-	int index = numColls_-(colBlobName_.size()-(blobIndex+1)); 
-	
-	//bufsize em bytes
-	bufsize = atoi(getFieldValue(index))*sizeof(unsigned char);
-	//buffer = new unsigned char[bufsize];
-	memcpy(buffer,&(lobBuffer_[blobIndex][row_Index_*maxBuflen_]),bufsize);
-	return true;
-}
-
-
-bool
-TeOCICursor::readBlob(double *buffer, unsigned int& bufsize)
-{
-	//bufsize em double
-	//size em bytes
-	int size = bufsize*sizeof(double);
-	memcpy(buffer,&(lobBuffer_[0][row_Index_*maxBuflen_]),size);
-	return true;
-}
-
-bool
-TeOCICursor::readBlob(double **buffer)
-{
-	*buffer = (double*)&(lobBuffer_[0][row_Index_*maxBuflen_]);
-	return true;
-}
-
-unsigned int 
-TeOCICursor::getBlobSize(const string& blobCol)
-{
-	int blobIndex = -1;
-	if(colBlobName_.empty())
-		return 0;
-	if(colBlobName_.size()==1)
-		blobIndex=0;
-	else
-	{
-		for(unsigned int j=0; j<colBlobName_.size(); j++)
-		{
-			if(TeStringCompare(blobCol, colBlobName_[j]))
-			{
-				blobIndex = j;
-				break;
-			}
-		}
-	}
-
-	if(blobIndex<0)
-		return 0;
-
-	int index = numColls_-(colBlobName_.size()-(blobIndex+1)); 
-	return (atoi(getFieldValue(index))*sizeof(unsigned char));
-}
-
diff --git a/src/terralib/drivers/Oracle/TeOCICursor.h b/src/terralib/drivers/Oracle/TeOCICursor.h
deleted file mode 100644
index 20d798d..0000000
--- a/src/terralib/drivers/Oracle/TeOCICursor.h
+++ /dev/null
@@ -1,300 +0,0 @@
-/************************************************************************************
-TerraLib - a library for developing GIS applications.
-Copyright � 2001-2007 INPE and Tecgraf/PUC-Rio.
-
-This code is part of the TerraLib library.
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library.
-
-The authors reassure the license terms regarding the warranties.
-They specifically disclaim any warranties, including, but not limited to,
-the implied warranties of merchantability and fitness for a particular purpose.
-The library provided hereunder is on an "as is" basis, and the authors have no
-obligation to provide maintenance, support, updates, enhancements, or modifications.
-In no event shall INPE and Tecgraf / PUC-Rio be held liable to any party for direct,
-indirect, special, incidental, or consequential damages arising out of the use
-of this library and its documentation.
-*************************************************************************************/
-/*! \file TeOCICursor.h
-	\brief This file contains the class OCICursor that represents a concept of record set to ORACLE DBMS using OCI (Oracle Call Interface) library. 
-*/
-
-#ifndef OCICursor_H
-#define OCICursor_H
-
-#include <TeOCIConnect.h>
-#include <vector>
-#include <TeCoord2D.h>
-
-#include "TeOracleDefines.h"
-
-using namespace std;
-
-#define TYPE_OWNER				"MDSYS"
-#define SDO_ORDINATE_ARRAY      TYPE_OWNER".SDO_ORDINATE_ARRAY"
-#define SDO_ELEM_INFO_ARRAY     TYPE_OWNER".SDO_ELEM_INFO_ARRAY"
-#define SDO_GEOMETRY			TYPE_OWNER".SDO_GEOMETRY"
-
-//! Number of rows to be fetched into memory from database server
-#define MAX_ROWS				500
-
-//! Max size to be allocated in the client side to store blob data (in bytes)
-#define MAX_BLOB_LENGTH			5000000 //5 MegaBytes (the max blob length is 4 Gigabytes)
-
-//! Structure to represent a point as the SDO_POINT type of the Oracle Spatial 
-struct TLORACLE_DLL sdo_point_type
-{
-   OCINumber x;
-   OCINumber y;
-   OCINumber z;
-};
-
-typedef struct sdo_point_type sdo_point_type;
-
-//! Structure to represent a geometry as the SDO_GEOMETRY type of the Oracle Spatial 
-struct TLORACLE_DLL sdo_geometry
-{
-   OCINumber       sdo_gtype;
-   OCINumber       sdo_srid;
-   sdo_point_type  sdo_point;
-   OCIArray        *sdo_elem_info;
-   OCIArray        *sdo_ordinates;
-};
-
-typedef struct sdo_geometry SDO_GEOMETRY_TYPE;
-
-//! Structure to represent a point indicator as the SDO_POINT type of the Oracle Spatial 
-struct TLORACLE_DLL sdo_point_type_ind
-{
-   OCIInd _atomic;
-   OCIInd x;
-   OCIInd y;
-   OCIInd z;
-};
-
-typedef struct sdo_point_type_ind sdo_point_type_ind;
-
-//! Structure to represent a geometry indicator as the SDO_GEOMETRY type of the Oracle Spatial 
-struct TLORACLE_DLL SDO_GEOMETRY_ind
-{
-   OCIInd                    _atomic;
-   OCIInd                    sdo_gtype;
-   OCIInd                    sdo_srid;
-   struct sdo_point_type_ind sdo_point;
-   OCIInd                    sdo_elem_info;
-   OCIInd                    sdo_ordinates;
-};
-
-typedef struct SDO_GEOMETRY_ind SDO_GEOMETRY_ind;
-
-//! Structure to handle OCI data types
-struct TLORACLE_DLL sb2ind
-{
-	sb2		sbind[MAX_ROWS];
-};
-typedef struct sb2ind	indarray;
-
-/*! \class TeOCICursor
-	\brief A class that implements a concept of record set to a ORACLE DBMS.
-
-	This class contains attributes and methods to handle a record set 
-	to ORACLE DBMS using OCI (Oracle Call Interface) library.
-
-	A record set is generated by a query on the data in the database server.
-	The class OCICursor is used by the drivers TeOCIOracle and TeOCIOracleSpatial that
-	are responsible for the link between ORACLE DBMS and TerraLib.
-	\sa 
-	TeOCIConnect
-*/
-class TLORACLE_DLL TeOCICursor
-{
-protected:
-	TeOCIConnection*	connection_;		//!< A pointer to a opened connection
-	OCIStmt*			stmthpToQuery_;		//!< OCI statement handle to query
-	OCIDescribe*		dschp_;				//!< OCI environment describe handle - describes objects
-	bool				isOpen_;			//!< indicates if the cursor is opened or not (if the stmthpToQuery was located)
-	string				errorMessage_;		//!< error message returned by the ORACLE DBMS  
-				
-	/** @name Buffers to store data in memory - client side
-	*/
-	//@{ 	
-	vector<void *>			buffers_;	//!< buffer to store simple data type (varchar, number, date, etc)
-	vector <indarray>		ind_;		//!< buffer to store null indicator
-				
-	SDO_GEOMETRY_TYPE*		global_geom_obj_[MAX_ROWS];	//!< buffer to store spatial object  
-	SDO_GEOMETRY_ind*		global_geom_ind_[MAX_ROWS];	//!< buffer to store spatial object indicator  
-
-	vector<unsigned char*>	lobBuffer_;			//! vector of buffers to store blob
-	bool					hasBlob_;			//! Flag that indicates if the cursor has blob data type
-	unsigned long			maxBuflen_;			//! Max memory the will be allocated to store blob data
-    int						maxRows_;			//! Number of rows to be fetched into memory from database server
-
-	vector<OCIDefine *>		defines_;		//!< OCIDefine objects to link buffers in client side and the statement handle
-	OCIArray*				ordinates_;		//!< store the ordinates to be used in a query (bind)
-	//@}
-
-	string					fieldValue_;	//!< temporary variable 
-
-	/** @name Information to handle the records or rows stored in memory (buffers) 
-	*/
-	//@{ 	
-	short				row_Index_;		//!< relative current row index in the memory buffer
-	int					row_Cur_;		//!< absolute current row index in the memory buffer
-	int					rows_Fetched_;	//!< number of rows fetched from database
-	int					rows_Mem_;		//!< number of rows on memory buffer - client side
-	bool				last_Row_;		//!< if the current row is the last
-	//@}
-	
-	/** @name Information about columns of the record set in memory
-	*/
-	//@{ 	
-	int					numColls_;  //!< number of columns
-	vector<string>		colName_;	//!< name of the columns
-	vector<int>			colType_;	//!< type of the columns
-	vector<int>			colSize_;	//!< size of the columns
-	vector<int>			colScale_;  //!< scale of the columns
-	vector<string>		colBlobName_; //!< name of the BLOB columns only
-	//@}
-
-public:
-	
-	//! Constructor 
-	TeOCICursor(TeOCIConnection* conn, const unsigned long& maxBlobSize=0, const unsigned long& maxRowNum=0 );
-
-	//! Destructor
-	~TeOCICursor() { close(); }
-
-	//! Opens the cursor locating memory and initializing the enviroment 
-	bool open();
-		
-	//! Returns the error message 
-	string	getErrorMessage() { return errorMessage_;}
-
-	//! Checks if the cursor is opened
-	bool isOpen()	{ return isOpen_; }
-
-	//! Returns the connection to the database server  
-	TeOCIConnection*	conn()		{ return connection_; }
-
-	//! Returns the current row index 
-	int	currentRow() { return row_Cur_; }
-
-	//! Closes the cursor
-	void close();
-	
-	//! Defines the OCI handles by position
-	void defineByPos(int pos, void* value, int size, void* indicator, int type);
-
-	//! Executes the SQL statement set previously 
-	bool		execute();
-
-	//! Fetchs a number of rows 
-	bool		fetch(int rows);
-
-	//! Executes a query defined by a SQL statement that returns a record set as result
-	bool		query(const string& query);
-
-	//! Executes a query defined by a SQL statement that uses SDO_GEOMETRY type and returns a record set as result
-	bool		querySDO(const string& query);
-
-	//! Moves to the first row in the record set 
-	bool		moveFirst();
-
-	//! Moves to the next row in the record set
-	bool		moveNext();
-
-	//! Moves to a specific position in the record set
-	bool		moveTo(int pos);
-
-	//! Moves to the last row in the record set
-	bool		moveLast();
-	
-	/** @name Methods to return information about the columns and rows in the record set
-	*/
-	//@{ 
-	//! Returns the column type (SQLT) of a specific column
-	int			colType (int colnumber);
-	//! Returns the column name of a specific column
-	string		colName (int colnumber);
-	//! Returns the column size of a specific column
-	int			colSize (int colnumber);
-	//! Returns the column scale (number of digits after decimal point) of a specific column
-	int			colScale (int colnumber);
-	//! Returns the columns number in the client side
-	int			numCol(void);
-	//! Loads all column descriptions (name, type, size and scale)
-	void		loadCollDescription (); 
-	//! Returns the rows number in the client side
-	int			numRows(void);
-	//@}
-
-	//! Appends the new value to the internal ordinate vector
-	bool		appendOrdinates(const double& val);
-	
-	//! Binds the internal ordinate array with the SQL statement
-	bool		bindOrdinates();
-	
-	//! Sets and prepares the SQL statement to be executed
-	bool		prepare(const string& stmt);
-	
-	//! Returns the query type based on the SQL statement set previously
-	int			queryType(); 
-
-	//! Locates memory to store the record set in the client side
-	bool		allocateCursor(void);
-
-	//! Gets the i-th field value from record set
-	char*		getFieldValue(int i);
-
-	/** @name Methods to deal with SDO_GEOMETRY, SDO_ELEM_INFO and SDO_ORDINATES types of the Oracle Spatial
-	*/
-	//@{ 	
-	//! Gets the size of the SDO_ELEM_INFO array of the record set current row  
-	int			getDimArraySize();
-	//! Gets the i-th element of the SDO_ELEM_INFO array of the record set current row 
-	bool		getDimElement(int i,int &elem);
-	//! Gets the number of ordinates in the SDO_ORDINATES array of the record set current row 
-	int			getNumberOrdinates(void);
-	//! Gets the i-th coordinate of the SDO_ORDINATES array of the record set current row 
-	bool		getCoordinates(int i,TeCoord2D& coord);
-	//! Gets all coordinates of the SDO_ORDINATES array of the record set current row 
-	bool		getCoordinates(vector<TeCoord2D>& result);
-	//! Gets the geometry type of the SDO_GEOMETRY type of the record set current row 
-	int			getGeometryType();
-	//! Gets the spatial reference of the SDO_GEOMETRY type of the record set current row 
-	int			getSpatialReferenceId();
-	//! Gets a coordinate (x and y) of the SDO_POINT type of the record set current row 
-	bool		getXYZcoord (double& x, double& y);
-	//@}
-
-	//! Clears the memory and structures located by the record set
-	void		freeResult(void);
-
-	/** @name Methods to deal with long binary (blob) type
-	*/
-	//@{ 	
-	//! Reads a long binary (blob) column (blobCol) from database server and returns it as a unsigned char vector
-	bool		readBlob(unsigned char* buffer, unsigned int& bufsize, unsigned int& blobCol);
-	//! Reads a long binary (blob) column (blobCol) from database server and returns it as a unsigned char vector
-	bool		readBlob(unsigned char* buffer, unsigned int& bufsize, const string& blobCol);
-	//! Reads a long binary (blob) from database server and returns it as a double vector
-	bool		readBlob(double *buffer, unsigned int& bufsize);
-	//! Gets a pointer to buffer of blob
-	bool		readBlob(double **buffer);
-	//! Returns the size (in unsigend int) of a specific blob column
-	unsigned int	getBlobSize(const string& blobCol);
-	//@}
-
-protected:
-	//! Checks the error associated to error OCI handle
-	bool		checkError(sword status);
-};
-
-#endif 
-
-
diff --git a/src/terralib/drivers/Oracle/TeOCIOracle.cpp b/src/terralib/drivers/Oracle/TeOCIOracle.cpp
deleted file mode 100644
index 8903676..0000000
--- a/src/terralib/drivers/Oracle/TeOCIOracle.cpp
+++ /dev/null
@@ -1,3589 +0,0 @@
-/************************************************************************************
-TerraLib - a library for developing GIS applications.
-Copyright � 2001-2007 INPE and Tecgraf/PUC-Rio.
-
-This code is part of the TerraLib library.
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library.
-
-The authors reassure the license terms regarding the warranties.
-They specifically disclaim any warranties, including, but not limited to,
-the implied warranties of merchantability and fitness for a particular purpose.
-The library provided hereunder is on an "as is" basis, and the authors have no
-obligation to provide maintenance, support, updates, enhancements, or modifications.
-In no event shall INPE and Tecgraf / PUC-Rio be held liable to any party for direct,
-indirect, special, incidental, or consequential damages arising out of the use
-of this library and its documentation.
-*************************************************************************************/
-
-#include "TeOCIOracle.h"
-#include "TeProject.h"
-
-#include <sys/stat.h>
-
-bool	
-TeOCIOracle::createSequence(const string &tableName)
-{
-	string nameSeq = getNameSequence(tableName);
-	
-	string seq = " CREATE SEQUENCE " + nameSeq;
-	seq += " START WITH 1 INCREMENT BY 1 ORDER ";
-	if (!execute(seq))
-	{	
-		errorMessage_ = "Error creating sequence to table " + tableName + " !";
-		return false;
-	}
-
-	return true;
-}
-
-bool
-TeOCIOracle::createAutoIncrementTrigger(const string &tableName, const string &fieldName)
-{
-	string nameTri = getNameTrigger(tableName);
-	string nameSeq = getNameSequence(tableName);
-
-	string tri;
-	tri = "CREATE TRIGGER " + nameTri; 
-	tri += " BEFORE INSERT ON "+tableName; 
-	tri += " for each row";
-	tri += " begin";
-	tri += " select "+nameSeq+".NEXTVAL";
-	tri += " into :new."+fieldName;
-	tri += " from dual;";
-	tri += " end;";
-
-	if(!execute(tri))
-	{	
-		errorMessage_ = "Error creating trigger to table " + tableName + " !";
-		return false;
-	}
-	return true;
-}
-
-string
-TeOCIOracle::getNameSequence(const string &tableName)
-{
-	string name;
-	if(tableName.size()>21)
-		name = tableName.substr(0,20) + "_seq";
-	else
-		name = tableName + "_seq";
-
-	return name;
-}
-
-string
-TeOCIOracle::getNameTrigger(const string &tableName)
-{
-	string name;
-	if(tableName.size()>21)
-		name = tableName.substr(0,20) + "_tri";
-	else
-		name = tableName + "_tri";
-
-	return name;
-}
-
-string  
-TeOCIOracle::escapeSequence (const string& from)
-{
-	int  fa = 0;
-    string to = from;
-    to.insert(0, " ");
-    string::iterator it = to.begin();
-    while(it != to.end())
-    {
-            int f = to.find("'", fa);
-            if(f > fa)
-            {
-                    to.insert(f, "'");
-                    fa = f + 2;
-            }
-            else
-                    break;
-    }
-    to = to.substr(1, to.size() - 1);
-    return to;
-}
-
-TeOCIOracle::TeOCIOracle() 
-{
-	connection_ = new TeOCIConnection();  
-	dbmsName_ = "OracleOCI";
-	sequenceCont_ = -1;
-	sequenceName_ = "";
-}
-
-TeOCIOracle::~TeOCIOracle() 
-{
-	if (connection_)
-		delete (connection_); //disconnect
-	connection_ = NULL;
-}
-
-bool TeOCIOracle::beginTransaction()
-{
-	if(!connection_)
-		return false;
-	return (connection_->transStart());
-}
-
-bool TeOCIOracle::commitTransaction()
-{
-	if(!connection_)
-		return false;
-	return (connection_->transCommit());
-}
-
-bool TeOCIOracle::rollbackTransaction()
-{
-	if(!connection_)
-		return false;
-	return (connection_->transRollback());
-}
-
-bool 
-TeOCIOracle::newDatabase(const string& database, const string& user, const string& password, const string& host, const int& port, bool terralibModel, const std::string& characterSet) 
-{ 
-	if (!connect(host,user,password,database,port))
-       return false;
-    if (terralibModel)
-    {
-        //create conceptual model
-        if(!this->createConceptualModel())  
-			return false;
-    }
-    return true;
-}
-
-bool
-TeOCIOracle::connect(const string& host, const string& user, const string& password, const string& database, int port)
-{
-	if(connection_ == NULL || connection_->isConnected())
-	{ 
-		delete (connection_);
-		connection_ = new TeOCIConnection();
-	}
-
-	isConnected_ = false;
-	if (connection_->connect(host.c_str(),user.c_str(),password.c_str()))
-	{
-		isConnected_ = true;
-		host_ = host;
-		user_ = user;
-		password_ = password;
-		database_ = database;
-		portNumber_ = port;
-		return true;
-	}
-	else
-	{
-		isConnected_ = false;
-		errorMessage_ = "Error connecting to database server!";
-		delete (connection_); //disconect
-		connection_ = NULL;
-		return false;
-	}
-}
-
-void
-TeOCIOracle::close() 
-{
-	clear();
-	connection_->disconnect();
-	isConnected_ = false;
-}
-
-bool 
-TeOCIOracle::listTables(vector<string>& tableList)
-{
-	tableList.clear();
-	TeOCIOraclePortal *ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string exist = " SELECT table_name FROM all_tables WHERE ";
-	exist += " OWNER = '" + TeConvertToUpperCase(user_) + "'";
-
-	if(!ocip->query(exist))
-	{
-		delete ocip;
-		return false;
-	}
-
-	while(ocip->fetchRow())
-		tableList.push_back (ocip->getData(0));
-			
-	delete ocip;
-	return true;
-}
-
-
-bool 
-TeOCIOracle::tableExist(const string& table)
-{
-	bool	status;
-	TeOCIOraclePortal *ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string exist = " SELECT table_name FROM all_tables WHERE";
-	exist += " TABLE_NAME = '" + TeConvertToUpperCase(table) + "'";
-	exist += " AND OWNER = '" + TeConvertToUpperCase(user_) + "'";
-
-	if(!ocip->query(exist))
-	{
-		delete ocip;
-		return false;
-	}
-
-	if(ocip->fetchRow())
-		status = true;
-	else
-		status = false;
-
-	delete ocip;
-	return (status);
-}
-
-bool 
-TeOCIOracle::viewExist(const string& view)
-{
-	bool	status;
-	TeOCIOraclePortal *ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string exist = " SELECT view_name FROM user_views WHERE";
-	exist += " VIEW_NAME = '" + TeConvertToUpperCase(view) + "'";
-
-	if(!ocip->query(exist))
-	{
-		delete ocip;
-		return false;
-	}
-
-	if(ocip->fetchRow())
-		status = true;
-	else
-		status = false;
-
-	delete ocip;
-	return (status);
-}
-
-bool 
-TeOCIOracle::columnExist(const string& table, const string& column, TeAttribute& attr)
-{
-	bool	status = false;
-	TeOCIOraclePortal *ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string exist = " SELECT DATA_TYPE, DATA_LENGTH, DATA_SCALE FROM ALL_TAB_COLUMNS WHERE";
-	exist += " TABLE_NAME = '" + TeConvertToUpperCase(table) + "'";
-	exist += " AND COLUMN_NAME = '" + TeConvertToUpperCase(column) + "'";
-	exist += " AND OWNER = '" + TeConvertToUpperCase(user_) + "'";
-
-	if(!ocip->query(exist))
-	{
-		delete ocip;
-		return false;
-	}
-	
-	if(ocip->fetchRow())
-	{	
-		attr.rep_.name_ = column;
-		
-		string	dataType = string(ocip->getData(0)); 
-		int		dataLength = atoi(ocip->getData(1)); 
-		int		dataScale = atoi(ocip->getData(2));
-		bool    number = false;
-		
-		if(dataType=="VARCHAR2")
-		{
-			attr.rep_.type_ = TeSTRING;
-			attr.rep_.numChar_ = dataLength;
-		}
-		else if (dataType=="BLOB")
-		{
-			attr.rep_.type_ = TeBLOB;
-			attr.rep_.numChar_ = dataLength;
-		}
-		else if (dataType=="NUMBER")
-		{
-			number = true;
-		}
-		else if (dataType=="SDO_GEOMETRY")
-		{
-			attr.rep_.type_ = TeOBJECT;
-			attr.rep_.numChar_ = dataLength;
-		}
-		else if (dataType== "CHAR")
-		{	
-			attr.rep_.type_ = TeCHARACTER;
-			attr.rep_.numChar_ = dataLength;
-		}
-		else if (dataType=="DATE")
-		{
-			attr.rep_.type_ = TeDATETIME;
-		}
-		else
-		{
-			attr.rep_.type_ = TeSTRING;
-			attr.rep_.numChar_ = dataLength;
-		}
-
-		if(number)
-		{
-			if(dataScale > 0)
-				attr.rep_.type_ = TeREAL;
-			else
-				attr.rep_.type_ = TeINT;
-		}
-		status = true;
-	}
-	
-	delete ocip;
-	return (status);
-}
-
-bool
-TeOCIOracle::createTable(const string& table, TeAttributeList &attr)
-{
-	short	cont=0;
-	string pkeys ="";
-	bool	hasAutoNumber=false;
-	string	fieldName="";
-
-	TeAttributeList::iterator it = attr.begin();
-	string tablec;
-	tablec = "CREATE TABLE " + table +" (";
-	
-	while ( it != attr.end())
-	{
-		if (cont)
-			tablec += ", ";
-			
-		switch ((*it).rep_.type_)
-		{
-			case TeSTRING:
-				if((*it).rep_.numChar_ > 0)
-				{
-					tablec += (*it).rep_.name_ + " VARCHAR2(" + Te2String((*it).rep_.numChar_) + ")";
-				}
-				else
-				{
-					tablec += (*it).rep_.name_ + " VARCHAR2(4000)";
-				}
-			break;
-			
-			case TeREAL:
-				if((*it).rep_.decimals_>0)
-					tablec += (*it).rep_.name_ +" NUMBER(*,"+ Te2String((*it).rep_.decimals_) +") ";
-				else
-					tablec += (*it).rep_.name_ +" NUMBER(*,15) ";
-			break;
-			
-			case TeINT:
-			case TeUNSIGNEDINT:
-				tablec += (*it).rep_.name_ + " NUMBER(32) ";
-			break;
-
-			case TeDATETIME:
-				tablec += (*it).rep_.name_ + " DATE ";
-			break;
-
-			case TeCHARACTER:
-				tablec += (*it).rep_.name_ + " CHAR ";
-			break;
-
-			case TeBOOLEAN:
-				tablec += (*it).rep_.name_ + " NUMBER(1) ";
-			break;
-
-			case TeBLOB:
-				tablec += (*it).rep_.name_ + " BLOB ";
-			break;
-
-			case TePOINTTYPE:
-			case TePOINTSETTYPE:
-			case TeNODETYPE:
-			case TeNODESETTYPE:
-				tablec += " x		NUMBER(*,15), ";
-				tablec += " y		NUMBER(*,15) ";
-				++it;
-				cont++;
-				continue;
-
-			case TeLINE2DTYPE:
-			case TeLINESETTYPE:
-				tablec += " num_coords NUMBER(32) NOT NULL, ";
-				tablec += " lower_x NUMBER(*,15) NOT NULL, ";
-				tablec += " lower_y NUMBER(*,15) NOT NULL, ";
-				tablec += " upper_x NUMBER(*,15) NOT NULL, ";
-				tablec += " upper_y NUMBER(*,15) NOT NULL, ";
-				tablec += " ext_max NUMBER(*,15) NOT NULL, ";
-				tablec += " spatial_data BLOB ";
-				++it;
-				cont++;
-				continue;
-
-			case TePOLYGONTYPE:
-			case TePOLYGONSETTYPE:
-				tablec += " num_coords NUMBER(32) NOT NULL,";
-				tablec += " num_holes  NUMBER(32) NOT NULL,";
-				tablec += " parent_id  NUMBER(32) NOT NULL,";
-				tablec += " lower_x    NUMBER(*,15) NOT NULL,";
-				tablec += " lower_y    NUMBER(*,15) NOT NULL,";
-				tablec += " upper_x    NUMBER(*,15) NOT NULL,";
-				tablec += " upper_y    NUMBER(*,15) NOT NULL,";
-				tablec += " ext_max    NUMBER(*,15) NOT NULL,";
-				tablec += " spatial_data BLOB ";
-				++it;
-				cont++;
-				continue;
-
-			case TeCELLTYPE:
-			case TeCELLSETTYPE:
-				tablec += " col_number	NUMBER(32) NOT NULL,";
-				tablec += " row_number	NUMBER(32) NOT NULL,";
-				tablec += " lower_x		NUMBER(*,15),";
-				tablec += " lower_y		NUMBER(*,15),";
-				tablec += " upper_x		NUMBER(*,15),";
-				tablec += " upper_y		NUMBER(*,15) ";
-				++it;
-				cont++;
-				continue;					
-
-			case TeRASTERTYPE:
-				tablec += " band_id NUMBER(32) NOT NULL, ";
-				tablec += " resolution_factor NUMBER(32), ";
-				tablec += " subband NUMBER(32),";
-				tablec += " lower_x NUMBER(*,15) DEFAULT 0.0, ";
-				tablec += " lower_y NUMBER(*,15) DEFAULT 0.0, ";
-				tablec += " upper_x NUMBER(*,15) DEFAULT 0.0, ";
-				tablec += " upper_y NUMBER(*,15) DEFAULT 0.0, ";							
-				tablec += " block_size NUMBER(32), ";
-				tablec += " spatial_data BLOB ";
-				++it;
-				cont++;
-				continue;
-
-			case TeTEXTTYPE:
-			case TeTEXTSETTYPE:
-			default:
-				tablec += (*it).rep_.name_ + " VARCHAR2(255) ";
-			break;
-		}
-
-		//default values
-		if(!((*it).rep_.defaultValue_.empty()))
-			tablec += " DEFAULT '" + (*it).rep_.defaultValue_ + "' ";
-
-		//not null values
-		if(!((*it).rep_.null_))
-			tablec += " NOT NULL ";
-
-		// auto number
-		if((*it).rep_.isAutoNumber_ && ((*it).rep_.type_==TeINT || (*it).rep_.type_==TeUNSIGNEDINT))
-		{
-			hasAutoNumber=true;
-			fieldName=(*it).rep_.name_;
-		}
-
-		// check if column is part of primary key
-		if ((*it).rep_.isPrimaryKey_ && (*it).rep_.type_ != TeBLOB )
-		{
-			if (!pkeys.empty())
-				pkeys += ", ";
-			pkeys += (*it).rep_.name_;
-		}
-
-		++it;
-		cont++;
-	}
-
-	if(!pkeys.empty())
-		tablec += ", PRIMARY KEY (" + pkeys + ") ";
-
-	tablec += ")";
-
-	if(!execute(tablec))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error creating table " + table;
-
-		return false;
-	}
-
-	if(hasAutoNumber)
-	{
-		string dropSql = " DROP TRIGGER "+ getNameTrigger(table); 
-		execute(dropSql);
-		dropSql = " DROP SEQUENCE "+ getNameSequence(table); 
-		execute(dropSql);
-
-		if(!createSequence(table))
-		{
-			deleteTable(table);
-			return false;
-		}
-		
-		if(!createAutoIncrementTrigger(table,fieldName))
-		{
-			deleteTable(table);
-			string sql= "DROP SEQUENCE "+ getNameSequence(table);
-			execute(sql); 
-			return false;
-		}
-	}
-	return true;
-}
-
-bool 
-TeOCIOracle::addColumn (const string& table, TeAttributeRep &rep)
-{
-	if(!tableExist(table))
-		return false;
-
-	string field = TeGetExtension(rep.name_.c_str());
-	if(field.empty())
-		field = rep.name_;
-
-	string tab;
-	tab = " ALTER TABLE " + table + " ADD ( ";
-	tab += field + "  ";
-	
-	switch (rep.type_)
-	{
-		case TeSTRING:
-			if(rep.numChar_ > 0)
-			{
-				tab += "VARCHAR2(" + Te2String(rep.numChar_) + ") ";
-			}
-			else
-			{
-				tab += "VARCHAR2(4000) ";
-			}
-			break;
-			
-		case TeREAL:
-			tab += "NUMBER(*,38)";	
-			break;
-			
-		case TeINT:
-			tab += "NUMBER(32)";
-			break;
-
-		case TeDATETIME:
-			tab += "DATE";
-			break;
-
-		case TeCHARACTER:
-			tab += "CHAR";
-			break;
-
-		case TeBOOLEAN:
-			tab += "NUMBER(1)";
-		break;
-		
-		case TeBLOB:
-			tab += "BLOB";
-			break;
-		
-		default:
-			tab += "VARCHAR2(" + Te2String(rep.numChar_) + ") ";
-			break;
-	}
-
-	tab += " ) ";
-
-	if(!connection_->execute(tab))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error inserting a column to table " + table + " !";
-		return false;
-	}
-
-	alterTableInfoInMemory(table);
-	return true;
-}
-
-bool
-TeOCIOracle::deleteTable (const string& table)
-{
-	int f =	table.find ("te_collection");
-
-	if( table=="te_theme" ||
-		table=="te_layer" ||
-		table=="te_representation" ||
-		table=="te_tables_relation" ||
-		table=="te_layer_table" ||
-		table=="te_raster_metadata" ||
-		table=="te_projection" ||
-		table=="te_view" ||
-		table=="te_chart_params" ||
-		table=="te_legend" ||
-		table=="te_visual" ||
-		f == 0)
-	{
-		errorMessage_ = "N�o � poss�vel deletar tabelas do modelo!";
-		return false;
-	}
-	
-	if(tableExist(table))
-	{
-		std::string del = "DROP TABLE " + table;
-		if(!execute(del))
-			return false;
-	}
-	else if(viewExist(table))
-	{
-		std::string delView = "DROP VIEW " + table;
-		if(!execute(delView))
-			return false;
-	}
-
-	string seq = "DROP SEQUENCE " + getNameSequence(table);
-	if(!execute(seq))
-		return false;
-
-	return true;
-}
-
-bool 
-TeOCIOracle::execute (const string &q)
-{
-	bool result = connection_->execute(q);
-	
-	if(!result)
-		errorMessage_ = connection_->getErrorMessage();
-
-	return result;
-}
-
-TeDatabasePortal*  
-TeOCIOracle::getPortal ()
-{
-	TeOCIOraclePortal* ocip = new TeOCIOraclePortal (this);
-	return ocip;
-}
-
-bool 
-TeOCIOracle::insertRelationInfo(const int tableId, const string& tField,
-						    const string& eTable, const string& eField, int& relId)
-{
-	if(tableId < 0)
-	{
-		return false;
-	}
-
-	TeOCIOraclePortal *ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	relId = -1;
-	string sel = "SELECT relation_id FROM te_tables_relation WHERE";
-	sel += " related_table_id = " + Te2String(tableId);
-	sel += " AND related_attr = '" + tField + "'";
-	sel += " AND external_table_name = '" + eTable + "'";
-	sel += " AND external_attr = '" + eField + "'";
-	if (!ocip->query(sel))
-	{
-		delete ocip;
-		return false;
-	}
-
-	if (ocip->fetchRow())
-	{
-		relId = atoi(ocip->getData(0));
-		delete ocip;
-		return true;
-	}
-
-	string seq = getNameSequence("te_tables_relation");	
-	string sql = " INSERT INTO te_tables_relation( ";
-	sql += " relation_id, related_table_id, related_attr, ";
-	sql += " external_table_name, external_attr) ";
-	sql += " VALUES( ";
-	sql += seq +".NEXTVAL "; 
-	sql += ", "+ Te2String(tableId);
-	sql += ",'" + escapeSequence(tField) + "'";
-	sql += ",'" + escapeSequence(eTable) + "'";
-	sql += ",'" + escapeSequence(eField) + "')";
-
-	if(!execute(sql))
-	{
-		errorMessage_ = "Error inserting tables information!";   
-		delete ocip;
-		return false;
-	}
-
-	ocip->freeResult();
-	sql = "SELECT "+ seq +".CURRVAL FROM DUAL";
-	if (!ocip->query(sql))
-	{
-		errorMessage_ = "Error in the sequence te_table_relation_seq!";  
-		delete ocip;
-		return false;
-	}
-
-	if(!ocip->fetchRow())
-	{
-		errorMessage_ = "Sequence value not found!";
-		delete ocip;
-		return false;
-	}
-
-	relId = atoi((const char*)ocip->getData(0));
-	delete ocip;
-	return true;
-}
-
-bool 
-TeOCIOracle::insertTableInfo (int layerId, TeTable &table, const string& user)
-{
-	string ins, seq;
-
-	seq = getNameSequence("te_layer_table");
-	ins = "INSERT INTO te_layer_table ( "; 
-	ins += " table_id, "; 
-	ins += " layer_id, attr_table, unique_id, attr_link, ";
-	ins += " attr_initial_time, attr_final_time, attr_time_unit, ";
-	ins += " attr_table_type, user_name) VALUES ( ";
-	ins += seq + ".NEXTVAL "; 
-	
-	if(layerId>0)
-		ins += ","+ Te2String(layerId);
-	else
-		ins += ", NULL ";
-	
-	ins += ", '" + escapeSequence(table.name()) + "'";
-	ins += ", '" + escapeSequence(table.uniqueName()) + "'";
-	ins += ", '" + escapeSequence(table.linkName()) + "'";
-	ins += ", '" + escapeSequence(table.attInitialTime()) + "'";
-	ins += ", '" + escapeSequence(table.attFinalTime()) + "'";
-	ins += ",  " + Te2String(table.attTimeUnit());
-	ins += ",  " + Te2String(table.tableType());
-	ins += ", '" +  escapeSequence(user) + "'";
-	ins += ")";
-
-	if(!execute(ins))
-	{
-		errorMessage_ = "Error inserting tables information!";   
-		return false;
-	}
-
-	TeOCIOraclePortal *ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	ins = "SELECT "+ seq +".CURRVAL FROM DUAL";
-	if (!ocip->query(ins))
-	{
-		errorMessage_ = "Error in the sequence te_layer_table_seq!";  
-		delete ocip;
-		return false;
-	}
-
-	if(!ocip->fetchRow())
-	{
-		errorMessage_ = "Sequence value not found!";
-		delete ocip;
-		return false;
-	}
-
-	int index = atoi((const char*)ocip->getData(0));
-	table.setId(index);
-	delete ocip;
-	return true;
-}
-
-
-TeDBRelationType 
-TeOCIOracle::existRelation(const string& tableName, const string& relName)
-{
-	TeOCIOraclePortal  *ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return TeNoRelation;
-	
-	string integ = " SELECT DELETE_RULE  ";
-	integ += " FROM   all_constraints ";
-	integ += " WHERE  CONSTRAINT_TYPE = 'R'"; 
-	integ += " AND    OWNER = '" + TeConvertToUpperCase(user_) + "'";
-	integ += " AND    CONSTRAINT_NAME = '" + TeConvertToUpperCase(relName) + "'";
-	
-	string temp = " AND    TABLE_NAME = '" + TeConvertToUpperCase(tableName) + "' ";   
-	integ += temp;
-	
-	if(!ocip->query(integ))
-	{
-		delete ocip;
-		return TeNoRelation;
-	}
-
-	string cascade;
-	if(ocip->fetchRow())
-	{
-		cascade = string(ocip->getData(0));
-		if(cascade== "CASCADE")
-		{
-			delete ocip;
-			return TeRICascadeDeletion;
-		}
-		
-		delete ocip;
-		return TeRINoCascadeDeletion;
-	}
-
-	delete ocip;
-	return TeNoRelation;	
-}
-
-
-bool 
-TeOCIOracle::createRelation (const string& name, const string& table, const string& fieldName, const string& relatedTable, const string& relatedField, bool cascadeDeletion)
-{
-	string relation = "ALTER TABLE " + table + " ADD ";
-	relation += " CONSTRAINT " + name;
-	relation += " FOREIGN KEY ( " + fieldName + ") "; 
-	relation += " REFERENCES " + relatedTable + "(" + relatedField + ")";
-		
-	if (cascadeDeletion)
-		relation += " ON DELETE CASCADE ";
-
-	if(!execute(relation))
-		return false;
-
-	return true;
-}
-
-string
-TeOCIOracle::getSQLStatistics (TeGroupingAttr& attrs)
-{
-	string sql = "";
-	string virg = "";
-
-	TeGroupingAttr::iterator it = attrs.begin();
-	int count = 0;
-	while(it != attrs.end())
-	{
-		if(count>0)
-			virg = ",";
-
-		switch ((*it).second)
-		{
-			case TeSUM:
-				sql += virg +" SUM( "+ (*it).first.name_ +") AS SUM_"+ Te2String(count);
-				(*it).second = TeNOSTATISTIC;
-				++count;
-				break;
-			case TeMAXVALUE:
-				sql += virg +" MAX( "+ (*it).first.name_ +") AS MAX_"+ Te2String(count);
-				(*it).second = TeNOSTATISTIC;
-				++count;
-				break;
-			case TeMINVALUE:
-				sql += virg +" MIN( "+ (*it).first.name_ +") AS MIN_"+ Te2String(count);
-				(*it).second = TeNOSTATISTIC;
-				++count;
-				break;
-			case TeCOUNT:
-				sql += virg +" COUNT( "+ (*it).first.name_ +") AS COUNT_"+ Te2String(count);
-				(*it).second = TeNOSTATISTIC;
-				++count;
-				break;
-			case TeMEAN:
-				sql += virg +" AVG( "+ (*it).first.name_ +") AS AVG_"+ Te2String(count);
-				(*it).second = TeNOSTATISTIC;
-				++count;
-				break;
-			case TeSTANDARDDEVIATION:
-				sql += virg +" STDDEV( "+ (*it).first.name_ +") AS STDDEV_"+ Te2String(count);
-				(*it).second = TeNOSTATISTIC;
-				++count;
-				break;
-			case TeVARIANCE:
-				sql += virg +" VARIANCE( "+ (*it).first.name_ +") AS VAR_"+ Te2String(count);
-				(*it).second = TeNOSTATISTIC;
-				++count;
-				break;
-			default:
-				break;
-		}
-		++it;
-	}
-	return sql;
-}
-
-
-string 
-TeOCIOracle::getSQLAutoNumber(const string& table)
-{
-	return (getNameSequence(table) +".NEXTVAL");
-}
-
-
-bool 
-TeOCIOracle::insertRasterBlock(const string& table, const string& blockId, const TeCoord2D& ll, const TeCoord2D& ur, 
-								   unsigned char *buf,unsigned long size, int band, unsigned int res, unsigned int subband)
-{
-	if (blockId.empty()) // no block identifier provided
-	{
-		errorMessage_ = "bloco sem identificador";
-		return false;
-	}
-
-	TeOCIOraclePortal* portal = (TeOCIOraclePortal*) this->getPortal();
-	if (!portal)
-		return false;
-
-	bool update = false;
-	string q =" SELECT * FROM " + table; 
-	q += " WHERE block_id='" + blockId + "'";
-
-	if (!portal->query(q))
-	{
-		delete portal;
-		return false;
-	}
-	// check if this block is alread in the database
-	if (portal->fetchRow())
-		update = true;
-
-	delete portal;
-
-	try
-	{
-		if (!update)
-		{
-			q = "INSERT INTO "+ table +" (block_id, band_id, subband, ";
-			q += " resolution_factor, lower_x, lower_y, upper_x, upper_y, ";
-			q += " block_size, spatial_data) VALUES ( ";
-			q += "'" + blockId + "'";
-			q += ", " + Te2String(band);
-			q += ", " + Te2String(subband);
-			q += ", " + Te2String(res);
-			q += ", " + Te2String(ll.x(), 15);
-			q += ", " + Te2String(ll.y(), 15);
-			q += ", " + Te2String(ur.x(), 15);
-			q += ", " + Te2String(ur.y(), 15);
-			q += ", " + Te2String(size);
-			q += ", :blobValue";
-			q += ")";
-			if (!connection_->executeBLOBSTM(q, buf, size, ":blobValue"))
-				return false;
-		}
-		else
-		{
-			q = " UPDATE "+ table +" SET spatial_data=:blobValue ";
-			q += " WHERE block_id='" + blockId + "'";
-			if (!connection_->executeBLOBSTM(q, buf, size, ":blobValue"))
-				return false;
-		}
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error inserting raster block!";
-		return false;
-	}
-	return true;
-}
-
-bool 
-TeOCIOracle::insertBlob (const string& tableName, const string& columnBlob, const string& whereClause, unsigned char* data, int size)
-{
-	TeOCIOraclePortal* portal = (TeOCIOraclePortal*) getPortal();
-	if (!portal)
-		return false;
-
-	try
-	{
-		string q = "SELECT * FROM "+ tableName +" WHERE "+ whereClause;
-		if((!portal->query(q)) || (!portal->fetchRow()))
-		{
-			delete portal;
-			return false;
-		}
-		delete portal;
-
-		q = " UPDATE "+ tableName +" SET "+ columnBlob +" = :blobValue";
-		q += " WHERE "+ whereClause;
-		if (!connection_->executeBLOBSTM(q, data, size, ":blobValue"))
-			return false;
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error!";
-		return false;
-	}
-	return true;
-}
-
-bool 
-TeOCIOracle::insertTable(TeTable &table)
-{
-	string tableName = table.name();
-	int size = table.size();
-	TeAttributeList att = table.attributeList();
-	TeAttributeList::iterator it = att.begin();
-	TeAttributeList::iterator itEnd = att.end();
-
-	if (!beginTransaction())
-		return false;
-
-	TeTableRow row;
-	int i;
-	unsigned int j;
-	int blobIndex = -1;
-	for ( i = 0; i < size; i++  )
-	{
-		row = table[i];
-		it = att.begin();
-
-		j = 1;
-		int jj = 0;
-
-		std::string columnNames = "";
-		std::string columnValues = "";
-		while ( it != itEnd )
-		{
-			/*if (j != 1)
-				q += ", ";*/
-
-			if(!columnNames.empty())
-			{
-				columnNames += ",";
-				columnValues += ",";
-			}
-
-			columnNames += it->rep_.name_;
-
-			if(row[jj].empty())
-
-			{
-				columnValues += " NULL ";
-				++it;
-				j++;
-				jj++;
-				continue;
-			}
-
-  			string oracleFormat="";
-			string dateTime="";
-			if(((*it).rep_.type_==TeDATETIME) && (!row[jj].empty()))
-			{
-				TeTime t  (row[jj], (*it).dateChronon_, (*it).dateTimeFormat_, (*it).dateSeparator_,
-						   (*it).timeSeparator_, (*it).indicatorPM_);
-				
-				dateTime = t.getDateTime("DDsMMsYYYYsHHsmmsSS");
-				oracleFormat = " TO_DATE('" + dateTime + "', 'DD/MM/YYYY HH24:MI:SS')";
-			}
-			
-			switch ((*it).rep_.type_)
-  			{
-  				case TeSTRING:
-					columnValues += "'"+ escapeSequence(row[jj]) +"'";
-  				break;
-  				case TeREAL:
-					columnValues += row[jj]; 
-  				break;
-  				case TeINT:
-					columnValues += row[jj];
-  				break;
-				case TeDATETIME:
-					columnValues += oracleFormat;
-				break;
-				case TeCHARACTER:
-					columnValues += "'" + escapeSequence(row[jj]) + "'";
-  				break;
-				case TeBOOLEAN:
-				{
-					std::string value = "0";
-					if(row[jj] == "1" || TeConvertToLowerCase(row[jj]) == "t" || TeConvertToLowerCase(row[jj]) == "true")
-					{
-						value = "1";
-					}
-					columnValues += value;
-				}
-				break;
-				case TeBLOB:
-					blobIndex = jj;
-					columnValues += " :blobValue ";
-				break;
-  				default:
-					columnValues += "'"+ escapeSequence(row[jj]) +"'";
-  				break;
-  			}
-			++it;
-			j++;
-			jj++;
-		}
-		std::string q = "INSERT INTO "+tableName+"("+columnNames+") VALUES("+columnValues+")";
-		
-		// Verify if there is blob type
-		if(blobIndex>=0)
-		{
-			if(!connection_->executeBLOBSTM(q, (unsigned char *) row[blobIndex].c_str(), row[blobIndex].size(), ":blobValue"))
-			{
-				rollbackTransaction();
-				return false;
-			}
-		}
-		else 
-		{
-			if(!execute(q))
-			{
-				rollbackTransaction();
-				return false;
-			}
-		}
-	}
-	if (!commitTransaction())
-		return false;
-	return true;
-}
-	
-bool 
-TeOCIOracle::alterTable (const string& table, TeAttributeRep &rep, const string& oldColName)
-{
-	if(!tableExist(table))
-		return false;
-
-	if(!oldColName.empty() && oldColName != rep.name_ ) //rename column
-	{
-		string add = " ALTER TABLE "+ table +" RENAME COLUMN "+ oldColName +" TO "+ rep.name_;
-		if(!execute(add))
-		{
-			if(errorMessage_.empty())
-				errorMessage_ = "Error alter table " + table + " !";
-			return false;
-		}
-	}
-
-	string tab = " ALTER TABLE "+ table +" MODIFY ( ";
-	tab += rep.name_ + "  ";
-	switch (rep.type_)
-	{
-		case TeSTRING:
-			if ( rep.numChar_ > 0 )
-				tab  += "VARCHAR2(" + Te2String(rep.numChar_) + ") ";
-			else
-				tab += "VARCHAR2(4000) "; 
-			break;
-
-		case TeREAL:
-			if(rep.decimals_>0)
-				tab += " NUMBER(*,"+ Te2String(rep.decimals_) +") ";
-			else
-				tab += " NUMBER(*,38) ";
-		break;
-		
-		case TeINT:
-			tab += " NUMBER(32) ";
-			break;
-
-		case TeDATETIME:
-			tab += " DATE ";
-			break;
-
-		case TeCHARACTER:
-			tab += " CHAR ";
-			break;
-			
-		case TeBOOLEAN:
-			tab += " NUMBER(1) ";
-			break;
-		
-		default:
-			tab += " VARCHAR2(" + Te2String(rep.numChar_) + ") ";
-			break;
-	}
-
-	tab += " )";
-
-	if(!execute(tab))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error alter table " + table + " !";
-		return false;
-	}
-	
-	string tableId;
-	TeDatabasePortal* portal = getPortal();
-	string sql = "SELECT table_id FROM te_layer_table WHERE attr_table = '" + table + "'";
-	if(portal->query(sql) && portal->fetchRow())
-		tableId = portal->getData(0);
-
-	delete portal;
-
-	if(tableId.empty() == false)
-	{
-		if(oldColName.empty() == false) // column name changed
-		{
-			 // update relation
-			sql = "UPDATE te_tables_relation SET related_attr = '" + rep.name_ + "'";
-			sql += " WHERE related_table_id = " + tableId;
-			sql += " AND related_attr = '" + oldColName + "'";
-			if(execute(sql) == false)
-				return false;
-
-			sql = "UPDATE te_tables_relation SET external_attr = '" + rep.name_ + "'";
-			sql += " WHERE external_table_name = '" + table + "'";
-			sql += " AND external_attr = '" + oldColName + "'";
-			if(execute(sql) == false)
-				return false;
-
-			 // update grouping
-			sql = "UPDATE te_grouping SET grouping_attr = '" + table + "." + rep.name_ + "'";
-			sql += " WHERE grouping_attr = '" + table + "." + oldColName + "'";
-			if(execute(sql) == false)
-				return false;
-		}
-		else // column type changed
-		{
-			// delete relation
-			sql = "DELETE FROM te_tables_relation WHERE (related_table_id = " + tableId;
-			sql += " AND related_attr = '" + rep.name_ + "')";
-			sql += " OR (external_table_name = '" + table + "'";
-			sql += " AND external_attr = '" + rep.name_ + "')";
-			if(execute(sql) == false)
-				return false;
-
-			// delete grouping
-			TeDatabasePortal* portal = getPortal();
-			sql = "SELECT theme_id FROM te_grouping WHERE grouping_attr = '" + table + "." + oldColName + "'";
-			if(portal->query(sql) && portal->fetchRow())
-			{
-				string themeId = portal->getData(0);
-
-				sql = "DELETE FROM te_legend WHERE theme_id = " + themeId + " AND group_id >= 0";
-				if(execute(sql) == false)
-				{
-					delete portal;
-					return false;
-				}
-			}
-			delete portal;
-
-			sql = "DELETE FROM te_grouping";
-			sql += " WHERE grouping_attr = '" + table + "." + oldColName + "'";
-			if(execute(sql) == false)
-				return false;
-		}
-	}
-	alterTableInfoInMemory(table);
-	return true;
-}
-
-bool 
-TeOCIOracle::alterTable(const string& oldTableName, const string& newTableName)
-{
-	string sql = " ALTER TABLE "+ oldTableName +" RENAME TO "+ newTableName;
-	if(!this->execute(sql))
-		return false;
-
-	//update te_layer_table
-	sql = " UPDATE te_layer_table ";
-	sql += " SET attr_table = '"+ newTableName +"'";
-	sql += " WHERE attr_table = '"+ oldTableName +"'";
-	execute(sql);
-
-	//update te_tables_relation
-	sql = " UPDATE te_tables_relation ";
-	sql += " SET external_table_name = '"+ newTableName +"'";
-	sql += " WHERE external_table_name = '"+ oldTableName +"'";
-	execute(sql);
-	
-	alterTableInfoInMemory(newTableName, oldTableName);
-	return true;
-}
-
-
-bool
-TeOCIOracle::updateTable (TeTable &table)
-{
-	string tableName = table.name();
-	TeAttributeList att = table.attributeList();
-	TeAttributeList::iterator it = att.begin();
-	
-	int blobIndex = -1;
-	TeTableRow row;
-	unsigned int i;
-	unsigned int j;
-	string uniqueName = table.uniqueName();
-	string uniqueVal;
-
-	if (!beginTransaction())
-		return false;
-
-	for ( i = 0; i < table.size(); i++  )
-	{
-		row = table[i];
-		it = att.begin();
-		string q = 	"UPDATE "+tableName+" SET ";
-		j = 1;
-		int jj = 0;
-		while ( it != att.end() )
-		{
-			string oracleFormat;
-			string dateTime; 
-			if((*it).rep_.type_==TeDATETIME)
-			{
-				TeTime t  (row[jj], (*it).dateChronon_, (*it).dateTimeFormat_, (*it).dateSeparator_,
-						   (*it).timeSeparator_, (*it).indicatorPM_);
-				
-				dateTime = t.getDateTime();
-				oracleFormat = "DD/MM/YYYY HH24:MI:SS"; 
-			}
-			
-			if (uniqueName != (*it).rep_.name_)
-			{
-				q += (*it).rep_.name_ + "=";
-  				switch ((*it).rep_.type_)
-  				{
-  					case TeSTRING:
-						q += "'"+escapeSequence(row[jj])+"'";
-  					break;
-  					case TeREAL:
-						q += row[jj];
-  					break;
-  					case TeINT:
-						q += row[jj];
-  					break;
-					case TeDATETIME:
-						q += " TO_DATE('" + dateTime + "', '"+ oracleFormat +"')";
-  					break;
-					case TeCHARACTER:
-						q += "'" + escapeSequence(row[jj]) + "'";
-  					break;
-					case TeBLOB:
-						blobIndex = jj;
-						q += " :blobValue ";
-					break;
-  					default:
-						q += "'"+escapeSequence(row[jj])+"'";
-  					break;
-  				}
-				if (j<att.size())
-					q+= ",";
-			}
-			else
-				uniqueVal = row[jj];
-
-			++it;
-			j++;
-			jj++;
-		}
-		q += " WHERE " + uniqueName + " = " + uniqueVal;
-		
-		// Verify if there is blob type
-		if(blobIndex>=0)
-		{
-			if (!connection_->executeBLOBSTM(q, (unsigned char *) row[blobIndex].c_str(), 
-				row[blobIndex].size(), ":blobValue"))
-				continue;
-		}
-		else 
-		{
-			if (!execute(q))
-				continue;
-		}
-	}
-	if (!commitTransaction())
-		return false;
-	return true;
-}
-	
-
-bool 
-TeOCIOracle::insertProjection (TeProjection *proj)
-{
-	string insert = "INSERT INTO te_projection (";
-	insert += " projection_id, "; 
-	insert += " name, long0, lat0,";
-	insert += " offx, offy, stlat1, stlat2, unit, scale, hemis, datum, ";
-	insert += " radius, flattening, dx , dy, dz ) VALUES ( ";
-	insert += " te_projection_seq.NEXTVAL ";
-	insert += ", '" + escapeSequence(proj->name()) + "'";
-	insert += ", " + Te2String(proj->params().lon0*TeCRD,15);
-	insert += ", " + Te2String(proj->params().lat0*TeCRD,15);
-	insert += ", " + Te2String(proj->params().offx,15);
-	insert += ", " + Te2String(proj->params().offy,15);
-	insert += ", " + Te2String(proj->params().stlat1*TeCRD,15);
-	insert += ", " + Te2String(proj->params().stlat2*TeCRD,15);
-	insert += ", '" + escapeSequence(proj->params().units) + "'";
-	insert += ", " + Te2String(proj->params().scale,15);
-	insert += ", " + Te2String(proj->params().hemisphere, 15);
-	insert += ", '" + escapeSequence(proj->params().datum.name()) + "'";
-	insert += ", " + Te2String(proj->params().datum.radius(),15);
-	insert += ", " + Te2String(proj->params().datum.flattening(),15);
-	insert += ", " + Te2String(proj->params().datum.xShift(),15);
-	insert += ", " + Te2String(proj->params().datum.yShift(),15);
-	insert += ", " + Te2String(proj->params().datum.zShift(),15);
-	insert += ")";
-
-	if(!execute(insert))
-	{
-		errorMessage_ = "Error inserting in the table te_projection!";   
-		return false;
-	}
-
-	TeOCIOraclePortal *ocip = (TeOCIOraclePortal*) getPortal();
-	if(!ocip)
-		return false;
-
-	string seq = "SELECT te_projection_seq.CURRVAL FROM DUAL";
-	if(!ocip->query(seq))
-	{
-		errorMessage_ = "Error in the sequence te_projection_seq!";  
-		delete ocip;
-		return false;
-	}
-
-	if(!ocip->fetchRow())
-	{
-		errorMessage_ = "Sequence value not found!";
-		delete ocip;
-		return false;
-	}
-
-	proj->id(atoi((const char*)ocip->getData(0))); 
-	delete ocip;
-	return true;
-}
-
-
-bool
-TeOCIOracle::insertRepresentation (int layerId, TeRepresentation& rep)
-{
-	if (layerId <= 0)
-		return false;
-	
-	string ins;
-	TeOCIOraclePortal *ocip = (TeOCIOraclePortal*) getPortal();
-	if(!ocip)
-		return false;
-
-	ins = " INSERT INTO te_representation ( ";
-	ins += " repres_id, ";
-	ins += " layer_id, geom_type, geom_table, ";
-	ins += " description, lower_x, lower_y, upper_x, upper_y, res_x, res_y, num_cols, ";
-	ins += " num_rows) VALUES (";
-	ins += " te_representation_seq.NEXTVAL ";
-	ins += ", " + Te2String(layerId);
-	ins += ", " + Te2String(static_cast<int>(rep.geomRep_));
-	ins += ", '" + escapeSequence(rep.tableName_) + "'";
-	ins += ", '" + escapeSequence(rep.description_) + "'";
-	ins += ", " + Te2String(rep.box_.x1(),15);
-	ins += ", " + Te2String(rep.box_.y1(),15);
-	ins += ", " + Te2String(rep.box_.x2(),15);
-	ins += ", " + Te2String(rep.box_.y2(),15);
-	ins += ", " + Te2String(rep.resX_,15);
-	ins += ", " + Te2String(rep.resY_,15);
-	ins += ", " + Te2String(rep.nCols_);
-	ins += ", " + Te2String(rep.nLins_);
-	ins += ")";
-
-	if(!execute(ins))
-	{
-		errorMessage_ = "Error inserting in the table te_representation!";  
-		delete ocip;
-		return false;
-	}
-	
-	string seq = "SELECT te_representation_seq.CURRVAL FROM DUAL";
-	if(!ocip->query(seq))
-	{
-		errorMessage_ = "Error in the sequence te_representation_seq!";  
-		delete ocip;
-		return false;
-	}
-
-	if(!ocip->fetchRow())
-	{
-		errorMessage_ = "Sequence value not found!";
-		delete ocip;
-		return false;
-	}
-
-	int id = atoi((const char*)ocip->getData(0)); 
-	rep.id_ = id;
-	delete ocip;
-	return true;
-}
-
-
-bool
-TeOCIOracle::insertLegend (TeLegendEntry* leg)
-{
-	TeOCIOraclePortal  *ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string ins = "INSERT INTO te_legend ( ";
-	ins += " legend_id, ";
-	ins += " theme_id, group_id, ";
-	ins += " num_objs, lower_value, upper_value, label) VALUES ( ";
-	ins += "te_legend_seq.NEXTVAL";
-	ins += ", " + Te2String(leg->theme());
-	ins += ", " + Te2String(leg->group());
-	ins += ", " + Te2String(leg->count());
-	ins += ", '" + escapeSequence(leg->from()) + "'";
-	ins += ", '" + escapeSequence(leg->to()) + "'";
-	ins += ", '" + escapeSequence(leg->label()) + "'";
-	ins += ")";
-		
-	if (!execute(ins))
-	{
-		errorMessage_ = "Error inserting in the table te_legend!"; 
-		delete ocip;
-		return false;
-	}
-
-	string seq = "SELECT te_legend_seq.CURRVAL FROM DUAL";
-	if(!ocip->query(seq))
-	{
-		errorMessage_ = "Error in the sequence te_theme_seq!";  
-		delete ocip;
-		return false;
-	}
-
-	if(!ocip->fetchRow())
-	{
-		errorMessage_ = "Sequence value not found!";;
-		delete ocip;
-		return false;
-	}
-
-	int index = atoi((const char*)ocip->getData(0)); 
-	leg->id(index);
-	
-	delete ocip;
-	legendMap()[leg->id()] = leg;
-	return insertVisual(leg);
-}
-
-bool
-TeOCIOracle::insertPolygonSet(const string& table, TePolygonSet &ps)
-{
-	if(!getValueSequence(table))
-		return false;
-
-	for (unsigned int i = 0; i < ps.size(); i++ )
-	{
-		TePolygon& poly = ps [i];
-		if (!insertPolygon (table,poly))		
-			return false;
-	}
-	return true;
-}
-
-bool 
-TeOCIOracle::insertPolygon (const string& table, TePolygon &poly)
-{
-	double	extmax;
-	unsigned int i, k, ni, size;
-	double	*points	= 0;
-	try
-	{
-		long parentId = 0;
-
-		for ( k = 0; k < poly.size(); k++ )
-		{
-			TeLinearRing ring (poly[k]);
-			TeBox b = ring.box();
-			size = ring.size(); 
-			ni = 0;
-			
-			// max extent 
-			extmax = MAX(b.width(),b.height());
-		
-			// number of holes
-			if (k==0)
-				ni = poly.size()-1;
-			else
-				ni = 0;
-			
-			++sequenceCont_;
-			if(k==0)
-				parentId=sequenceCont_;
-
-			// insert data
-			string ins = "INSERT INTO " + table + " ( ";
-			ins += " geom_id, ";
-			ins += " object_id, num_coords, num_holes, ";
-			ins += " parent_id, lower_x, lower_y, upper_x, upper_y, "; 
-			ins += " ext_max, spatial_data) VALUES ( ";
-			ins +=  getNameSequence(table) +".NEXTVAL";
-			ins += ", '" + escapeSequence(poly.objectId()) + "'";
-			ins += ","+ Te2String(size);
-			ins += ","+ Te2String(ni);
-			ins += ","+ Te2String((long)parentId);
-			ins += ","+ Te2String(b.lowerLeft().x(), 15);
-			ins += ","+ Te2String(b.lowerLeft().y(), 15);
-			ins += ","+ Te2String(b.upperRight().x(), 15);
-			ins += ","+ Te2String(b.upperRight().y(), 15);
-			ins += ","+ Te2String(extmax);
-			ins += ", :blobValue ";
-			ins += ")";
-
-			//get coord
-			points = new double[2*ring.size()];  //2*sizeof(double)*size
-			int iac = 0;
-			for (i=0;i<ring.size();i++)
-			{
-				points[iac++]=ring[i].x();
-				points[iac++]=ring[i].y();
-			}
-			unsigned long bLen = 2*(ring.size())*sizeof(double)*sizeof(unsigned char);
-
-			if (!connection_->executeBLOBSTM(ins, (unsigned char*)points, bLen, ":blobValue"))
-			{
-				errorMessage_ = "Error inserting in the table " + table + "!";  
-				delete[] points;
-				return false;
-			}
-
-			poly.geomId(sequenceCont_);
-			if(points)
-				delete[] points;
-			points=NULL;
-		}
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error inserting polygon!";
-		if(points)
-			delete[] points;
-		return false;
-	}
-
-	return true;
-}
-
-bool 
-TeOCIOracle::updatePolygon (const string& table, TePolygon &poly)
-{
-	double	extmax;
-	unsigned int k, ni, size, i;
-	double	*points	= NULL;
-
-	try
-	{
-		TeBox b = poly[0].box();
-		for ( k = 0; k < poly.size(); k++ )
-		{
-			//Gets each ring
-			TeLinearRing ring ( poly[k] );
-			size = ring.size();
-			ni = 0;
-			if (k==0)
-			{
-				extmax = MAX(b.width(),b.height());
-				ni = poly.size()-1;
-			}
-			else
-				ni = 0;
-
-			//update information about each ring
-			string sql;
-			sql =  " UPDATE " + table + " SET ";
-			sql += ", object_id = '" + poly.objectId() + "'";
-			sql += ", num_coords = " + Te2String(size);
-			sql += ", num_holes = " + Te2String(ni);
-			sql += ", parent_id = " + ((long)poly[0].geomId());
-			sql += ", lower_x = " + Te2String(b.lowerLeft().x(), 15);
-			sql += ", lower_y = " + Te2String(b.lowerLeft().y(), 15);
-			sql += ", upper_x = " + Te2String(b.upperRight().x(), 15);
-			sql += ", upper_y = " + Te2String(b.upperRight().y(), 15);
-			sql += ", ext_max = " + Te2String(extmax);
-			sql += ", spatial_data = :blobValue ";
-			sql += " WHERE geom_id = "+ Te2String(ring.geomId());
-
-			//get coord
-			points = new double[2*ring.size()];  //2*sizeof(double)*size
-			int iac = 0;
-			for (i=0;i<ring.size();i++)
-			{
-				points[iac++]=ring[i].x();
-				points[iac++]=ring[i].y();
-			}
-
-			int bLen = 2*(ring.size())*sizeof(double)*sizeof(unsigned char);
-
-			if (!connection_->executeBLOBSTM(sql, (unsigned char*)points, bLen, ":blobValue"))
-			{
-				errorMessage_ = "Error inserting in the table " + table + "!";  
-				delete[] points;
-				return false;
-			}
-
-			if(points)
-				delete[] points;
-			points=NULL;
-		}
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error updating polygons!";
-		if(points)
-			delete[] points;
-		return false;
-	}
-	return true;
-}
-
-bool
-TeOCIOracle::getValueSequence(const string& table)
-{
-	TeOCIOraclePortal *ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	if (getNameSequence(table) != sequenceName_)
-	{
-		string seq = "SELECT "+ getNameSequence(table) +".NEXTVAL FROM DUAL";
-		
-		if(!ocip->query(seq) || !ocip->fetchRow())
-		{
-			errorMessage_ = "Error in the sequence " + table + "_seq!"; 
-			sequenceName_ = "";
-			delete ocip;
-			return false;
-		}
-
-		sequenceName_ = getNameSequence(table);
-		sequenceCont_ = atoi(ocip->getData(0));
-	}
-
-	delete ocip;
-	return true;
-}
-
-bool 
-TeOCIOracle::insertLineSet(const string& table, TeLineSet &ls)
-{
-	if(!getValueSequence(table))
-		return false;
-
-	for (unsigned int i = 0; i < ls.size(); i++ )
-	{
-		TeLine2D& line = ls [i];
-		if (!insertLine (table,line))
-			return false;
-	}
-	return true;
-}
-
-bool
-TeOCIOracle::insertLine (const string& table, TeLine2D &line)
-{
-	double	extmax;
-	unsigned int i, size;
-	double	*points	= 0;
-	
-	try
-	{
-		TeBox b = line.box();
-		size = line.size(); 
-		// max extent 
-		extmax = MAX(b.width(),b.height());
-		
-		// insert data
-		string ins = "INSERT INTO " + table + " ( ";
-		ins += " geom_id, ";
-		ins += " object_id, num_coords, ";
-		ins += " lower_x, lower_y, upper_x, upper_y, "; 
-		ins += " ext_max, spatial_data) VALUES ( ";
-		ins +=  getNameSequence(table) +".NEXTVAL";
-		ins += ", '" + escapeSequence(line.objectId()) + "'";
-		ins += ","+ Te2String(size);
-		ins += ","+ Te2String(b.lowerLeft().x(), 15);
-		ins += ","+ Te2String(b.lowerLeft().y(), 15);
-		ins += ","+ Te2String(b.upperRight().x(), 15);
-		ins += ","+ Te2String(b.upperRight().y(), 15);
-		ins += ","+ Te2String(extmax);
-		ins += ", :blobValue";
-		ins += ")";
-
-		//get coord
-		points = new double[2*line.size()];  //2*sizeof(double)*size
-		int iac = 0;
-		for (i=0;i<line.size();i++)
-		{
-			points[iac++]=line[i].x();
-			points[iac++]=line[i].y();
-		}
-		unsigned long bLen = 2*(line.size())*sizeof(double)*sizeof(unsigned char);
-
-		if (!connection_->executeBLOBSTM(ins, (unsigned char*)points, bLen, ":blobValue"))
-		{
-			errorMessage_ = "Error inserting in the table " + table + "!";  
-			delete[] points;
-			return false;
-		}
-		++sequenceCont_;
-		line.geomId(sequenceCont_);
-		if(points)
-			delete[] points;
-		points=NULL;
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error inserting line!";
-		if(points)
-			delete[] points;
-		return false;
-	}
-
-	return true;
-}
-
-
-bool 
-TeOCIOracle::updateLine(const string& table, TeLine2D &line)
-{
-	double	extmax;
-	unsigned int size, i;
-	double	*points	= NULL;
-
-	try
-	{
-		TeBox b = line.box();
-		size = line.size();
-		extmax = MAX(b.width(),b.height());
-		
-		//update information about each line
-		string sql =  "UPDATE " + table + " SET ";
-		sql += "  object_id= '" + line.objectId() + "'";
-		sql += ", num_coords= " + ((long)size);
-		sql += ", lower_x= " + Te2String(b.lowerLeft().x(), 15);
-		sql += ", lower_y= " + Te2String(b.lowerLeft().y(), 15);
-		sql += ", upper_x= " + Te2String(b.upperRight().x(), 15);
-		sql += ", upper_y= " + Te2String(b.upperRight().y(), 15);
-		sql += ", ext_max= " + Te2String(extmax);
-		sql += ", spatial_data = :blobValue ";
-		sql += " WHERE geom_id = "+ Te2String(line.geomId());
-
-		//get coord
-		points = new double[2*line.size()];  //2*sizeof(double)*size
-		int iac = 0;
-		for (i=0;i<line.size();i++)
-		{
-			points[iac++]=line[i].x();
-			points[iac++]=line[i].y();
-		}
-		int bLen = 2*(line.size())*sizeof(double)*sizeof(unsigned char);
-
-		if (!connection_->executeBLOBSTM(sql, (unsigned char*)points, bLen, ":blobValue"))
-		{
-			errorMessage_ = "Error inserting in the table " + table + "!";  
-			delete[] points;
-			return false;
-		}
-		
-		if(points)
-			delete[] points;
-		points = NULL;
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error updating lines!";
-		if(points)
-			delete[] points;
-		return false;
-	}
-	return true;
-}
-
-bool 
-TeOCIOracle::insertPoint(const string& table, TePoint &point)
-{
-	string ins = "INSERT INTO " + table + " ( ";
-	ins += " geom_id, ";
-	ins += " object_id, x, y) ";
-	ins += " VALUES ( ";
-	ins += getNameSequence(table) +".NEXTVAL";
-	ins += ", '" + escapeSequence(point.objectId()) + "'";
-	ins += ",  " + Te2String(point.location().x(), 15);
-	ins += ",  " + Te2String(point.location().y(), 15);
-	ins += " ) ";
-
-	if(!execute(ins))
-	{
-		errorMessage_ = "Error inserting points!"; 
-		return false;
-	}
-	return true;
-}
-
-
-bool 
-TeOCIOracle::insertText	(const string& table, TeText &text)
-{
-	string ins = "INSERT INTO " + table + " ( ";
-	ins += " geom_id, ";
-	ins += " object_id, x, y, text_value, angle, height, alignment_vert, ";
-	ins += " alignment_horiz) VALUES ( ";
-	ins += getNameSequence(table) +".NEXTVAL";
-	ins += ", '" + escapeSequence(text.objectId()) + "'";
-	ins += ",  " + Te2String(text.location().x(),15);
-	ins += ",  " + Te2String(text.location().y(),15);
-	ins += ", '" + escapeSequence(text.textValue()) + "'";
-	ins += ",  " + Te2String(text.angle(),15);
-	ins += ",  " + Te2String(text.height(),15);
-	ins += ",  " + Te2String(text.alignmentVert(),15);
-	ins += ",  " + Te2String(text.alignmentHoriz(),15);
-	ins += " )";
-	
-	if(!execute(ins))
-	{
-		errorMessage_ = "Error inserting texts!"; 
-		return false;
-	}
-	return true;
-}
-
-bool 
-TeOCIOracle::insertArc (const string& table, TeArc &arc)
-{
-	string ins = "INSERT INTO " + table + " (";
-	ins += " geom_id, ";
-	ins += " object_id, from_node, to_node ) ";
-	ins += " VALUES ( ";
-	ins += getNameSequence(table) +".NEXTVAL";
-	ins += ", '" + escapeSequence(arc.objectId()) + "'";
-	ins += ",  " + Te2String(arc.fromNode().geomId());
-	ins += ",  " + Te2String(arc.toNode().geomId());
-	ins += " )";
-	
-	if(!execute(ins))
-	{
-		errorMessage_ = "Error inserting arc!"; 
-		return false;
-	}
-	return true;
-}
-
-bool 
-TeOCIOracle::insertNode (const string& table, TeNode &node)
-{	
-	string ins = "INSERT INTO " + table + " ( ";
-	ins += " geom_id, "; 
-	ins += " object_id, x, y) ";
-	ins += " VALUES ( ";
-	ins += getNameSequence(table) +".NEXTVAL";
-	ins += ", '" + escapeSequence(node.objectId()) + "'";
-	ins += ",  " + Te2String(node.location().x(), 15);
-	ins += ",  " + Te2String(node.location().y(), 15);
-	ins += " ) ";
-
-	if(!execute(ins))
-	{
-		errorMessage_ = "Error inserting nodes!"; 
-		return false;
-	}
-	return true;
-}
-	
-bool 
-TeOCIOracle::insertCell (const string& table, TeCell &cell )
-{
-	TeBox b = cell.box();
-	
-	string ins = "INSERT INTO " + table + " ( ";
-	ins += " geom_id, ";
-	ins += " object_id, col_number, row_number, lower_x, ";
-	ins += " lower_y, upper_x, upper_y ) ";
-	ins += " VALUES ( ";
-	ins += getNameSequence(table) +".NEXTVAL";
-	ins += ", '" + escapeSequence(cell.objectId ()) + "'";
-	ins += ",  " + Te2String(cell.column());
-	ins += ",  " + Te2String(cell.line());
-	ins += ",  " + Te2String(b.lowerLeft().x(), 15);
-	ins += ",  " + Te2String(b.lowerLeft().y(), 15);
-	ins += ",  " + Te2String(b.upperRight().x(), 15);
-	ins += ",  " + Te2String(b.upperRight().y(), 15);
-	ins += " )";
-		
-	if(!execute(ins))
-	{
-		errorMessage_ = "Error inserting cells!"; 
-		return false;
-	}
-	return true;
-}
-
-bool 
-TeOCIOracle::insertLayer(TeLayer* layer)
-{	
-	int index;
-	TeProjection* proj = layer->projection();
-	if (!proj || !insertProjection(proj))
-	{
-		errorMessage_ = "N�o � poss�vel inserir layer sem proje��o";
-		return false;
-	}
-	string ins = "INSERT INTO te_layer (";
-	ins += " layer_id, ";
-	ins += " projection_id, name ";
-	ins += ", lower_x, lower_y, upper_x, upper_y, edition_time) ";
-	ins += " VALUES ( ";
-	ins += "te_layer_seq.NEXTVAL";
-	ins += ", "+ Te2String(proj->id());
-	ins += ", '" + escapeSequence(layer->name()) + "'";
-	ins += ", " + Te2String(layer->box().x1(),15);
-	ins += ", " + Te2String(layer->box().y1(),15);
-	ins += ", " + Te2String(layer->box().x2(),15);
-	ins += ", " + Te2String(layer->box().y2(),15);
-	TeTime editionTime = layer->getEditionTime();
-	ins += ", " + getSQLTime(editionTime);
-	ins += ")";
-
-	if(!execute(ins))
-	{
-		errorMessage_ = "Error inserting in the table te_layer!";   
-		return false;
-	}
-
-	TeOCIOraclePortal *ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	ins = "SELECT te_layer_seq.CURRVAL FROM DUAL";
-	if (!ocip->query(ins))
-	{
-		errorMessage_ = "Error in the sequence te_layer_seq!";  
-		delete ocip;
-		return false;
-	}
-
-	if(!ocip->fetchRow())
-	{
-		errorMessage_ = "Sequence value not found!";
-		delete ocip;
-		return false;
-	}
-
-	index = atoi((const char*)ocip->getData(0));
-	layer->id(index);
-	delete ocip;
-	layerMap()[layer->id()] = layer;
-	return true;
-}
-
-bool 
-TeOCIOracle::insertProject(TeProject* project)
-{	
-	if (!project)
-		return false;
-
-	string ins = "INSERT INTO te_project (";
-	ins += " project_id, ";
-	ins += " name, description, current_view) ";
-	ins += " VALUES ( ";
-	ins += "te_project_seq.NEXTVAL";
-	ins += ", '" + escapeSequence(project->name()) + "'";
-	ins += ", '" + escapeSequence(project->description()) + "'";
-	ins += ", " + Te2String(project->getCurrentViewId());
-	ins += ")";
-
-	if(!execute(ins))
-	{
-		errorMessage_ = "Error inserting in the table te_project!";   
-		return false;
-	}
-
-	TeOCIOraclePortal *ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	ins = "SELECT te_project_seq.CURRVAL FROM DUAL";
-	if (!ocip->query(ins))
-	{
-		errorMessage_ = "Error in the sequence te_project_seq!";  
-		delete ocip;
-		return false;
-	}
-
-	if(!ocip->fetchRow())
-	{
-		errorMessage_ = "Sequence value not found!";
-		delete ocip;
-		return false;
-	}
-
-	int index = atoi((const char*)ocip->getData(0));
-	project->setId(index);
-	projectMap()[project->id()] = project;
-	for (unsigned int i=0; i<project->getViewVector().size(); i++)
-		insertProjectViewRel(project->id(), project->getViewVector()[i]);
-	delete ocip;
-	return true;
-}
-
-bool
-TeOCIOracle::deleteLayer(int layerId)
-{
-	//Delete attributes tables
-	if(!deleteLayerTable(layerId))
-		return false;
-
-	TeOCIOraclePortal* portal = (TeOCIOraclePortal*) this->getPortal();
-	if (!portal)
-		return false;
-
-	string geomTable;
-	string sql = "SELECT projection_id FROM te_layer WHERE layer_id = ";
-	sql += Te2String(layerId);
-
-	if (!portal->query(sql))
-	{	
-		delete portal;
-		return false;
-	}
-
-	if (!portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-	string projId = portal->getData("projection_id");
-	portal->freeResult();
-
-	// Get all representations that are associated to this layer
-	sql = "SELECT * FROM te_representation WHERE layer_id = "+ Te2String(layerId);
-	if (!portal->query (sql))
-	{
-		delete portal;
-		return false;
-	}
-
-	while (portal->fetchRow())
-	{	// Delete the geometry tables
-		geomTable = portal->getData("geom_table");
-	
-		// Delete lut table
-		TeGeomRep rep = TeGeomRep(atoi(portal->getData("geom_type")));
-		if (rep == TeRASTER || rep == TeRASTERFILE)
-		{
-			TeOCIOraclePortal* portal2 = (TeOCIOraclePortal*)this->getPortal();
-			sql = "SELECT lut_table, raster_table FROM " + geomTable;
-			string tabName;
-			if (!portal2->query (sql))
-			{
-				delete portal2;
-				continue;
-			}
-
-			while (portal2->fetchRow())
-			{
-				// remove lut table
-				tabName = portal2->getData(0);
-				if (!tabName.empty() && this->tableExist(tabName))
-				{
-					sql = "DROP TABLE " + tabName;
-					this->execute(sql);
-
-					sql= "DROP SEQUENCE "+ getNameSequence(tabName);
-					this->execute(sql); 
-				}
-				// remove raster table
-				tabName = portal2->getData(1);
-				if (!tabName.empty() && this->tableExist(tabName))
-				{
-					sql = "DROP TABLE " + tabName;
-					this->execute(sql);
-
-					sql= "DROP SEQUENCE "+ getNameSequence(tabName);
-					this->execute(sql); 
-				}
-			}
-			delete portal2;
-			// remove raster metadata table
-			tabName = geomTable + "_metadata";
-			if (!tabName.empty() && this->tableExist(tabName))
-			{
-				sql = "DROP TABLE " + tabName;
-				this->execute(sql);
-
-				sql= "DROP SEQUENCE "+ getNameSequence(tabName);
-				this->execute(sql); 
-
-			}
-
-		}
-		if (this->tableExist(geomTable))
-		{
-			sql = "DROP TABLE " + geomTable;
-			if(tableExist(geomTable))
-			{
-				if (!this->execute(sql) )
-				{
-					delete portal;
-					return false;
-				}
-			}
-			
-			sql= "DROP SEQUENCE "+ getNameSequence(geomTable);
-			this->execute(sql);
-		}
-	}
-
-	portal->freeResult();
-	if (existRelation("te_representation","fk_rep_layer_id") != TeRICascadeDeletion)
-	{
-		// Delete entries into representations table
-		sql = "DELETE FROM te_representation WHERE layer_id = " +Te2String(layerId);
-		if (!this->execute(sql) )
-		{
-			delete portal;
-			return false;
-		}
-	}
-
-	// delete layer themes
-	sql = "SELECT theme_id FROM te_theme WHERE layer_id=" + Te2String(layerId);
-	if (!portal->query (sql))
-	{
-		delete portal;
-		return false;
-	}
-	
-	int themeId;
-	while (portal->fetchRow())
-	{	
-		themeId = atoi(portal->getData("theme_id"));
-		this->deleteTheme(themeId);
-	}
-	
-	sql = "DELETE FROM te_layer WHERE layer_id=" + Te2String(layerId);
-	if (!this->execute(sql))
-	{
-		delete portal;
-		return false;
-	}
-
-	// delete layer projection
-	sql = "DELETE FROM te_projection WHERE projection_id = "+ projId;
-	if (!this->execute(sql))
-	{	
-		delete portal;
-		return false;
-	}
-
-	// remove all the items� themes associated to the layer to be removed
-	TeThemeMap::iterator it;
-	for (it = themeMap().begin(); it != themeMap().end(); ++it)
-	{
-		TeTheme *theme = (TeTheme*)it->second;
-		if (theme->layer()->id() == layerId)
-		{
-			themeMap().erase(theme->id());
-			delete theme;
-		}
-	}
-
-	// Delete layer and its entry in the layer map
-	TeLayer* layer = layerMap()[layerId];
-	layerMap().erase(layerId);
-	delete layer;
-
-	delete portal;
-	return true;
-}
-
-bool
-TeOCIOracle::insertTheme (TeAbstractTheme *theme)
-{
-	double maxScale = theme->maxScale ();
-	if(maxScale==TeMAXFLOAT)
-		maxScale = 0.;
-
-	string ins = "INSERT INTO te_theme (";
-	ins += " theme_id, ";
-	ins += " layer_id, view_id, name, ";
-	ins += " parent_id, priority, node_type, min_scale, max_scale, ";
-	ins += " generate_attribute_where, generate_spatial_where, generate_temporal_where, ";
-	ins += " collection_table, visible_rep, enable_visibility, lower_x, lower_y, upper_x, upper_y, creation_time) ";
-	ins += " VALUES (";
-	ins += "te_theme_seq.NEXTVAL";
-	
-	if(theme->type()==TeTHEME)
-		ins += ", " + Te2String(static_cast<TeTheme*>(theme)->layerId());
-	else
-		ins += ", NULL ";
-	
-	ins += ", " + Te2String(theme->view());
-	ins += ", '" + escapeSequence(theme->name()) + "'";
-	ins += ", " + Te2String(theme->parentId ());
-	ins += ", " + Te2String(theme->priority());
-	ins += ", " + Te2String(theme->type ());
-	ins += ", " + Te2String (theme->minScale(),15);
-	ins += ", " + Te2String (maxScale,15);
-	ins += ", '" + escapeSequence(theme->attributeRest()) + "'";
-	ins += ", '" + escapeSequence(theme->spatialRest()) + "'";
-	ins += ", '" + escapeSequence(theme->temporalRest()) + "'";
-	
-	if(theme->type()==TeTHEME)
-		ins += ", '" + escapeSequence(static_cast<TeTheme*>(theme)->collectionTable()) + "'";
-	else
-		ins += ", NULL ";
-
-	ins += ", " + Te2String(theme->visibleRep());
-	ins += ", " + Te2String(theme->visibility());
-	ins += ", " + Te2String (theme->box().x1(),15);
-	ins += ", " + Te2String (theme->box().y1(),15);
-	ins += ", " + Te2String (theme->box().x2(),15);
-	ins += ", " + Te2String (theme->box().y2(),15);
-	TeTime creationTime = theme->getCreationTime();
-	ins += ", " + getSQLTime(creationTime);
-	ins += ")";
-
-	if(!execute(ins))
-	{
-		errorMessage_ = "Error inserting in the table te_theme!";   
-		return false;
-	}
-
-	TeOCIOraclePortal  *ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string seq = "SELECT te_theme_seq.CURRVAL FROM DUAL";
-	if(!ocip->query(seq))
-	{
-		errorMessage_ = "Error in the sequence te_theme_seq!";  
-		delete ocip;
-		return false;
-	}
-
-	if(!ocip->fetchRow())
-	{
-		errorMessage_ = "Sequence value not found!";
-		delete ocip;
-		return false;
-	}
-
-	int index = atoi((const char*)ocip->getData(0)); 
-	theme->id(index);
-	delete ocip;	
-
-	//insert collection name
-	if((theme->type() == TeTHEME || theme->type()==TeEXTERNALTHEME)&& static_cast<TeTheme*>(theme)->collectionTable().empty())
-	{
-		string colName = "te_collection_" + Te2String(index);
-		static_cast<TeTheme*>(theme)->collectionTable(colName);	
-		
-		ins = "UPDATE te_theme SET ";
-		ins += " collection_table = '" + escapeSequence(colName) + "'";
-		ins += " WHERE theme_id = " + Te2String (index);
-		
-		if(!execute(ins))
-		{
-			errorMessage_ = "Error inserting in the table te_theme!";   
-			return false;
-		}
-	}
-
-	if(theme->parentId() == 0)
-	{
-		std::string sql = "UPDATE te_theme SET";
-		sql += "  parent_id = " + Te2String(theme->id());
-		sql += " WHERE theme_id = ";
-		sql += Te2String(theme->id());
-
-		theme->parentId(theme->id());
-
-		if(!this->execute(sql))
-			return false;
-	}
-	
-	bool status;
-
-	// insert grouping
-	int numSlices = 0;
-	if(theme->grouping().groupMode_ != TeNoGrouping)
-	{
-		if(!insertGrouping (theme->id(), theme->grouping()))
-			return false;
-		numSlices = theme->grouping().groupNumSlices_;
-	}
-
-	// insert legend
-	theme->outOfCollectionLegend().group(-1); 
-	theme->outOfCollectionLegend().theme(theme->id()); 
-	status = insertLegend (&(theme->outOfCollectionLegend())); 
-	if (!status)
-		return status;
-
-	theme->withoutDataConnectionLegend().group(-2); 
-	theme->withoutDataConnectionLegend().theme(theme->id()); 
-	status = insertLegend (&(theme->withoutDataConnectionLegend())); 
-	if (!status)
-		return status;
-
-	theme->defaultLegend().group(-3); 
-	theme->defaultLegend().theme(theme->id()); 
-	status = insertLegend (&(theme->defaultLegend())); 
-	if (!status)
-		return status;
-
-	theme->pointingLegend().group(-4); 
-	theme->pointingLegend().theme(theme->id()); 
-	status = insertLegend (&(theme->pointingLegend())); 
-	if (!status)
-		return status;
-
-	theme->queryLegend().group(-5); 
-	theme->queryLegend().theme(theme->id()); 
-	status = insertLegend (&(theme->queryLegend())); 
-	if (!status)
-		return status;
-
-	theme->queryAndPointingLegend().group(-6); 
-	theme->queryAndPointingLegend().theme(theme->id()); 
-	status = insertLegend (&(theme->queryAndPointingLegend())); 
-	if (!status)
-		return status;
-
-	for (int i = 0; i < numSlices; i++)
-	{
-		theme->legend()[i].group(i);
-		theme->legend()[i].theme(theme->id());
-		status = insertLegend (&(theme->legend()[i]));
-		if (!status)
-			return status;
-	}
-	if (!status)
-		return status;
-
-	//insert metadata theme
-	if(!theme->saveMetadata(this))
-		return false;
-
-	themeMap()[theme->id()] = theme;
-	
-	if(theme->type()==TeTHEME && !updateThemeTable(static_cast<TeTheme*>(theme)))
-		return false;
-
-	return true;
-}
-
-
-bool 
-TeOCIOracle::insertThemeTable (int themeId, int tableId, int relationId, int tableOrder)
-{
-	string ins = "INSERT INTO te_theme_table ( ";
-	ins += " theme_table_id, ";
-	ins += " theme_id, table_id, relation_id, table_order)";
-	ins += " VALUES ( ";
-	ins += getNameSequence("te_theme_table") +".NEXTVAL ";
-	ins += ", "+ Te2String(themeId);
-	ins += ", "+ Te2String(tableId);
-	
-	if(relationId>0)
-		ins += ", "+ Te2String(relationId);
-	else
-		ins += ", null ";
-
-	ins += ", "+ Te2String(tableOrder);
-	ins += ")";
-
-	if(!execute(ins))
-	{
-		errorMessage_ = "Error inserting in the table te_theme_table!";   
-		return false;
-	}
-
-	return true;
-}
-
-bool 
-TeOCIOracle::insertThemeGroup(TeViewTree* tree)
-{
-	string ins = "INSERT INTO te_theme (theme_id, view_id, name, ";
-	ins += " parent_id, priority, node_type ) VALUES (";
-	ins += "te_theme_seq.NEXTVAL";
-	ins += ", " + Te2String(tree->view());
-	ins += ", '" + escapeSequence(tree->name()) + "'";
-	ins += ", " + Te2String(tree->parentId ());
-	ins += ", " + Te2String(tree->priority());
-	ins += ", " + Te2String(1);
-	ins += ")";
-
-	TeOCIOraclePortal  *ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return false;
-	
-	try
-	{
-		if(!execute(ins))
-		{
-			errorMessage_ = "Error inserting in the table te_theme!";   
-			delete ocip;
-			return false;
-		}
-
-		string seq = "SELECT te_theme_seq.CURRVAL FROM DUAL";
-		if(!ocip->query(seq))
-		{
-			errorMessage_ = "Error in the sequence te_theme_seq!";  
-			delete ocip;
-			return false;
-		}
-
-		if(!ocip->fetchRow())
-		{
-			errorMessage_ = "Sequence value not found!";
-			delete ocip;
-			return false;
-		}
-
-		int index = atoi((const char*)ocip->getData(0)); 
-		tree->id(index);
-		
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error inserting in the table te_theme!";
-		if(ocip)
-			delete ocip;
-		return false;
-	}
-
-	delete ocip;
-	return true;
-}
-
-bool 
-TeOCIOracle::generateLabelPositions (TeTheme *theme, const std::string& objectId)
-{
-	string	geomTable, upd;
-	string	collTable = theme->collectionTable();
-	
-	if((collTable.empty()) || (!tableExist(collTable)))
-		return false;
-
-	if( theme->layer()->hasGeometry(TeCELLS)    || 
-		theme->layer()->hasGeometry(TePOLYGONS) ||
-		theme->layer()->hasGeometry(TeLINES) )
-	{
-		geomTable = theme->layer()->tableName(TeCELLS);
-		
-		if(geomTable.empty())
-		{
-			geomTable = theme->layer()->tableName(TePOLYGONS);
-			if(geomTable.empty())
-				geomTable = theme->layer()->tableName(TeLINES);
-		}
-
-		upd= "UPDATE " + collTable + " SET ";
-		upd += " label_x = (SELECT MAX(lower_x + (upper_x - lower_x)/2) ";
-		upd += "FROM " + geomTable + " WHERE object_id = c_object_id), ";
-		
-		upd += " label_y = (SELECT MAX(lower_y + (upper_y - lower_y)/2) ";
-		upd += "FROM " + geomTable + " WHERE object_id = c_object_id) ";
-		upd += " WHERE label_x IS NULL OR label_y IS NULL";
-	}
-	else if(theme->layer()->hasGeometry(TePOINTS))
-	{
-		geomTable = theme->layer()->tableName(TePOINTS);
-		
-		upd= " UPDATE " + collTable + " SET ";
-		upd += " label_x = (SELECT MAX(x) ";
-		upd += " FROM " + geomTable + " p WHERE object_id = c_object_id), ";
-		
-		upd += " label_y = (SELECT MAX(y) ";
-		upd += " FROM " + geomTable + " p WHERE object_id = c_object_id) ";
-		upd += " WHERE label_x IS NULL OR label_y IS NULL";
-	}
-
-	if (!upd.empty())
-	{
-		if (!objectId.empty())
-		{
-			upd += " AND c_object_id='"+objectId+"'";
-		}
-		if(!execute(upd))
-			return false;
-	}
-
-	return true;
-}
-
-bool 
-TeOCIOracle::insertView(TeView *view)
-{
-	// save it�s projection
-	TeProjection* proj = view->projection();
-	if ( !proj || !insertProjection(proj))
-	{
-		errorMessage_ = "N�o � poss�vel inserir vista sem proje��o";
-		return false;
-	}
-
-	string ins = "INSERT INTO te_view (view_id, projection_id, name, user_name, visibility, lower_x, lower_y, upper_x, upper_y, current_theme)";
-	ins += " VALUES (";
-	ins += "te_view_seq.NEXTVAL";
-	ins += ", " + Te2String(proj->id());
-	ins += ", '" + escapeSequence(view->name ()) + "'";
-	ins += ", '" + escapeSequence(view->user ()) + "'";
-	ins += ", " + Te2String((int)view->isVisible());
-	ins += ", " + Te2String(view->getCurrentBox().lowerLeft().x(),15);
-	ins += ", " + Te2String(view->getCurrentBox().lowerLeft().y(),15);
-	ins += ", " + Te2String(view->getCurrentBox().upperRight().x(),15);
-	ins += ", " + Te2String(view->getCurrentBox().upperRight().y(),15);
-	if(view->getCurrentTheme() == -1)
-		ins += ", null";
-	else	
-	ins += ", " + Te2String(view->getCurrentTheme());
-	ins += " )";
-	
-	if(!execute (ins))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error inserting in the table te_view!";   
-		return false;
-	}
-
-	TeOCIOraclePortal *ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	ins = "SELECT te_view_seq.CURRVAL FROM DUAL";
-	if (!ocip->query(ins))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error in the sequence te_view_seq!";  
-		delete ocip;
-		return false;
-	}
-
-	if(!ocip->fetchRow())
-	{
-		errorMessage_ = "Sequence value not found!";
-		delete ocip;
-		return false;
-	}
-
-	int index = atoi((const char*)ocip->getData(0));
-	view->id(index);
-	delete ocip;
-
-	int size = view->size();
-
-	for (int th=0; th<size; th++)
-	{
-		TeViewNode* node = view->get(th);
-		if (node->type() == TeTHEME)
-		{
-			TeTheme *theme = (TeTheme*) node;
-			insertTheme (theme);
-		}
-		else
-		{
-			TeViewTree* tree = (TeViewTree*)node;
-			insertViewTree (tree);
-		}
-	}
-
-	// Insert view in the view map
-	viewMap()[view->id()] = view;
-	return true;
-}
-
-bool
-TeOCIOracle::insertViewTree (TeViewTree *tree)
-{
-	
-	string ins = "INSERT INTO te_theme (theme_id, view_id, name, ";
-	ins += " parent_id, node_type, priority) VALUES (";
-	ins += " te_theme_seq.NEXTVAL";
-	ins += ", " + Te2String(tree->view());
-	ins += ", '" + escapeSequence(tree->name()) + "'";
-	ins += ", " + Te2String(tree->parentId());
-	ins += ", " + Te2String(tree->type());
-	ins += ", " + Te2String(tree->priority());
-	ins += ")";
-	
-	if(!execute(ins))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error inserting in the table te_theme!";
-		return false;
-	}
-
-	TeOCIOraclePortal	*ocip = (TeOCIOraclePortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string seq = "SELECT te_theme_seq.CURRVAL FROM DUAL";
-	if(!ocip->query(seq))
-	{
-		errorMessage_ = "Error in the sequence te_theme_seq!";  
-		delete ocip;
-		return false;
-	}
-
-	if(!ocip->fetchRow())
-	{
-		errorMessage_ = "Sequence value not found!";
-		delete ocip;
-		return false;
-	}
-
-	int index = atoi((const char*)ocip->getData(0)); 
-	tree->id(index);
-	delete ocip;
-	
-	return true;
-}
-
-string TeOCIOracle::concatValues(vector<string>& values, const string& unionString)
-{
-	string concat = "";
-	
-	for(unsigned int i = 0; i < values.size(); ++i)
-	{
-		if(i != 0)
-		{
-			concat += " || ";
-
-			if(!unionString.empty())
-			{
-				concat += "'";
-				concat += unionString;
-				concat += "'";
-				concat += " || ";
-			}
-		}
-
-		concat += values[i];
-	}
-
-	return concat;
-}
-
-bool TeOCIOracle::getAttributeList(const string& tableName,TeAttributeList& attList)
-{
-	string sql = " SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_SCALE ";
-	sql += " FROM USER_TAB_COLUMNS WHERE TABLE_NAME = '";
-	sql += TeConvertToUpperCase(tableName) +"'";
-	
-	attList.clear();
-	TeDatabasePortal* portal = this->getPortal();
-	if(!portal)
-		return false;
-	if(!portal->query(sql))
-	{
-		delete portal;
-		return false;
-	}
-	
-	while(portal->fetchRow())
-	{
-		TeAttribute at;
-		at.rep_.name_ = portal->getData(0);
-		string type = TeConvertToUpperCase(portal->getData(1));
-		int scale = portal->getInt(3);
-		if((type=="NUMBER" && scale>0) || (type=="FLOAT"))
-	        at.rep_.type_ = TeREAL;
-		else if(type=="NUMBER")
-			at.rep_.type_ = TeINT;
-		else if(type=="VARCHAR2")
-		{
-			at.rep_.type_ = TeSTRING;
-			at.rep_.numChar_=portal->getInt(2);
-		}
-		else if(type=="BLOB")
-			at.rep_.type_ = TeBLOB;
-		else if(type=="CHAR")
-			at.rep_.type_ = TeCHARACTER;
-		else if(type=="DATE")
-			at.rep_.type_ = TeDATETIME;
-		else 
-		{
-			at.rep_.type_ = TeSTRING;
-			at.rep_.numChar_=portal->getInt(2);
-		}
-		attList.push_back(at);
-	}
-	delete portal;
-	return true;
-}
-
-string TeOCIOracle::toUpper(const string& value)
-{
-	string result  = "upper(";
-	       result += value;
-		   result += ")";
-
-	return result;
-}
-
-string  
-TeOCIOracle::getSQLTime(const TeTime& time) const
-{
-	string dateTime = time.getDateTime();	
-	string result;
-	result = "TO_DATE('";
-	result += dateTime;
-	result += "  ";
-	result += "','DD/MM/YYYY HH24:MI:SS')"; 
-	return result;
-}
-
-
-bool
-TeOCIOracle::getIndexesFromTable(const string& tableName, std::vector<TeDatabaseIndex>& vecIndexes)
-{
-	std::vector<TeDatabaseIndex> indexes;
-
-	string query = "select index_name, column_name from ALL_IND_COLUMNS  where table_name = '"+tableName+"' ";
-	query += "and index_name not like ( select constraint_name from ALL_CONSTRAINTS "; 
-	query += "where table_name = '"+tableName+"' and constraint_type = 'P') order by index_name";
-		
-	TeDatabasePortal* portal = getPortal();
-
-	std::vector<std::string> names;
-	std::vector<std::string> cols;
-
-	std::set<std::string> idxNames;
-
-	std::multimap<std::string, std::string> idxAttrs;
-	
-	if(portal->query(query))
-	{
-		while(portal->fetchRow())
-		{
-			std::string idxName = portal->getData("index_name");
-			std::string attrName = portal->getData("column_name");
-
-			idxAttrs.insert(std::pair<std::string, std::string>(idxName, attrName));
-			
-			idxNames.insert(idxName);
-		}		
-
-	}else
-	{
-		delete portal;
-		return false;
-	}
-
-	portal->freeResult();
-
-	delete portal;
-	portal =  NULL;
-
-	std::set<std::string>::iterator it = idxNames.begin();
-	while(it != idxNames.end())
-	{
-		std::string idxName = *it;
-
-		TeDatabaseIndex idxx;
-		idxx.setIndexName(idxName);
-		idxx.setIsPrimaryKey(false);
-		
-		std::vector<string> attNames;
-		std::pair<std::multimap<std::string, std::string>::iterator, std::multimap<std::string, std::string>::iterator> itAttrs = idxAttrs.equal_range(idxName);
-		std::multimap<std::string, std::string>::iterator itA;
-		for (itA=itAttrs.first; itA!=itAttrs.second; ++itA)
-		{
-			std::string attrName = itA->second;
-			attNames.push_back(attrName);
-		}
-
-		idxx.setColumns(attNames);
-
-		indexes.push_back(idxx);
-
-		++it;
-	}	
-
-	vecIndexes = indexes;	
-
-	return true;
-}
-
-
-//---------------------------------- Oracle portal
-
-TeOCIOraclePortal::TeOCIOraclePortal(TeOCIOracle *pDatabase) 
-{
-	cursor_ = new TeOCICursor(pDatabase->connection_);
-	db_ = pDatabase;
-	numRows_ = 0;
-	numFields_ = 0;
-	curRow_ = 0;
-}
-
-
-TeOCIOraclePortal::~TeOCIOraclePortal () 
-{
-	if(cursor_)
-		delete cursor_;
-	cursor_ = NULL;
-}
-
-
-bool TeOCIOraclePortal::isConnected()
-{
-	return (cursor_->conn()->isConnected());
-}
-
-
-bool TeOCIOraclePortal::isEOF() 
-{
-	if (!isConnected())
-		return true;
-
-	return false;
-}
-
-bool
-TeOCIOraclePortal::getLinearRing (TeLine2D& line)
-{
-
-	double	*points	= NULL;
-	try
-	{
-		int index = atoi (getData ("geom_id"));
-		TeBox b (getDouble("lower_x"),getDouble("lower_y"),getDouble("upper_x"),getDouble("upper_y"));
-		line.objectId (string (getData ("object_id")));
-		line.geomId (index);
-		line.setBox (b);
-
-		unsigned int ncoords = getInt("num_coords");
-		unsigned int nords = ncoords*2;
-			
-		if (!cursor_->readBlob(&points))
-			return false;
-		
-		line.clear();
-
-		for (unsigned int i=0;i<nords;++i) 
-		{
-			double x = points[i];
-			++i;
-			double y = points[i];
-			
-			TeCoord2D c = TeCoord2D(x,y);
-			line.add(c);
-		}
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error getting media!";
-		return false;
-	}
-	return true;
-}
-
-bool
-TeOCIOraclePortal::getLinearRing (TeLine2D& line, const unsigned int& initIndex)
-{
-	double	*points	= NULL;
-	try
-	{
-		line.objectId (string (getData (initIndex+1)));
-		line.geomId (atoi (getData(initIndex)));
-		
-		unsigned int ncoords = getInt(initIndex+2);
-		unsigned int nords = ncoords*2;
-			
-		if (!cursor_->readBlob(&points))
-			return false;
-		
-		line.clear();
-
-		for (unsigned int i=0;i<nords;++i) 
-		{
-			double x = points[i];
-			++i;
-			double y = points[i];
-			
-			TeCoord2D c = TeCoord2D(x,y);
-			line.add(c);
-		}
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error getting media!";
-		return false;
-	}
-	return true;
-}
-
-
-bool
-TeOCIOraclePortal::moveFirst() 
-{
-	if (cursor_->moveFirst())
-		return true;
-	else
-		return false;
-}
-
-
-bool 
-TeOCIOraclePortal::moveNext() 
-{
-	if(cursor_->moveNext())
-		return true;
-	return false;
-}
-
-bool TeOCIOraclePortal::query (const string &q,TeCursorLocation /* l */ , TeCursorType /* t */, TeCursorEditType /* e */, TeCursorDataType /* dt */)  //Ok
-{
-	errorMessage_.clear ();
-
-	if (!cursor_->isOpen())
-	{
-		if(!cursor_->open())
-		{
-			numRows_ = 0;
-			return false;
-		}
-	}
-
-	if (!cursor_->query(q))
-	{
-		this->errorMessage_ = cursor_->getErrorMessage();
-		numRows_ = 0;
-		return false;
-	}
-	
-	numFields_= this->cursor_->numCol();
-
-	attList_.clear ();
-	int i;
-	for(i = 1; i <= numFields_ ; i++)
-	{
-		TeAttribute attribute;
-
-		switch (cursor_->colType(i))
-		{
-			case 3: //INTEGER
-				attribute.rep_.type_ = TeINT;
-			break;
-
-			case 2:  //NUMBER
-			case 4: //FLOAT DOUBLE
-				attribute.rep_.type_ = TeREAL;
-			break;
-
-			case 12: //Date
-			attribute.rep_.type_ = TeDATETIME;
-			attribute.dateChronon_ = TeSECOND;
-			attribute.dateTimeFormat_ = "DD/MM/YYYY HH24:MI:SS";
-			break;
-
-			case 113: //Blob
-			attribute.rep_.type_ = TeBLOB;
-			break;
-
-			case 96: //CHAR
-			case 9: //VARCHAR:
-			case 1: //VARCHAR2:
-			attribute.rep_.type_ = TeSTRING;
-			break;
-
-			case 108: //OBJECT: // SDO_GEOMETRY
-			attribute.rep_.type_ = TeOBJECT;
-			break;
-			default :
-			attribute.rep_.type_ = TeUNKNOWN;
-			break;
-		} 
-		
-		//attribute.rep_.name_ = TeConvertToLowerCase(cursor_->ColName(i)); 
-		attribute.rep_.name_ = cursor_->colName(i); 
-		attribute.rep_.numChar_ = cursor_->colSize(i);
-		attList_.push_back ( attribute );
-	}
-	curRow_=-1;
-	return true;
-}
-
-
-void TeOCIOraclePortal::freeResult () 
-{
-	cursor_->freeResult();
-}
-
-
-bool TeOCIOraclePortal::fetchRow () 
-{
-	try
-	{	
-		if( !isConnected() )
-			return false;
-		if( numFields_ == 0)
-			return false;
-		
-		if (curRow_ == -1)
-		{
-			if(moveFirst())
-				curRow_++;
-			else
-				return false;
-		}
-		else
-		
-		if (moveNext())
-		{
-			curRow_++;
-			return true;
-		}
-		else
-			return false;
-	}
-	
-	catch(...) //_com_error &e)
-	{
-		return false;
-	}
-
-	return true;
-}
-
-bool TeOCIOraclePortal ::fetchRow (int i)
-{
-	try
-	{	
-		if( !isConnected() || (numFields_ == 0))
-			return false;
-		
-		if (curRow_ == -1)
-		{
-			if(moveFirst())
-				curRow_++;
-			else
-				return false;
-		}
-
-		if(curRow_ == i)
-			return true;
-
-		if (cursor_->moveTo(i))
-		{
-			curRow_ = cursor_->currentRow();
-			return true;
-		}
-		return false;
-	}
-	catch(...)
-	{
-		return false;
-	}
-}
-
-char* TeOCIOraclePortal::getData (int i) 
-{
-	char* result;
-	if (i > numFields_ || i < 0)
-		return "";
-	
-	try
-	{
-		result = cursor_->getFieldValue(i+1);
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error!";
-		return "";
-	}
-	return result;
-	
-}
-
-char* TeOCIOraclePortal::getData (const string &s)
-{
-	char* result;
-
-	string fieldName;
-	size_t pos = s.find(".", 0, 1);
-	if (pos != string::npos)
-		fieldName = s.substr(pos+1);
-	else
-		fieldName = s;
-
-	int index = getColumnIndex (fieldName);
-	if(index == -1)
-		return "";
-	else
-		result = getData(index);
-
-	return result;
-}
-
-
-int TeOCIOraclePortal::getInt (int i) 
-{
-	int value = atoi(getData(i));
-	return value;
-}
-
-int  
-TeOCIOraclePortal::getInt (const string& s)
-{
-	int value = atoi(getData(s));
-	return value;
-}
-
-double TeOCIOraclePortal ::getDouble (int i) 
-{
-	string strValue=getData(i);
-	size_t find;
-	find = strValue.find(",");
-	if(find<strValue.size())
-		strValue.replace(find, 1, ".");
-		
-	return atof(strValue.c_str());
-}
-
-double  
-TeOCIOraclePortal::getDouble (const string& s)
-{
-	string strValue=getData(s);
-	size_t find;
-	find = strValue.find(",");
-	if(find<strValue.size())
-		strValue.replace(find, 1, ".");
-	
-	return atof(strValue.c_str());
-}
-
-
-bool
-TeOCIOraclePortal::getBool(int i)
-{
-	char* fieldChar=0;
-	
-	fieldChar = cursor_->getFieldValue(i+1);
-	if(fieldChar == 0)
-		return false;
-	
-	return true;
-}
-
-
-bool    
-TeOCIOraclePortal::getBool (const string& s)
-{
-	string fieldName;
-	size_t pos = s.find(".", 0, 1);
-	if (pos != string::npos)
-		fieldName = s.substr(pos+1);
-	else
-		fieldName = s;
-
-	int index = getColumnIndex (fieldName);
-	if(index == -1)
-		return false;
-	return (getBool(index));
-}
-
-bool		
-TeOCIOraclePortal::getBlob(const string& s, unsigned char* &data, long& size)
-{
-	try
-	{
-		unsigned int len = cursor_->getBlobSize(s);
-		data = new unsigned char[len];
-		if(!cursor_->readBlob(data, len, s))
-			return false;
-		size = len;
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error getting media!";
-		return false;
-	}
-	return false;
-}
-
-TeTime 
-TeOCIOraclePortal::getDate (int i) 
-{ 
-	TeTime temp;
-	string result;
-
-	if (i > numFields_ || i < 0)
-		return temp;
-	
-	try
-	{
-		result = cursor_->getFieldValue(i+1);
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error!";
-		return temp;
-	}
-		
-	TeTime t(result, TeSECOND, "DDsMMsYYYYsHHsmmsSS");
-	return t;
-}
-	
-
-TeTime 
-TeOCIOraclePortal::getDate (const string& s) 
-{ 
-	string  result;
-	TeTime temp;
-
-	string fieldName;
-	size_t pos = s.find(".", 0, 1);
-	if (pos != string::npos)
-		fieldName = s.substr(pos+1);
-	else
-		fieldName = s;
-
-	int index = getColumnIndex (fieldName);
-	if(index == -1)
-		return temp;
-	else
-		result = getData(index);
-
-	TeTime t(result, TeSECOND, "DDsMMsYYYYsHHsmmsSS") ;
-	return t;
-}
-
-string
-TeOCIOraclePortal::getDateAsString(int i)
-{
-	TeTime t = this->getDate(i);
-	string date = t.getDateTime ();
-
-	if (!date.empty())
-	{		string tval = " TO_DATE ('"+ date +"','DDsMMsYYYYsHHsmmsSS') ";
-		return tval;
-	}
-	else
-		return "";
-}
-
-string 
-TeOCIOraclePortal::getDateAsString(const string& s)
-{
-	TeTime t = this->getDate(s);
-	string date = t.getDateTime ();
-
-	if (!date.empty())
-	{		string tval = " TO_DATE ('"+ date +"','DDsMMsYYYYsHHsmmsSS') ";
-		return tval;
-	}
-	else
-		return "";
-}
-
-
-bool
-TeOCIOraclePortal::fetchGeometry (TePolygon& poly)
-{
-	try 
-	{
-		TeLine2D line;
-		int numHoles = atoi(this->getData("num_holes"));
-		bool flag = this->fetchGeometry(line);
-
-		TeLinearRing ring(line);
-		poly.objectId ( ring.objectId());
-		poly.geomId ( ring.geomId() );
-		poly.add ( ring );
-		int parentId = poly.geomId();
-
-		while (flag && numHoles>0 && (atoi(this->getData("parent_id")) == parentId)) // get holes
-		{
-			TeLine2D aux;
-			this->getLinearRing(aux);
-			TeLinearRing hole(aux);
-			poly.add (hole);
-			flag = this->fetchRow();
-		}
-		return flag;
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error fetchGeometry!";
-		return false;
-	}
-}
-
-bool
-TeOCIOraclePortal::fetchGeometry (TePolygon& poly, const unsigned int& initIndex)
-{
-	try 
-	{
-		TeLine2D line;
-		int numHoles = atoi(this->getData(initIndex+3));
-		getLinearRing(line, initIndex);
-		bool flag = this->fetchRow();
-		
-		TeLinearRing ring(line);
-		poly.objectId ( ring.objectId());
-		poly.geomId ( ring.geomId() );
-		poly.add ( ring );
-		int parentId = poly.geomId();
-
-		while (flag && numHoles>0 && (atoi(this->getData(initIndex+4)) == parentId)) // get holes
-		{
-			TeLine2D aux;
-			this->getLinearRing(aux, initIndex);
-			TeLinearRing hole(aux);
-			poly.add (hole);
-			flag = this->fetchRow();
-		}
-		return flag;
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error fetchGeometry!";
-		return false;
-	}
-}
-
-bool 
-TeOCIOraclePortal::fetchGeometry (TeLine2D& line)
-{	
-	try
-	{
-		getLinearRing(line);
-		return (this->fetchRow());
-	}
-	catch(...)
-	{
-		errorMessage_ = cursor_->getErrorMessage();
-		return false;
-	}
-}
-
-bool 
-TeOCIOraclePortal::fetchGeometry (TeLine2D& line, const unsigned int& initIndex)
-{	
-	try
-	{
-		getLinearRing(line, initIndex);
-		return (this->fetchRow());
-	}
-	catch(...)
-	{
-		errorMessage_ = cursor_->getErrorMessage();
-		return false;
-	}
-}
-
-
-bool 
-TeOCIOraclePortal::fetchGeometry(TePoint& p)
-{
-
-	try 
-	{
-		p.geomId( atoi(getData("geom_id")));
-		p.objectId( string(getData("object_id")));
-		double x = getDouble("x");
-		double y = getDouble("y");
-		TeCoord2D c(x, y);
-		p.add(c);
-		return(this->fetchRow());
-	} 
-	catch(...)
-	{
-		errorMessage_ = "Error fetchGeometry!";
-		return false;
-	}
-}
-
-bool 
-TeOCIOraclePortal::fetchGeometry(TePoint& p, const unsigned int& initIndex)
-{
-	try 
-	{
-		p.geomId( atoi(getData(initIndex)));
-		p.objectId( string(getData(initIndex+1)));
-		double x = getDouble(initIndex+2);
-		double y = getDouble(initIndex+3);
-		TeCoord2D c(x, y);
-		p.add(c);
-		return(this->fetchRow());
-	} 
-	catch(...)
-	{
-		errorMessage_ = "Error fetchGeometry!";
-		return false;
-	}
-}
-
-bool 
-TeOCIOraclePortal::fetchGeometry(TeNode& n)
-{
-	try 
-	{
-		TeCoord2D c(getDouble("x"), getDouble("y"));
-		n.geomId( atol(getData("geom_id")));
-		n.objectId( string(getData("object_id")));
-		n.add(c);
-		return(this->fetchRow());
-	} 
-	catch(...)
-	{
-		errorMessage_ = "Error fetchGeometry!";
-		return false;
-	}
-	return true;
-}
-
-bool 
-TeOCIOraclePortal::fetchGeometry(TeNode& n, const unsigned int& initIndex)
-{
-	try 
-	{
-		TeCoord2D c(getDouble(initIndex+2), getDouble(initIndex+3));
-		n.geomId( atol(getData(initIndex)));
-		n.objectId( string(getData(initIndex+1)));
-		n.add(c);
-		return(this->fetchRow());
-	} 
-	catch(...)
-	{
-		errorMessage_ = "Error fetchGeometry!";
-		return false;
-	}
-	return true;
-}
-
-bool
-TeOCIOraclePortal::getRasterBlock(unsigned long& size, unsigned char* ptData)
-{
-	// gets the spatial data
-	// expects that the data size will be a block of double maximum
-	try
-	{
-		unsigned int len = 0;
-		if(!getCursor()->readBlob(ptData, len, "spatial_data"))
-			return false;
-		size = len;
-	}
-	catch(...)
-	{
-		size = 0;
-		errorMessage_ = "ERRO!";
-		return false;
-	}
-	return true;
-}
-
-
-
-
diff --git a/src/terralib/drivers/Oracle/TeOCIOracle.h b/src/terralib/drivers/Oracle/TeOCIOracle.h
deleted file mode 100644
index aa6f98e..0000000
--- a/src/terralib/drivers/Oracle/TeOCIOracle.h
+++ /dev/null
@@ -1,352 +0,0 @@
-/************************************************************************************
-TerraLib - a library for developing GIS applications.
-Copyright ? 2001-2007 INPE and Tecgraf/PUC-Rio.
-
-This code is part of the TerraLib library.
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library.
-
-The authors reassure the license terms regarding the warranties.
-They specifically disclaim any warranties, including, but not limited to,
-the implied warranties of merchantability and fitness for a particular purpose.
-The library provided hereunder is on an "as is" basis, and the authors have no
-obligation to provide maintenance, support, updates, enhancements, or modifications.
-In no event shall INPE and Tecgraf / PUC-Rio be held liable to any party for direct,
-indirect, special, incidental, or consequential damages arising out of the use
-of this library and its documentation.
-*************************************************************************************/
-/*! \file TeOCIOracle.h
-    \brief This file contains two classes that represent a driver of interface between TerraLib and ORACLE DBMS, using OCI (Oracle Call Interface) library.
-*/
-
-#ifndef  __TERRALIB_INTERNAL_ORACLEOCI_H
-#define  __TERRALIB_INTERNAL_ORACLEOCI_H
-
-#include "TeOCIConnect.h"
-#include "TeOCICursor.h"
-#include <TeDatabase.h>
-#include <TeDatabaseFactory.h>
-
-#include <TeDatabaseIndex.h>
-
-#include "TeOracleDefines.h"
-
-#ifdef AFX_DLL
-#define EXPORT_WIN __declspec( dllexport )
-#else
-#define EXPORT_WIN
-#endif
-
-/*! \class TeOCIOracle
-	\brief A concrete implementation of a interface driver to the ORACLE DBMS
-
-	This class contains attributes and methods to implement a driver of interface 
-	between TerraLib and ORACLE DBMS using OCI (Oracle Call Interface) library.
-	The class TeOCIOracle implements the abstract interface defined by the class
-	TeDatabase.
-
-	\sa 
-	TeDatabase TeOCIConnect
-*/
-class TLORACLE_DLL TeOCIOracle : public TeDatabase
-{
-
-friend class TeOCIOraclePortal;
-
-protected:
-
-	TeOCIConnection*	connection_;	//!< pointer to a opened connection to ORACLE database server  
-	long				sequenceCont_;	//!< sequential number used to improve the data insertion
-	string				sequenceName_;  //!< sequence name used to improve the data insertion
-
-	//! Creates a internal sequence structure in the Oracle DBMS 
-	bool	createSequence(const string &seqName);
-
-	//! Creates a internal trigger structure in the Oracle DBMS
-	bool	createAutoIncrementTrigger(const string &tableName, const string &fieldName);
-	
-	//! Returns the sequence name created to a specific table 
-	string	getNameSequence(const string &tableName);
-
-	//! Returns the trigger name created to a specific table 
-	string  getNameTrigger(const string &tableName);
-
-public:
-	
-	//! Constructor
-	TeOCIOracle();
-
-	//! Destructor
-	~TeOCIOracle();
-
-	//! Escapes special characters in a string to be used in a SQL statement
-	string  escapeSequence(const string& from); 
-
-	//! Begins a transaction
-	bool beginTransaction(); 
-
-	//! Commits a transaction
-	bool commitTransaction();
-
-	//! Rollbacks a transaction
-	bool rollbackTransaction();
-	  
-	//! Connects to a Oracle DBMS and creates the TerraLib conceptual data model
-	virtual bool newDatabase(const string& database, const string& user, const string& password, const string& host, const int& port=0, bool terralibModel=true, const std::string& characterSet = ""); 
-
-	//! Connects to a Oracle DBMS
-	virtual bool connect (const string& host, const string& user, const string& password, const string& database, int port = 0);
-	
-	//! Lists all tables in the database
-	bool listTables(vector<string>& tableList);
-
-	//! Closes the connection to a Oracle DBMS
-	void  close();
-
-	//! Verify if there is a specific table in the database
-	bool tableExist(const string& table);
-
-	//! Verify if there is a specific view in the database
-	bool viewExist(const string& view);
-
-	//! Verify if there is a specific column in a table 
-	bool columnExist(const string& table, const string& column, TeAttribute& attr);
-
-	//! Creates a new table
-	virtual bool createTable (const string& table, TeAttributeList &attr);
-
-	//! Adds a new column in a table
-	bool addColumn (const string& table,TeAttributeRep &rep);
-
-	//! Deletes a specific table
-	bool deleteTable (const string& table);
-
-	//! Executes a SQL statement that does not return rows (INSERT, UPDATE, CREATE, etc.)
-	bool execute (const string &sql);
-	
-	//! Gets a cursor or record set using the opened connection 
-	virtual TeDatabasePortal* getPortal();
-
-	//! Verify if there is a relation associated to a specific table
-	TeDBRelationType existRelation(const string& tableName, const string& relName);
-
-	//! Creates a new relation between two tables
-	bool createRelation (const string& name, const string& table, const string& fieldName, const string& relatedTable, const string& relatedField, bool cascadeDeletion);
-		
-	//! Return a TeDatabaseIndex vector from a table
-	virtual bool getIndexesFromTable(const string& tableName, std::vector<TeDatabaseIndex>& vecIndexes);
-
-
-	/** @name Inserts, updates and deletes geometries from the tables
-	*/
-	//@{ 	
-	bool insertTableInfo (int layerId, TeTable &table, const string& user="");
-	bool insertRelationInfo(const int tableId, const string& tField, const string& rName, const string& rField, int& relId);
-	bool alterTable (const string& table, TeAttributeRep &rep, const string& oldColName);
-	bool alterTable (const string& oldTableName, const string& newTablename);
-	bool insertTable	(TeTable &table);
-	bool updateTable	(TeTable &table);
-	bool insertProjection (TeProjection *proj);
-	bool insertRepresentation (int layerId, TeRepresentation& rep);
-	bool insertLegend	(TeLegendEntry *legend);	
-	bool insertView		(TeView *view);	
-	bool insertViewTree (TeViewTree *tree);	
-	bool insertTheme		(TeAbstractTheme *theme);
-	bool insertThemeTable	(int themeId, int tableId, int relationId, int tableOrder);
-	bool insertThemeGroup	(TeViewTree* tree);
-	bool insertLayer	(TeLayer *layer);	
-	bool insertProject	(TeProject *project);	
-	bool deleteLayer	(int layerId);
-	//@}
-
-	//! Generates label positions to each object of a theme
-	virtual bool generateLabelPositions	(TeTheme *theme, const std::string& objectId = ""); 
-
-	/** @name Inserts, updates and deletes geometry tables
-	*/
-	//@{ 	
-	bool getValueSequence(const string& table);
-	virtual bool insertPolygonSet(const string& table, TePolygonSet &ps);
-	virtual bool insertPolygon		(const string& table, TePolygon &p);	
-	virtual bool updatePolygon		(const string& table, TePolygon &p);
-	virtual bool insertLineSet(const string& table, TeLineSet &ls);
-	virtual bool insertLine (const string& table, TeLine2D &l);	
-	virtual bool updateLine		(const string& table, TeLine2D &l);
-	virtual bool insertPoint	(const string& table, TePoint &p);	
-	virtual bool insertText		(const string& table, TeText &t);
-	virtual bool insertArc	(const string& table,TeArc &arc);
-	virtual bool insertNode		(const string& table, TeNode &node);	
-	virtual bool insertCell		(const string& table, TeCell &c);
-	virtual bool insertRasterBlock(const string& table, const string& blockId, const TeCoord2D& ll, const TeCoord2D& ur, unsigned char *buf,unsigned long size, int band=0, unsigned int res=1, unsigned int subband=0);
-	//@}
-
-	/** @name Methods to deal with large binary objects (BLOB)
-	*/
-	//@{ 	 
-	bool insertBlob (const string& tableName, const string& columnBlob, const string& whereClause, unsigned char* data, int size);
-	//@}
-
-	/** @name Methods that return specific SQL statement according to each DBMS
-	*/
-	//@{ 
-	string getSQLStatistics (TeGroupingAttr& attrs);
-	string  getSQLAutoNumber(const string& table);
-	string  getSQLTime(const TeTime& time) const;
-	string toUpper(const string& value);
-	//@}
-
-	//! Concats values in a vector using unionString as the join between each value
-	string concatValues(vector<string>& values, const string& unionString);
-
-	//! Gets the list of attributes of a table
-	virtual bool getAttributeList(const string& tableName,TeAttributeList& attList);
-};
-
-
-/*!	\class TeOCIOraclePortal
-	\brief A class that implements a concept of record set to a ORACLE DBMS
-
-	This class is part of the driver of interface 
-	between TerraLib and ORACLE DBMS. It was developed using OCI (Oracle Call Interface) library.
-	The class TeOCIOraclePortal implements the abstract interface defined by the class
-	TeDatabasePortal.
-
-	\sa 
-	TeDatabasePortal TeOCICursor
-*/
-class TLORACLE_DLL TeOCIOraclePortal : public TeDatabasePortal
-{
-protected:
-	TeOCICursor		*cursor_;	//!< pointer to a record set  
-	long			curRow_;	//!< current row index in the record set
-
-    //! Verify if there is a connection associated to this cursor
-	bool isConnected();		
-    
-	//! Verify if the current row is the last of the record set
-	bool isEOF();
-
-	//! Gets a linear ring from blob type
-	bool getLinearRing (TeLine2D& line);
-	//! Gets a linear ring that begins in the i-th portal position from blob type
-	bool getLinearRing (TeLine2D& line, const unsigned int& i);
-
-public:
-
-	//! Constructor
-	TeOCIOraclePortal(TeOCIOracle *pDatabase);
-	
-	//! Destructor
-	virtual ~TeOCIOraclePortal();
-
-	//! Returns a pointer to the record set
-	TeOCICursor* getCursor() { return cursor_; }
-
-    //! Moves to the first row in the record set
-	bool moveFirst();
-
-	//! Moves to the next row in the record set
-    bool moveNext();
-
-	//! Executes a SQL statement that return rows or records (SELECT ...)
-	bool query ( const string &q,TeCursorLocation l = TeSERVERSIDE, TeCursorType t = TeUNIDIRECTIONAL, TeCursorEditType e = TeREADONLY, TeCursorDataType dt = TeTEXTCURSOR );
-
-	//! Fetchs to next row
-	bool fetchRow ();
-
-	//! Fetchs to i-th row
-	bool fetchRow (int i);
-
-	//! Clear all memory located by the record set
-	void freeResult();
-
-	/** @name Methods that get values from record set
-	*/
-	//@{ 
-	char* getData (int i);
-	char* getData (const string& s);
-	double getDouble (int i);
-	double getDouble (const string& s);
-	int	getInt (int i);
-	int	getInt (const string& s);
-	bool getBool (const string& s);
-	bool getBool (int i);
-	bool getBlob(const string& s, unsigned char* &data, long& size);
-	TeTime getDate (int i);
-	TeTime getDate (const string& s);
-	string getDateAsString(int i);
-	string getDateAsString(const string& s);
-	//@}
-
-	/** @name Methods that return a geometry from the record set current row and fetch to next row
-	*/
-	//@{ 
-	virtual bool fetchGeometry (TePolygon& poly);
-	virtual bool fetchGeometry (TeLine2D& line);
-	virtual bool fetchGeometry (TePoint& p);
-    virtual bool fetchGeometry (TeNode& n);
-	virtual bool fetchGeometry (TePolygon& poly, const unsigned int& initIndex);
-	virtual bool fetchGeometry (TeLine2D& line, const unsigned int& initIndex);
-	virtual bool fetchGeometry (TePoint& p, const unsigned int& initIndex);
-    virtual bool fetchGeometry (TeNode& n, const unsigned int& initIndex);
-	//@}
-
-	//! Gets a raster geometry block 
-	bool getRasterBlock(unsigned long& size, unsigned char*);
-};
-
-
-/**
- * @brief This is the class for TeOCIOracle driver factory.
- * @author Emiliano F. Castejon <castejon at dpi.inpe.br>
- * @ingroup DatabaseUtils
- */
-class TLORACLE_DLL TeOCIOracleFactory : public TeDatabaseFactory
-{
-  public :
-      
-    /**
-     * Default constructor
-     */
-    TeOCIOracleFactory() : TeDatabaseFactory( std::string( "OracleOCI" ) ) {};      
-      
-    /**
-     * Default Destructor
-     */
-    ~TeOCIOracleFactory() {};
-      
-  protected :  
-  
-    /**
-     * Implementation for the abstract TeFactory::build.
-     *
-     * @param arg A const reference to the parameters used by the
-     * database.
-     * @return A pointer to the new generated database instance.
-     */
-    TeDatabase* build( const TeDatabaseFactoryParams& arg )
-    {
-      TeOCIOracle* instance_ptr = new TeOCIOracle();
-      
-      if( arg.host_ != "" ) {
-        instance_ptr->connect( arg.host_, arg.user_, arg.password_,
-          arg.database_, arg.port_ );
-      }
-  
-      return (TeDatabase*)instance_ptr;
-    }
-};
-
-namespace {
-  static TeOCIOracleFactory TeOCIOracleFactory_instance;
-}; 
-
-#endif 
-
-
-
diff --git a/src/terralib/drivers/Oracle/TeOCISDO.cpp b/src/terralib/drivers/Oracle/TeOCISDO.cpp
deleted file mode 100644
index 0aa8bdb..0000000
--- a/src/terralib/drivers/Oracle/TeOCISDO.cpp
+++ /dev/null
@@ -1,3097 +0,0 @@
-/*	Delegate OCI calls -- Ran Wei, Oracle SDO, 9/10/1998
-	Copyright 1998, Oracle Corp. */
-
-
-
-#include <oci.h>
-#include <TeOCISDO.h>
-
-//extern "C"
-//{
-//	#include <oci.h>
-//	#include "sdo_oci.h"
-//}
-
-
-
-
-
-/********************************************************************************/
-
-/* Part I -- OCI fundamental interfaces                                         */
-
-/********************************************************************************/
-
-/*
-Note: OCIEnvCreate() should be used instead of the
-OCIInitialize() and OCIEnvInit() calls.
-OCIInitialize() and OCIEnvInit() calls will be supported
-for backward compatibility.
-*/
-
-sword SDO_OCIEnvCreate(OCIEnv **envhpp, ub4 mode, dvoid *ctxp, 
-
-						 dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-
-						dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-
-						void (*mfreefp)(dvoid *ctxp, dvoid *memptr),
-						
-						size_t xtramensz, dvoid **usrmempp)
-
-{
-
-	return OCIEnvCreate (envhpp, mode, ctxp, malocfp, ralocfp,  mfreefp, xtramensz, usrmempp);
-}
-
-
-
-sword SDO_OCIInitialize(ub4 mode, dvoid *ctxp, 
-
-						dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-
-						dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-
-						void (*mfreefp)(dvoid *ctxp, dvoid *memptr))
-
-{
-
-	return OCIInitialize(mode, ctxp, malocfp, ralocfp, mfreefp);
-
-}
-
-
-
-sword SDO_OCIHandleAlloc(CONST dvoid *parenth, dvoid **hndlpp, ub4 type, 
-
-						 size_t xtramem_sz, dvoid **usrmempp)
-
-{
-
-	//aloca todas as handles do ambiente passado como parametro
-	return OCIHandleAlloc(parenth, hndlpp, type, xtramem_sz, usrmempp);
-
-}
-
-
-
-sword SDO_OCIHandleFree(dvoid *hndlp, ub4 type)
-
-{
-
-	return OCIHandleFree(hndlp, type);
-
-}
-
-
-
-sword SDO_OCIDescriptorAlloc(CONST dvoid *parenth, dvoid **descpp, ub4 type,
-
-							 size_t xtramem_sz, dvoid **usrmempp)
-
-{
-
-	return OCIDescriptorAlloc(parenth, descpp, type, xtramem_sz, usrmempp);
-
-}
-
-
-
-sword SDO_OCIDescriptorFree(dvoid *descp, ub4 type)
-
-{
-
-	return OCIDescriptorFree(descp, type);
-
-}
-
-
-
-sword SDO_OCIEnvInit(OCIEnv **envp, ub4 mode, size_t xtramem_sz, 
-
-					 dvoid **usrmempp)
-
-{
-
-	return OCIEnvInit(envp, mode, xtramem_sz, usrmempp);
-
-}
-
-
-
-sword SDO_OCIServerAttach(OCIServer *srvhp, OCIError *errhp,
-
-						  CONST text *dblink, sb4 dblink_len, ub4 mode)
-
-{
-
-	return OCIServerAttach(srvhp, errhp, dblink, dblink_len, mode);
-
-}
-
-
-
-sword SDO_OCIServerDetach(OCIServer *srvhp, OCIError *errhp, ub4 mode)
-
-{
-
-	return OCIServerDetach(srvhp, errhp, mode);
-
-}
-
-
-
-sword SDO_OCISessionBegin(OCISvcCtx *svchp, OCIError *errhp, 
-
-						  OCISession *usrhp, ub4 credt, ub4 mode)
-
-{
-
-	return OCISessionBegin(svchp, errhp, usrhp, credt, mode);
-
-}
-
-
-
-sword SDO_OCISessionEnd(OCISvcCtx *svchp, OCIError *errhp, 
-
-						OCISession *usrhp, ub4 mode)
-
-{
-
-	return OCISessionEnd(svchp, errhp, usrhp, mode);
-
-}
-
-
-
-sword SDO_OCILogon(OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp, 
-
-				   CONST text *username, ub4 uname_len, CONST text *password, 
-
-				   ub4 passwd_len, CONST text *dbname, ub4 dbname_len)
-
-{
-
-	return OCILogon(envhp, errhp, svchp, username, uname_len, password, 
-
-				    passwd_len, dbname, dbname_len);
-
-}
-
-
-
-sword SDO_OCILogoff(OCISvcCtx *svchp, OCIError *errhp)
-
-{
-
-	return OCILogoff(svchp, errhp);
-
-}
-
-
-
-sword SDO_OCIPasswordChange(OCISvcCtx *svchp, OCIError *errhp, 
-
-							CONST text *user_name, ub4 usernm_len, 
-
-							CONST text *opasswd, ub4 opasswd_len, 
-
-							CONST text *npasswd, ub4 npasswd_len, ub4 mode)
-
-{
-
-	return OCIPasswordChange(svchp, errhp, user_name, usernm_len, 
-
-							 opasswd, opasswd_len, npasswd, npasswd_len, mode);
-
-}
-
-
-
-sword SDO_OCIStmtPrepare(OCISvcCtx * /* svchp */, OCIStmt *stmtp, OCIError *errhp, CONST OraText *stmt,
-
-						 ub4 stmt_len, CONST OraText * /* key */, ub4 /* keylen */, ub4 language, ub4 mode)
-
-{
-	//return OCIStmtPrepare2 (svchp, stmtp, errhp, stmt, stmt_len, key, keylen, language, mode );
-	
-	return OCIStmtPrepare(stmtp, errhp, stmt, stmt_len, language, mode);
-}
-
-
-
-sword SDO_OCIBindByPos(OCIStmt *stmtp, OCIBind **bindp, OCIError *errhp,
-
-					   ub4 position, dvoid *valuep, sb4 value_sz,
-
-					   ub2 dty, dvoid *indp, ub2 *alenp, ub2 *rcodep,
-
-					   ub4 maxarr_len, ub4 *curelep, ub4 mode)
-
-{
-
-	return OCIBindByPos(stmtp, bindp, errhp, position, valuep, value_sz,
-
-					    dty, indp, alenp, rcodep, maxarr_len, curelep, mode);
-
-}
-
-
-
-sword SDO_OCIBindByName(OCIStmt *stmtp, OCIBind **bindp, OCIError *errhp,
-
-						CONST text *placeholder, sb4 placeh_len, 
-
-						dvoid *valuep, sb4 value_sz, ub2 dty, 
-
-						dvoid *indp, ub2 *alenp, ub2 *rcodep, 
-
-						ub4 maxarr_len, ub4 *curelep, ub4 mode)
-
-{
-
-	return OCIBindByName(stmtp, bindp, errhp, placeholder, placeh_len, 
-
-						 valuep, value_sz, dty, indp, alenp, rcodep, 
-
-						 maxarr_len, curelep, mode);
-
-}
-
-
-
-sword SDO_OCIBindObject(OCIBind *bindp, OCIError *errhp, CONST OCIType *type, 
-
-						dvoid **pgvpp, ub4 *pvszsp, dvoid **indpp, ub4 *indszp)
-
-{
-
-	return OCIBindObject(bindp, errhp, type, pgvpp, pvszsp, indpp, indszp);
-
-}
-
-
-
-sword SDO_OCIBindDynamic(OCIBind *bindp, OCIError *errhp, dvoid *ictxp,
-
-						 OCICallbackInBind icbfp, dvoid *octxp,
-
-						 OCICallbackOutBind ocbfp)
-
-{
-
-	return OCIBindDynamic(bindp, errhp, ictxp, icbfp, octxp, ocbfp);
-
-}
-
-
-
-sword SDO_OCIBindArrayOfStruct(OCIBind *bindp, OCIError *errhp, 
-
-                               ub4 pvskip, ub4 indskip, ub4 alskip, ub4 rcskip)
-
-{
-
-	return OCIBindArrayOfStruct(bindp, errhp, pvskip, indskip, alskip, rcskip);
-
-}
-
-
-
-sword SDO_OCIStmtGetPieceInfo(OCIStmt *stmtp, OCIError *errhp, 
-
-                              dvoid **hndlpp, ub4 *typep, ub1 *in_outp, 
-
-							  ub4 *iterp, ub4 *idxp, ub1 *piecep)
-
-{
-
-	return OCIStmtGetPieceInfo(stmtp, errhp, hndlpp, typep, in_outp, iterp, 
-
-							   idxp, piecep);
-
-}
-
-
-
-sword SDO_OCIStmtSetPieceInfo(dvoid *hndlp, ub4 type, OCIError *errhp, 
-
-                              CONST dvoid *bufp, ub4 *alenp, ub1 piece, 
-
-                              CONST dvoid *indp, ub2 *rcodep)
-
-{
-
-	return OCIStmtSetPieceInfo(hndlp, type, errhp, bufp, alenp, piece, 
-
-							   indp, rcodep);
-
-}
-
-
-
-sword SDO_OCIStmtExecute(OCISvcCtx *svchp, OCIStmt *stmtp, OCIError *errhp, 
-
-						 ub4 iters, ub4 rowoff, CONST OCISnapshot *snap_in, 
-
-						 OCISnapshot *snap_out, ub4 mode)
-
-{
-
-	return OCIStmtExecute(svchp, stmtp, errhp, iters, rowoff, snap_in, 
-
-						  snap_out, mode);
-
-}
-
-
-
-sword SDO_OCIDefineByPos(OCIStmt *stmtp, OCIDefine **defnp, OCIError *errhp,
-
-						 ub4 position, dvoid *valuep, sb4 value_sz, ub2 dty,
-
-						 dvoid *indp, ub2 *rlenp, ub2 *rcodep, ub4 mode)
-
-{
-
-	return OCIDefineByPos(stmtp, defnp, errhp, position, valuep, value_sz, dty,
-
-						  indp, rlenp, rcodep, mode);
-
-}
-
-
-
-sword SDO_OCIDefineObject(OCIDefine *defnp, OCIError *errhp, 
-
-                          CONST OCIType *type, dvoid **pgvpp, 
-
-                          ub4 *pvszsp, dvoid **indpp, ub4 *indszp)
-
-{	
-
-	return OCIDefineObject(defnp, errhp, type, pgvpp, pvszsp, indpp, indszp);
-
-}
-
-
-
-sword SDO_OCIDefineDynamic(OCIDefine *defnp, OCIError *errhp, dvoid *octxp,
-
-                           OCICallbackDefine ocbfp)
-
-{
-
-	return OCIDefineDynamic(defnp, errhp, octxp, ocbfp);
-
-}
-
-
-
-sword SDO_OCIDefineArrayOfStruct(OCIDefine *defnp, OCIError *errhp, ub4 pvskip,
-
-                                 ub4 indskip, ub4 rlskip, ub4 rcskip)
-
-{
-
-	return OCIDefineArrayOfStruct(defnp, errhp, pvskip, indskip, rlskip, rcskip);
-
-}
-
-
-
-sword SDO_OCIStmtFetch(OCIStmt *stmtp, OCIError *errhp, ub4 nrows, 
-
-                       ub2 orientation, ub4 mode)
-
-{
-
-	return OCIStmtFetch(stmtp, errhp, nrows, orientation, mode);
-
-}
-
-
-
-sword SDO_OCIStmtGetBindInfo(OCIStmt *stmtp, OCIError *errhp, ub4 size, 
-
-                             ub4 startloc, sb4 *found, text *bvnp[], ub1 bvnl[],
-
-                             text *invp[], ub1 inpl[], ub1 dupl[], OCIBind *hndl[])
-
-{
-
-	return OCIStmtGetBindInfo(stmtp, errhp, size, startloc, found, bvnp, bvnl,
-
-                              invp, inpl, dupl, hndl);
-
-}
-
-
-
-sword SDO_OCIDescribeAny(OCISvcCtx *svchp, OCIError *errhp, dvoid *objptr, 
-
-                         ub4 objnm_len, ub1 objptr_typ, ub1 info_level,
-
-						 ub1 objtyp, OCIDescribe *dschp)
-
-{
-
-	return OCIDescribeAny(svchp, errhp, objptr, objnm_len, objptr_typ, info_level,
-
-						  objtyp, dschp);
-
-}
-
-
-
-sword SDO_OCIParamGet(CONST dvoid *hndlp, ub4 htype, OCIError *errhp, 
-
-                      dvoid **parmdpp, ub4 pos)
-
-{
-
-	return OCIParamGet(hndlp, htype, errhp, parmdpp, pos);
-
-}
-
-
-
-sword SDO_OCIParamSet(dvoid *hdlp, ub4 htyp, OCIError *errhp, CONST dvoid *dscp,
-
-                      ub4 dtyp, ub4 pos)
-
-{
-
-	return OCIParamSet(hdlp, htyp, errhp, dscp, dtyp, pos);
-
-}
-
-
-
-sword SDO_OCITransStart(OCISvcCtx *svchp, OCIError *errhp, uword timeout, ub4 flags)
-
-{
-
-	return OCITransStart(svchp, errhp, timeout, flags);
-
-}
-
-
-
-sword SDO_OCITransDetach(OCISvcCtx *svchp, OCIError *errhp, ub4 flags)
-
-{
-
-	return OCITransDetach(svchp, errhp, flags);
-
-}
-
-
-
-sword SDO_OCITransCommit(OCISvcCtx *svchp, OCIError *errhp, ub4 flags)
-
-{
-
-	return OCITransCommit(svchp, errhp, flags);
-
-}
-
-
-
-sword SDO_OCITransRollback(OCISvcCtx *svchp, OCIError *errhp, ub4 flags)
-
-{
-
-	return OCITransRollback(svchp, errhp, flags);
-
-}
-
-
-
-sword SDO_OCITransPrepare(OCISvcCtx *svchp, OCIError *errhp, ub4 flags)
-
-{
-
-	return OCITransPrepare(svchp, errhp, flags);
-
-}
-
-
-
-sword SDO_OCITransForget(OCISvcCtx *svchp, OCIError *errhp, ub4 flags)
-
-{
-
-	return OCITransForget(svchp, errhp, flags);
-
-}
-
-
-
-sword SDO_OCIErrorGet(dvoid *hndlp, ub4 recordno, text *sqlstate,
-
-                      sb4 *errcodep, text *bufp, ub4 bufsiz, ub4 type)
-
-{
-
-	return OCIErrorGet(hndlp, recordno, sqlstate, errcodep, bufp, bufsiz, type);
-
-}
-
-
-
-sword SDO_OCILobAppend(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *dst_locp,
-
-                       OCILobLocator *src_locp)
-
-{
-
-	return OCILobAppend(svchp, errhp, dst_locp, src_locp);
-
-}
-
-
-
-sword SDO_OCILobAssign(OCIEnv *envhp, OCIError *errhp, CONST OCILobLocator *src_locp, 
-
-                       OCILobLocator **dst_locpp)
-
-{
-
-	return OCILobAssign(envhp, errhp, src_locp, dst_locpp);
-
-}
-
-
-
-sword SDO_OCILobCharSetForm(OCIEnv *envhp, OCIError *errhp, 
-
-							CONST OCILobLocator *locp, ub1 *csfrm)
-
-{
-
-	return OCILobCharSetForm(envhp, errhp, locp, csfrm);
-
-}
-
-
-
-sword SDO_OCILobCharSetId(OCIEnv *envhp, OCIError *errhp, 
-
-						  CONST OCILobLocator *locp, ub2 *csid)
-
-{
-
-	return OCILobCharSetId(envhp, errhp, locp, csid);
-
-}
-
-
-
-sword SDO_OCILobCopy(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *dst_locp,
-
-                     OCILobLocator *src_locp, ub4 amount, ub4 dst_offset, 
-
-                     ub4 src_offset)
-
-{
-
-	return OCILobCopy(svchp, errhp, dst_locp, src_locp, amount, dst_offset, 
-
-                      src_offset);
-
-}
-
-
-
-sword SDO_OCILobDisableBuffering(OCISvcCtx *svchp, OCIError *errhp,
-
-								 OCILobLocator *locp)
-
-{
-
-	return OCILobDisableBuffering(svchp, errhp, locp);
-
-}
-
-
-
-sword SDO_OCILobEnableBuffering(OCISvcCtx *svchp, OCIError *errhp,
-
-								OCILobLocator *locp)
-
-{
-
-	return OCILobEnableBuffering(svchp, errhp, locp);
-
-}
-
-
-
-sword SDO_OCILobErase(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-
-                      ub4 *amount, ub4 offset)
-
-{
-
-	return OCILobErase(svchp, errhp, locp, amount, offset);
-
-}
-
-
-
-sword SDO_OCILobFileClose(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *filep)
-
-{
-
-	return OCILobFileClose(svchp, errhp, filep);
-
-}
-
-
-
-sword SDO_OCILobFileCloseAll(OCISvcCtx *svchp, OCIError *errhp)
-
-{
-
-	return OCILobFileCloseAll(svchp, errhp);
-
-}
-
-
-
-sword SDO_OCILobFileExists(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *filep,
-
-						   boolean *flag)
-
-{
-
-	return OCILobFileExists(svchp, errhp, filep, flag);
-
-}
-
-
-
-sword SDO_OCILobFileGetName(OCIEnv *envhp, OCIError *errhp, 
-
-							CONST OCILobLocator *filep, text *dir_alias, 
-
-							ub2 *d_length, text *filename, ub2 *f_length)
-
-{
-
-	return OCILobFileGetName(envhp, errhp, filep, dir_alias, d_length, 
-
-							 filename, f_length);
-
-}
-
-
-
-sword SDO_OCILobFileIsOpen(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *filep,
-
-                           boolean *flag)
-
-{
-
-	return OCILobFileIsOpen(svchp, errhp, filep, flag);
-
-}
-
-
-
-sword SDO_OCILobFileOpen(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *filep,
-
-                         ub1 mode)
-
-{
-
-	return OCILobFileOpen(svchp, errhp, filep, mode);
-
-}
-
-
-
-sword SDO_OCILobFileSetName(OCIEnv *envhp, OCIError *errhp, OCILobLocator **filepp, 
-
-                            CONST text *dir_alias, ub2 d_length, 
-
-                            CONST text *filename, ub2 f_length)
-
-{
-
-	return OCILobFileSetName(envhp, errhp, filepp, dir_alias, d_length, 
-
-                             filename, f_length);
-
-}
-
-
-
-sword SDO_OCILobFlushBuffer(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-
-                            ub4 flag)
-
-{
-
-	return OCILobFlushBuffer(svchp, errhp, locp, flag);
-
-}
-
-
-
-sword SDO_OCILobGetLength(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-
-                          ub4 *lenp)
-
-{
-
-	return OCILobGetLength(svchp, errhp, locp, lenp);
-
-}
-
-
-
-sword SDO_OCILobIsEqual(OCIEnv *envhp, CONST OCILobLocator *x, 
-
-						CONST OCILobLocator *y, boolean *is_equal)
-
-{
-
-	return OCILobIsEqual(envhp, x, y, is_equal);
-
-}
-
-
-
-sword SDO_OCILobLoadFromFile(OCISvcCtx *svchp, OCIError *errhp, 
-
-							 OCILobLocator *dst_locp, OCILobLocator *src_filep, 
-
-                             ub4 amount, ub4 dst_offset, ub4 src_offset)
-
-{
-
-	return OCILobLoadFromFile(svchp, errhp, dst_locp, src_filep, amount, 
-
-							  dst_offset, src_offset);
-
-}
-
-
-
-sword SDO_OCILobLocatorIsInit(OCIEnv *envhp, OCIError *errhp, 
-
-							  CONST OCILobLocator *locp, boolean *is_initialized)
-
-{
-
-	return OCILobLocatorIsInit(envhp, errhp, locp, is_initialized);
-
-}
-
-
-
-sword SDO_OCILobRead(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-
-                     ub4 *amtp, ub4 offset, dvoid *bufp, ub4 bufl, 
-
-                     dvoid *ctxp, sb4 (*cbfp)(dvoid *ctxp, CONST dvoid *bufp, 
-
-					 ub4 len, ub1 piece), ub2 csid, ub1 csfrm)
-
-{
-
-	return OCILobRead(svchp, errhp, locp, amtp, offset, bufp, bufl, 
-
-                      ctxp, cbfp, csid, csfrm);
-
-}
-
-
-
-sword SDO_OCILobTrim(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-
-                     ub4 newlen)
-
-{
-
-	return OCILobTrim(svchp, errhp, locp, newlen);
-
-}
-
-
-
-sword SDO_OCILobWrite(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-
-                      ub4 *amtp, ub4 offset, dvoid *bufp, ub4 buflen, ub1 piece, 
-
-					  dvoid *ctxp, sb4 (*cbfp)(dvoid *ctxp, dvoid *bufp, ub4 *len, 
-
-					  ub1 *piece), ub2 csid, ub1 csfrm)
-
-{
-
-	return OCILobWrite(svchp, errhp, locp, amtp, offset, bufp, buflen, piece, 
-
-					   ctxp, cbfp, csid, csfrm);
-
-}
-
-
-
-sword SDO_OCIBreak(dvoid *hndlp, OCIError *errhp)
-
-{
-
-	return OCIBreak(hndlp, errhp);
-
-}
-
-
-
-sword SDO_OCIServerVersion(dvoid *hndlp, OCIError *errhp, text *bufp, ub4 bufsz,
-
-                           ub1 hndltype)
-
-{
-
-	return OCIServerVersion(hndlp, errhp, bufp, bufsz, hndltype);
-
-}
-
-
-
-sword SDO_OCIAttrGet(CONST dvoid *trgthndlp, ub4 trghndltyp, dvoid *attributep, 
-
-					 ub4 *sizep, ub4 attrtype, OCIError *errhp)
-
-{
-
-	return OCIAttrGet(trgthndlp, trghndltyp, attributep, sizep, attrtype, errhp);
-
-}
-
-
-
-sword SDO_OCIAttrSet(dvoid *trgthndlp, ub4 trghndltyp, dvoid *attributep,
-
-					 ub4 size, ub4 attrtype, OCIError *errhp)
-
-{
-
-	return OCIAttrSet(trgthndlp, trghndltyp, attributep, size, attrtype, errhp);
-
-}
-
-
-
-sword SDO_OCISvcCtxToLda(OCISvcCtx *svchp, OCIError *errhp, Lda_Def *ldap)
-
-{
-
-	return OCISvcCtxToLda(svchp, errhp, ldap);
-
-}
-
-
-
-sword SDO_OCILdaToSvcCtx(OCISvcCtx **svchpp, OCIError *errhp, Lda_Def *ldap)
-
-{
-
-	return OCILdaToSvcCtx(svchpp, errhp, ldap);
-
-}
-
-
-
-sword SDO_OCIResultSetToStmt(OCIResult *rsetdp, OCIError *errhp)
-
-{
-
-	return OCIResultSetToStmt(rsetdp, errhp);
-
-}
-
-
-
-
-
-/********************************************************************************/
-
-/* Part II -- OCI navigational interfaces                                       */
-
-/********************************************************************************/
-
-sword SDO_OCIObjectNew(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc,
-
-					   OCITypeCode typecode, OCIType *tdo, dvoid *table, 
-
-					   OCIDuration duration, boolean value, dvoid **instance)
-
-{
-
-	return OCIObjectNew(env, err, svc, typecode, tdo, table, duration, 
-
-						value, instance);
-
-}
-
-
-
-sword SDO_OCIObjectPin(OCIEnv *env, OCIError *err, OCIRef *object_ref, 
-
-					   OCIComplexObject *corhdl, OCIPinOpt pin_option, 
-
-					   OCIDuration pin_duration, OCILockOpt lock_option, 
-
-					   dvoid **object)
-
-{
-
-	return OCIObjectPin(env, err, object_ref, corhdl, pin_option, 
-
-					    pin_duration, lock_option, object);
-
-}
-
-
-
-sword SDO_OCIObjectUnpin(OCIEnv *env, OCIError *err, dvoid *object)
-
-{
-
-	return OCIObjectUnpin(env, err, object);
-
-}
-
-
-
-sword SDO_OCIObjectPinCountReset(OCIEnv *env, OCIError *err, dvoid *object)
-
-{
-
-	return OCIObjectPinCountReset(env, err, object);
-
-}
-
-
-
-sword SDO_OCIObjectLock(OCIEnv *env, OCIError *err, dvoid *object)
-
-{
-
-	return OCIObjectLock(env, err, object);
-
-}
-
-
-
-sword SDO_OCIObjectMarkUpdate(OCIEnv *env, OCIError *err, dvoid *object)
-
-{
-
-	return OCIObjectMarkUpdate(env, err, object);
-
-}
-
-
-
-sword SDO_OCIObjectUnmark(OCIEnv *env, OCIError *err, dvoid *object)
-
-{
-
-	return OCIObjectUnmark(env, err, object);
-
-}
-
-
-
-sword SDO_OCIObjectUnmarkByRef(OCIEnv *env, OCIError *err, OCIRef *ref)
-
-{
-
-	return OCIObjectUnmarkByRef(env, err, ref);
-
-}
-
-
-
-sword SDO_OCIObjectFree(OCIEnv *env, OCIError *err, dvoid *instance, 
-
-                        ub2 flags)
-
-{
-
-	return OCIObjectFree(env, err, instance, flags);
-
-}
-
-
-
-sword SDO_OCIObjectMarkDeleteByRef(OCIEnv *env, OCIError *err, OCIRef *object_ref)
-
-{
-
-	return OCIObjectMarkDeleteByRef(env, err, object_ref);
-
-}
-
-
-
-sword SDO_OCIObjectMarkDelete(OCIEnv *env, OCIError *err, dvoid *instance)
-
-{
-
-	return OCIObjectMarkDelete(env, err, instance);
-
-}
-
-
-
-sword SDO_OCIObjectFlush(OCIEnv *env, OCIError *err, dvoid *object)
-
-{
-
-	return OCIObjectFlush(env, err, object);
-
-}
-
-
-
-sword SDO_OCIObjectRefresh(OCIEnv *env, OCIError *err, dvoid *object)
-
-{
-
-	return OCIObjectRefresh(env, err, object);
-
-}
-
-
-
-sword SDO_OCIObjectCopy(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-                        dvoid *source, dvoid *null_source, dvoid *target, 
-
-						dvoid *null_target, OCIType *tdo, OCIDuration duration, 
-
-						ub1 option)
-
-{
-
-	return OCIObjectCopy(env, err, svc, source, null_source, target, 
-
-						 null_target, tdo, duration, option);
-
-}
-
-
-
-sword SDO_OCIObjectGetTypeRef(OCIEnv *env, OCIError *err, dvoid *instance, 
-
-                              OCIRef *type_ref)
-
-{
-
-	return OCIObjectGetTypeRef(env, err, instance, type_ref);
-
-}
-
-
-
-sword SDO_OCIObjectGetObjectRef(OCIEnv *env, OCIError *err, dvoid *object, 
-
-                                OCIRef *object_ref)
-
-{
-
-	return OCIObjectGetObjectRef(env, err, object, object_ref);
-
-}
-
-
-
-sword SDO_OCIObjectGetInd(OCIEnv *env, OCIError *err, dvoid *instance, 
-
-                          dvoid **null_struct)
-
-{
-
-	return OCIObjectGetInd(env, err, instance, null_struct);
-
-}
-
-
-
-sword SDO_OCIObjectExists(OCIEnv *env, OCIError *err, dvoid *ins, boolean *exist)
-
-{
-
-	return OCIObjectExists(env, err, ins, exist);
-
-}
-
-
-
-sword SDO_OCIObjectGetProperty(OCIEnv *envh, OCIError *errh, CONST dvoid *obj, 
-
-							   OCIObjectPropId propertyId, dvoid *property, 
-
-							   ub4 *size)
-
-{
-
-	return OCIObjectGetProperty(envh, errh, obj, propertyId, property, size);
-
-}
-
-
-
-sword SDO_OCIObjectIsLocked(OCIEnv *env, OCIError *err, dvoid *ins, boolean *lock)
-
-{
-
-	return OCIObjectIsLocked(env, err, ins, lock);
-
-}
-
-
-
-sword SDO_OCIObjectIsDirty(OCIEnv *env, OCIError *err, dvoid *ins, boolean *dirty)
-
-{
-
-	return OCIObjectIsDirty(env, err, ins, dirty);
-
-}
-
-
-
-sword SDO_OCIObjectPinTable(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-							CONST text *schema_name, ub4 s_n_length, 
-
-							CONST text *object_name, ub4 o_n_length, 
-
-							CONST OCIRef *scope_obj_ref, OCIDuration pin_duration, 
-
-							dvoid** object)
-
-{
-
-	return OCIObjectPinTable(env, err, svc, schema_name, s_n_length, 
-
-							 object_name, o_n_length, scope_obj_ref, pin_duration, 
-
-							 object);
-
-}
-
-
-
-sword SDO_OCIObjectArrayPin(OCIEnv *env, OCIError *err, OCIRef **ref_array, 
-
-							ub4 array_size, OCIComplexObject **cor_array,
-
-							ub4 cor_array_size, OCIPinOpt pin_option, 
-
-							OCIDuration pin_duration, OCILockOpt lock, 
-
-							dvoid **obj_array, ub4 *pos)
-
-{
-
-	return OCIObjectArrayPin(env, err, ref_array, array_size, cor_array,
-
-							 cor_array_size, pin_option, pin_duration, lock, 
-
-							 obj_array, pos);
-
-}
-
-
-
-sword SDO_OCICacheFlush(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-						dvoid *context, OCIRef *(*get)(dvoid *context, ub1 *last),
-
-						OCIRef **ref)
-
-{
-
-	return OCICacheFlush(env, err, svc, context, get, ref);
-
-}
-
-
-
-sword SDO_OCICacheRefresh(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc,
-
-						  OCIRefreshOpt option, dvoid *context,
-
-						  OCIRef *(*get)(dvoid *context), OCIRef **ref)
-
-{
-
-	return OCICacheRefresh(env, err, svc, option, context, get, ref);
-
-}
-
-
-
-sword SDO_OCICacheUnpin(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc)
-
-{
-
-	return OCICacheUnpin(env, err, svc);
-
-}
-
-
-
-sword SDO_OCICacheFree(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc)
-
-{
-
-	return OCICacheFree(env, err, svc);
-
-} 
-
-
-
-sword SDO_OCICacheUnmark(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc)
-
-{
-
-	return OCICacheUnmark(env, err, svc);
-
-}
-
-
-
-sword SDO_OCIDurationBegin(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-                           OCIDuration parent, OCIDuration *dur)
-
-{
-
-	return OCIDurationBegin(env, err, svc, parent, dur);
-
-}
-
-
-
-sword SDO_OCIDurationEnd(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-                         OCIDuration duration)
-
-{
-
-	return OCIDurationEnd(env, err, svc, duration);
-
-}
-
-
-
-sword SDO_OCIDurationGetParent(OCIEnv *env, OCIError *err, 
-
-                               OCIDuration duration, OCIDuration *parent)
-
-{
-
-	return OCIDurationGetParent(env, err, duration, parent);
-
-}
-
-
-
-sword SDO_OCIObjectAlwaysLatest(OCIEnv *env, OCIError *err, dvoid *object)
-
-{
-
-	return OCIObjectAlwaysLatest(env, err, object);
-
-}
-
-
-
-sword SDO_OCIObjectNotAlwaysLatest(OCIEnv *env, OCIError *err, dvoid *object)
-
-{
-
-	return OCIObjectNotAlwaysLatest(env, err, object);
-
-}
-
-
-
-sword SDO_OCIObjectFlushRefresh(OCIEnv *env, OCIError *err, dvoid *object)
-
-{
-
-	return OCIObjectFlushRefresh(env, err, object);
-
-}
-
-
-
-sword SDO_OCIObjectIsLoaded(OCIEnv *env, OCIError *err, dvoid *ins, 
-
-							boolean *load)
-
-{
-
-	return OCIObjectIsLoaded(env, err, ins, load);
-
-}
-
-
-
-sword SDO_OCIObjectIsDirtied(OCIEnv *env, OCIError *err, dvoid *ins,
-
-							 boolean *dirty)
-
-{
-
-	return OCIObjectIsDirtied(env, err, ins, dirty);
-
-}
-
-
-
-sword SDO_OCICacheGetObjects(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc,
-
-							 OCIObjectProperty property, dvoid *client_context,
-
-							 void (*client_callback)(dvoid *client_context,
-
-							 dvoid *object))
-
-{
-
-	return OCICacheGetObjects(env, err, svc, property, client_context,
-
-							  client_callback);
-
-}
-
-
-
-sword SDO_OCICacheRegister(OCIEnv *env, OCIError *err, OCIObjectEvent event,
-
-						   dvoid *client_context, void (*client_callback)(
-
-						   dvoid *client_context, OCIObjectEvent event,
-
-						   dvoid *object))
-
-{
-
-	return OCICacheRegister(env, err, event, client_context, client_callback);
-
-}
-
-
-
-sword SDO_OCICacheFlushRefresh(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-							   dvoid *context, OCIRef *(*get)(dvoid *context, 
-
-							   ub1 *last), OCIRef **ref)
-
-{
-
-	return OCICacheFlushRefresh(env, err, svc, context, get, ref);
-
-}
-
-
-
-
-
-/********************************************************************************/
-
-/* Part III -- OCI primitive OTS interfaces                                     */
-
-/********************************************************************************/
-
-void SDO_OCINumberSetZero(OCIError *err, OCINumber *num)
-
-{
-
-	OCINumberSetZero(err, num);
-
-}
-
-
-
-sword SDO_OCINumberAdd(OCIError *err, CONST OCINumber *number1, 
-
-                       CONST OCINumber *number2, OCINumber *result)
-
-{
-
-	return OCINumberAdd(err, number1, number2, result);
-
-}
-
-
-
-sword SDO_OCINumberSub(OCIError *err, CONST OCINumber *number1, 
-
-                       CONST OCINumber *number2, OCINumber *result)
-
-{
-
-	return OCINumberSub(err, number1, number2, result);
-
-}
-
-
-
-sword SDO_OCINumberMul(OCIError *err, CONST OCINumber *number1, 
-
-                       CONST OCINumber *number2, OCINumber *result)
-
-{
-
-	return OCINumberMul(err, number1, number2, result);
-
-}
-
-
-
-sword SDO_OCINumberDiv(OCIError *err, CONST OCINumber *number1, 
-
-                       CONST OCINumber *number2, OCINumber *result)
-
-{
-
-	return OCINumberDiv(err, number1, number2, result);
-
-}
-
-
-
-sword SDO_OCINumberMod(OCIError *err, CONST OCINumber *number1, 
-
-                       CONST OCINumber *number2, OCINumber *result)
-
-{
-
-	return OCINumberMod(err, number1, number2, result);
-
-}
-
-
-
-sword SDO_OCINumberIntPower(OCIError *err, CONST OCINumber *base,
-
-                            CONST sword exp, OCINumber *result)
-
-{
-
-	return OCINumberIntPower(err, base, exp, result);
-
-}
-
-
-
-sword SDO_OCINumberNeg(OCIError *err, CONST OCINumber *number,
-
-                       OCINumber *result)
-
-{
-
-	return OCINumberNeg(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberToText(OCIError *err, CONST OCINumber *number, 
-
-                          CONST text *fmt, ub4 fmt_length,
-
-                          CONST text *nls_params, ub4 nls_p_length,
-
-                          ub4 *buf_size, text *buf)
-
-{
-
-	return OCINumberToText(err, number, fmt, fmt_length, nls_params, 
-
-						   nls_p_length, buf_size, buf);
-
-}
-
-
-
-sword SDO_OCINumberFromText(OCIError *err, CONST text *str, ub4 str_length, 
-
-							CONST text *fmt, ub4 fmt_length, 
-
-							CONST text *nls_params, ub4 nls_p_length, 
-
-							OCINumber *number)
-
-{
-
-	return OCINumberFromText(err, str, str_length, fmt, fmt_length, 
-
-							 nls_params, nls_p_length, number);
-
-}
-
-
-
-sword SDO_OCINumberToInt(OCIError *err, CONST OCINumber *number,
-
-                         uword rsl_length, uword rsl_flag, dvoid *rsl)
-
-{
-
-	return OCINumberToInt(err, number, rsl_length, rsl_flag, rsl);
-
-}
-
-
-
-sword SDO_OCINumberFromInt(OCIError *err, CONST dvoid *inum, uword inum_length,
-
-						   uword inum_s_flag, OCINumber *number)
-
-{
-
-	return OCINumberFromInt(err, inum, inum_length, inum_s_flag, number);
-
-}
-
-
-
-sword SDO_OCINumberToReal(OCIError *err, CONST OCINumber *number,
-
-                          uword rsl_length, dvoid *rsl)
-
-{
-
-	return OCINumberToReal(err, number, rsl_length, rsl);
-
-}
-
-
-
-sword SDO_OCINumberFromReal(OCIError *err, CONST dvoid *rnum,
-
-                            uword rnum_length, OCINumber *number)
-
-{
-
-	return OCINumberFromReal(err, rnum, rnum_length, number);
-
-}
-
-
-
-sword SDO_OCINumberCmp(OCIError *err, CONST OCINumber *number1, 
-
-                       CONST OCINumber *number2, sword *result)
-
-{
-
-	return OCINumberCmp(err, number1, number2, result);
-
-}
-
-
-
-sword SDO_OCINumberSign(OCIError *err, CONST OCINumber *number,
-
-                        sword *result)
-
-{
-
-	return OCINumberSign(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberIsZero(OCIError *err, CONST OCINumber *number,
-
-                          boolean *result)
-
-{
-
-	return OCINumberIsZero(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberAssign(OCIError *err, CONST OCINumber *from,
-
-                          OCINumber *to)
-
-{
-
-	return OCINumberAssign(err, from, to);
-
-}
-
-
-
-sword SDO_OCINumberAbs(OCIError *err, CONST OCINumber *number,
-
-                       OCINumber *result)
-
-{
-
-	return OCINumberAbs(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberCeil(OCIError *err, CONST OCINumber *number,
-
-                        OCINumber *result)
-
-{
-
-	return OCINumberCeil(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberFloor(OCIError *err, CONST OCINumber *number, 
-
-                         OCINumber *result)
-
-{
-
-	return OCINumberFloor(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberSqrt(OCIError *err, CONST OCINumber *number, 
-
-                        OCINumber *result)
-
-{
-
-	return OCINumberSqrt(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberTrunc(OCIError *err, CONST OCINumber *number, 
-
-                         sword decplace, OCINumber *result)
-
-{
-
-	return OCINumberTrunc(err, number, decplace, result);
-
-}
-
-
-
-sword SDO_OCINumberPower(OCIError *err, CONST OCINumber *base, 
-
-                         CONST OCINumber *number, OCINumber *result)
-
-{
-
-	return OCINumberPower(err, base, number, result);
-
-}
-
-
-
-sword SDO_OCINumberRound(OCIError *err, CONST OCINumber *number,
-
-                         sword decplace, OCINumber *result)
-
-{
-
-	return OCINumberRound(err, number, decplace, result);
-
-}
-
-
-
-sword SDO_OCINumberSin(OCIError *err, CONST OCINumber *number,
-
-                       OCINumber *result)
-
-{
-
-	return OCINumberSin(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberArcSin(OCIError *err, CONST OCINumber *number,
-
-                          OCINumber *result)
-
-{
-
-	return OCINumberArcSin(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberHypSin(OCIError *err, CONST OCINumber *number, 
-
-                          OCINumber *result)
-
-{
-
-	return OCINumberHypSin(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberCos(OCIError *err, CONST OCINumber *number, 
-
-                       OCINumber *result)
-
-{
-
-	return OCINumberCos(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberArcCos(OCIError *err, CONST OCINumber *number, 
-
-                          OCINumber *result)
-
-{
-
-	return OCINumberArcCos(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberHypCos(OCIError *err, CONST OCINumber *number, 
-
-                          OCINumber *result)
-
-{
-
-	return OCINumberHypCos(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberTan(OCIError *err, CONST OCINumber *number, 
-
-                       OCINumber *result)
-
-{
-
-	return OCINumberTan(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberArcTan(OCIError *err, CONST OCINumber *number, 
-
-                          OCINumber *result)
-
-{
-
-	return OCINumberArcTan(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberArcTan2(OCIError *err, CONST OCINumber *number1, 
-
-                           CONST OCINumber *number2, OCINumber *result)
-
-{
-
-	return OCINumberArcTan2(err, number1, number2, result);
-
-}
-
-
-
-sword SDO_OCINumberHypTan(OCIError *err, CONST OCINumber *number, 
-
-                          OCINumber *result)
-
-{
-
-	return OCINumberHypTan(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberExp(OCIError *err, CONST OCINumber *number, 
-
-                       OCINumber *result)
-
-{
-
-	return OCINumberExp(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberLn(OCIError *err, CONST OCINumber *number, 
-
-                      OCINumber *result)
-
-{
-
-	return OCINumberLn(err, number, result);
-
-}
-
-
-
-sword SDO_OCINumberLog(OCIError *err, CONST OCINumber *base, 
-
-                       CONST OCINumber *number, OCINumber *result)
-
-{
-
-	return OCINumberLog(err, base, number, result);
-
-}
-
-
-
-sword SDO_OCIDateAssign(OCIError *err, CONST OCIDate *from, OCIDate *to)
-
-{
-
-	return OCIDateAssign(err, from, to);
-
-}
-
-
-
-sword SDO_OCIDateToText(OCIError *err, CONST OCIDate *date, 
-
-                        CONST text *fmt, ub1 fmt_length, 
-
-                        CONST text *lang_name, ub4 lang_length, 
-
-                        ub4 *buf_size, text *buf)
-
-{
-
-	return OCIDateToText(err, date, fmt, fmt_length, lang_name, lang_length, 
-
-						 buf_size, buf);
-
-}
-
-
-
-sword SDO_OCIDateFromText(OCIError *err, CONST text *date_str, 
-
-						  ub4 d_str_length, CONST text *fmt, ub1 fmt_length, 
-
-						  CONST text *lang_name, ub4 lang_length, 
-
-						  OCIDate *date)
-
-{
-
-	return OCIDateFromText(err, date_str, d_str_length, fmt, fmt_length, 
-
-						   lang_name, lang_length, date);
-
-}
-
-
-
-sword SDO_OCIDateCompare(OCIError *err, CONST OCIDate *date1, 
-
-						 CONST OCIDate *date2, sword *result)
-
-{
-
-	return OCIDateCompare(err, date1, date2, result);
-
-}
-
-
-
-sword SDO_OCIDateAddMonths(OCIError *err, CONST OCIDate *date, sb4 num_months,
-
-                           OCIDate *result)
-
-{
-
-	return OCIDateAddMonths(err, date, num_months, result);
-
-}
-
-
-
-sword SDO_OCIDateAddDays(OCIError *err, CONST OCIDate *date, sb4 num_days,
-
-                         OCIDate *result)
-
-{
-
-	return OCIDateAddDays(err, date, num_days, result);
-
-}
-
-
-
-sword SDO_OCIDateLastDay(OCIError *err, CONST OCIDate *date, 
-
-                         OCIDate *last_day)
-
-{
-
-	return OCIDateLastDay(err, date, last_day);
-
-}
-
-
-
-sword SDO_OCIDateDaysBetween(OCIError *err, CONST OCIDate *date1, 
-
-                             CONST OCIDate *date2, sb4 *num_days)
-
-{
-
-	return OCIDateDaysBetween(err, date1, date2, num_days);
-
-}
-
-
-
-sword SDO_OCIDateZoneToZone(OCIError *err, CONST OCIDate *date1,
-
-                            CONST text *zon1, ub4 zon1_length, 
-
-							CONST text *zon2, ub4 zon2_length, OCIDate *date2)
-
-{
-
-	return OCIDateZoneToZone(err, date1, zon1, zon1_length, zon2, 
-
-							 zon2_length, date2);
-
-}
-
-
-
-sword SDO_OCIDateNextDay(OCIError *err, CONST OCIDate *date, CONST text *day_p, 
-
-                         ub4 day_length, OCIDate *next_day)
-
-{
-
-	return OCIDateNextDay(err, date, day_p, day_length, next_day);
-
-}
-
-
-
-
-
-sword SDO_OCIDateCheck(OCIError *err, CONST OCIDate *date, uword *valid)
-
-{
-
-	return OCIDateCheck(err, date, valid);
-
-}
-
-
-
-sword SDO_OCIDateSysDate(OCIError *err, OCIDate *sys_date)
-
-{
-
-	return OCIDateSysDate(err, sys_date);
-
-}
-
-
-
-sword SDO_OCIStringAssign(OCIEnv *env, OCIError *err, CONST OCIString *rhs, 
-
-                          OCIString **lhs)
-
-{
-
-	return OCIStringAssign(env, err, rhs, lhs);
-
-}
-
-
-
-sword SDO_OCIStringAssignText(OCIEnv *env, OCIError *err, CONST text *rhs, 
-
-                              ub4 rhs_len, OCIString **lhs)
-
-{
-
-	return OCIStringAssignText(env, err, rhs, rhs_len, lhs);
-
-}
-
-
-
-sword SDO_OCIStringResize(OCIEnv *env, OCIError *err, ub4 new_size, 
-
-                          OCIString **str)
-
-{
-
-	return OCIStringResize(env, err, new_size, str);
-
-}
-
-
-
-ub4 SDO_OCIStringSize(OCIEnv *env, CONST OCIString *vs)
-
-{
-
-	return OCIStringSize(env, vs);
-
-}
-
-
-
-text *SDO_OCIStringPtr(OCIEnv *env, CONST OCIString *vs)
-
-{
-
-	return OCIStringPtr(env, vs);
-
-}
-
-
-
-sword SDO_OCIStringAllocSize(OCIEnv *env, OCIError *err, CONST OCIString *vs, 
-
-                             ub4 *allocsize)
-
-{
-
-	return OCIStringAllocSize(env, err, vs, allocsize);
-
-}
-
-
-
-sword SDO_OCIRawAssignRaw(OCIEnv *env, OCIError *err, CONST OCIRaw *rhs, 
-
-                          OCIRaw **lhs)
-
-{
-
-	return OCIRawAssignRaw(env, err, rhs, lhs);
-
-}
-
-
-
-sword SDO_OCIRawAssignBytes(OCIEnv *env, OCIError *err, CONST ub1 *rhs, 
-
-                            ub4 rhs_len, OCIRaw **lhs)
-
-{
-
-	return OCIRawAssignBytes(env, err, rhs, rhs_len, lhs);
-
-}
-
-
-
-sword SDO_OCIRawResize(OCIEnv *env, OCIError *err, ub4 new_size, OCIRaw **raw)
-
-{
-
-	return OCIRawResize(env, err, new_size, raw);
-
-}
-
-
-
-ub4 SDO_OCIRawSize(OCIEnv *env, CONST OCIRaw *raw)
-
-{
-
-	return OCIRawSize(env, raw);
-
-}
-
-
-
-ub1 *SDO_OCIRawPtr(OCIEnv *env, CONST OCIRaw *raw)
-
-{
-
-	return OCIRawPtr(env, raw);
-
-}
-
-
-
-sword SDO_OCIRawAllocSize(OCIEnv *env, OCIError *err, CONST OCIRaw *raw,
-
-						  ub4 *allocsize)
-
-{
-
-	return OCIRawAllocSize(env, err, raw, allocsize);
-
-}
-
-
-
-void SDO_OCIRefClear(OCIEnv *env, OCIRef *ref)
-
-{
-
-	OCIRefClear(env, ref);
-
-}
-
-
-
-sword SDO_OCIRefAssign(OCIEnv *env, OCIError *err, CONST OCIRef *source, 
-
-                       OCIRef **target)
-
-{
-
-	return OCIRefAssign(env, err, source, target);
-
-}
-
-
-
-boolean SDO_OCIRefIsEqual(OCIEnv *env, CONST OCIRef *x, CONST OCIRef *y)
-
-{
-
-	return OCIRefIsEqual(env, x, y);
-
-}
-
-
-
-boolean SDO_OCIRefIsNull(OCIEnv *env, CONST OCIRef *ref)
-
-{
-
-	return OCIRefIsNull(env, ref);
-
-}
-
-
-
-ub4 SDO_OCIRefHexSize(OCIEnv *env, CONST OCIRef *ref)
-
-{
-
-	return OCIRefHexSize(env, ref);
-
-}
-
-
-
-sword SDO_OCIRefFromHex(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-                        CONST text *hex, ub4 length, OCIRef **ref)
-
-{
-
-	return OCIRefFromHex(env, err, svc, hex, length, ref);
-
-}
-
-
-
-sword SDO_OCIRefToHex(OCIEnv *env, OCIError *err, CONST OCIRef *ref, 
-
-                      text *hex, ub4 *hex_length)
-
-{
-
-	return OCIRefToHex(env, err, ref, hex, hex_length);
-
-}
-
-
-
-sword SDO_OCICollSize(OCIEnv *env, OCIError *err, CONST OCIColl *coll, 
-
-					  sb4 *size)
-
-{
-
-	return OCICollSize(env, err, coll, size);
-
-}
-
-
-
-sb4 SDO_OCICollMax(OCIEnv *env, CONST OCIColl *coll)
-
-{
-
-	return OCICollMax(env, coll);
-
-}
-
-
-
-sword SDO_OCICollGetElem(OCIEnv *env, OCIError *err, CONST OCIColl *coll, 
-
-                         sb4 index, boolean *exists, dvoid **elem, 
-
-                         dvoid **elemind)
-
-{
-
-	return OCICollGetElem(env, err, coll, index, exists, elem, elemind);
-
-}
-
-
-
-sword SDO_OCICollAssignElem(OCIEnv *env, OCIError *err, sb4 index, 
-
-                            CONST dvoid *elem, 
-
-                            CONST dvoid *elemind, OCIColl *coll)
-
-{
-
-	return OCICollAssignElem(env, err, index, elem, elemind, coll);
-
-}
-
-
-
-sword SDO_OCICollAssign(OCIEnv *env, OCIError *err, CONST OCIColl *rhs, 
-
-                        OCIColl *lhs)
-
-{
-
-	return OCICollAssign(env, err, rhs, lhs);
-
-}
-
-
-
-sword SDO_OCICollAppend(OCIEnv *env, OCIError *err, CONST dvoid *elem, 
-
-                        CONST dvoid *elemind, OCIColl *coll)
-
-{
-
-	return OCICollAppend(env, err, elem, elemind, coll);
-
-}
-
-
-
-sword SDO_OCICollTrim(OCIEnv *env, OCIError *err, sb4 trim_num, 
-
-                      OCIColl *coll)
-
-{
-
-	return OCICollTrim(env, err, trim_num, coll);
-
-}
-
-
-
-sword SDO_OCIIterCreate(OCIEnv *env, OCIError *err, CONST OCIColl *coll, 
-
-                        OCIIter **itr)
-
-{
-
-	return OCIIterCreate(env, err, coll, itr);
-
-}
-
-
-
-sword SDO_OCIIterDelete(OCIEnv *env, OCIError *err, OCIIter **itr)
-
-{
-
-	return OCIIterDelete(env, err, itr);
-
-}
-
-
-
-sword SDO_OCIIterInit(OCIEnv *env, OCIError *err, CONST OCIColl *coll, 
-
-                      OCIIter *itr)
-
-{
-
-	return OCIIterInit(env, err, coll, itr);
-
-}
-
-
-
-sword SDO_OCIIterGetCurrent(OCIEnv *env, OCIError *err, CONST OCIIter *itr, 
-
-                            dvoid **elem, dvoid **elemind)
-
-{
-
-	return OCIIterGetCurrent(env, err, itr, elem, elemind);
-
-}
-
-
-
-sword SDO_OCIIterNext(OCIEnv *env, OCIError *err, OCIIter *itr, 
-
-                      dvoid **elem, dvoid **elemind, boolean *eoc)
-
-{
-
-	return OCIIterNext(env, err, itr, elem, elemind, eoc);
-
-}
-
-
-
-sword SDO_OCIIterPrev(OCIEnv *env, OCIError *err, OCIIter *itr, 
-
-                      dvoid **elem, dvoid **elemind, boolean *boc)
-
-{
-
-	return OCIIterPrev(env, err, itr, elem, elemind, boc);
-
-}
-
-
-
-sword SDO_OCITableSize(OCIEnv *env, OCIError *err, CONST OCITable *tbl, 
-
-					   sb4 *size)
-
-{
-
-	return OCITableSize(env, err, tbl, size);
-
-}
-
-
-
-sword SDO_OCITableExists(OCIEnv *env, OCIError *err, CONST OCITable *tbl,
-
-						 sb4 index, boolean *exists)
-
-{
-
-	return OCITableExists(env, err, tbl, index, exists);
-
-}
-
-
-
-sword SDO_OCITableDelete(OCIEnv *env, OCIError *err, sb4 index, OCITable *tbl)
-
-{
-
-	return OCITableDelete(env, err, index, tbl);
-
-}
-
-
-
-sword SDO_OCITableFirst(OCIEnv *env, OCIError *err, CONST OCITable *tbl, 
-
-                        sb4 *index)
-
-{
-
-	return OCITableFirst(env, err, tbl, index);
-
-}
-
-
-
-sword SDO_OCITableLast(OCIEnv *env, OCIError *err, CONST OCITable *tbl, 
-
-                       sb4 *index)
-
-{
-
-	return OCITableLast(env, err, tbl, index);
-
-}
-
-
-
-sword SDO_OCITableNext(OCIEnv *env, OCIError *err, sb4 index, 
-
-					   CONST OCITable *tbl, sb4 *next_index, boolean *exists)
-
-{
-
-	return OCITableNext(env, err, index, tbl, next_index, exists);
-
-}
-
-
-
-sword SDO_OCITablePrev(OCIEnv *env, OCIError *err, sb4 index, 
-
-                       CONST OCITable *tbl, sb4 *prev_index, boolean *exists)
-
-{
-
-	return OCITablePrev(env, err, index, tbl, prev_index, exists);
-
-}
-
-
-
-
-
-/********************************************************************************/
-
-/* Part IV -- OCI open type manager interfaces                                  */
-
-/********************************************************************************/
-
-sword SDO_OCITypeIterNew(OCIEnv *env, OCIError *err, OCIType *tdo, 
-
-                         OCITypeIter **iteratorOCI)
-
-{
-
-	return OCITypeIterNew(env, err, tdo, iteratorOCI);
-
-}
-
-
-
-sword SDO_OCITypeIterSet(OCIEnv *env, OCIError *err, OCIType *tdo, 
-
-						 OCITypeIter *iteratorOCI)
-
-{
-
-	return OCITypeIterSet(env, err, tdo, iteratorOCI);
-
-}
-
-
-
-sword SDO_OCITypeIterFree(OCIEnv *env, OCIError *err, OCITypeIter *iteratorOCI)
-
-{
-
-	return OCITypeIterFree(env, err, iteratorOCI);
-
-}
-
-
-
-sword SDO_OCITypeByName(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-                        CONST text *schema_name, ub4 s_length,
-
-                        CONST text *type_name, ub4 t_length,
-
-                        CONST text *version_name, ub4 v_length,
-
-                        OCIDuration pin_duration, OCITypeGetOpt get_option,
-
-                        OCIType **tdo)
-
-{
-
-	return OCITypeByName(env, err, svc, schema_name, s_length, type_name, 
-
-						 t_length, version_name, v_length, pin_duration, 
-
-						 get_option, tdo);
-
-}
-
-
-
-sword SDO_OCITypeArrayByName(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc,
-
-                             ub4 array_len, CONST text *schema_name[], 
-
-							 ub4 s_length[], CONST text *type_name[], 
-
-							 ub4 t_length[], CONST text *version_name[], 
-
-							 ub4 v_length[], OCIDuration pin_duration,
-
-                             OCITypeGetOpt get_option, OCIType *tdo[])
-
-{
-
-	return OCITypeArrayByName(env, err, svc, array_len, schema_name, s_length, 
-
-							  type_name, t_length, version_name, v_length, 
-
-							  pin_duration, get_option, tdo);
-
-}
-
-
-
-sword SDO_OCITypeByRef(OCIEnv *env, OCIError *err, CONST OCIRef *type_ref, 
-
-					   OCIDuration pin_duration,OCITypeGetOpt get_option, 
-
-					   OCIType **tdo)
-
-{
-
-	return OCITypeByRef(env, err, type_ref, pin_duration, get_option, tdo);
-
-}
-
-
-
-sword SDO_OCITypeArrayByRef(OCIEnv *env, OCIError *err, ub4 array_len, 
-
-							CONST OCIRef *type_ref[], OCIDuration pin_duration,
-
-							OCITypeGetOpt get_option, OCIType *tdo[])
-
-{
-
-	return OCITypeArrayByRef(env, err, array_len, type_ref, pin_duration,
-
-							 get_option, tdo);
-
-}
-
-
-
-text* SDO_OCITypeName(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                      ub4 *n_length)
-
-{
-
-	return OCITypeName(env, err, tdo, n_length);
-
-}
-
-
-
-text* SDO_OCITypeSchema(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-						ub4 *n_length)
-
-{
-
-	return OCITypeSchema(env, err, tdo, n_length);
-
-}
-
-
-
-OCITypeCode SDO_OCITypeTypeCode(OCIEnv *env, OCIError *err, CONST OCIType *tdo)
-
-{
-
-	return OCITypeTypeCode(env, err, tdo);
-
-}
-
-
-
-OCITypeCode SDO_OCITypeCollTypeCode(OCIEnv *env, OCIError *err, 
-
-									CONST OCIType *tdo)
-
-{
-
-	return OCITypeCollTypeCode(env, err, tdo);
-
-}
-
-
-
-text* SDO_OCITypeVersion(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                         ub4 *v_length)
-
-{
-
-	return OCITypeVersion(env, err, tdo, v_length);
-
-}
-
-
-
-ub4 SDO_OCITypeAttrs(OCIEnv *env, OCIError *err, CONST OCIType *tdo)
-
-{
-
-	return OCITypeAttrs(env, err, tdo);
-
-}
-
-
-
-ub4 SDO_OCITypeMethods(OCIEnv *env, OCIError *err, CONST OCIType *tdo)
-
-{
-
-	return OCITypeMethods(env, err, tdo);
-
-}
-
-
-
-text* SDO_OCITypeElemName(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem, 
-
-                          ub4 *n_length)
-
-{
-
-	return OCITypeElemName(env, err, elem, n_length);
-
-}
-
-
-
-OCITypeCode SDO_OCITypeElemTypeCode(OCIEnv *env, OCIError *err,
-
-                                    CONST OCITypeElem *elem)
-
-{
-
-	return OCITypeElemTypeCode(env, err, elem);
-
-}
-
-
-
-sword SDO_OCITypeElemType(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem, 
-
-                          OCIType **elem_tdo)
-
-{
-
-	return OCITypeElemType(env, err, elem, elem_tdo);
-
-}
-
-
-
-ub4 SDO_OCITypeElemFlags(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem)
-
-{
-
-	return OCITypeElemFlags(env, err, elem);
-
-}
-
-
-
-ub1 SDO_OCITypeElemNumPrec(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem)
-
-{
-
-	return OCITypeElemNumPrec(env, err, elem);
-
-}
-
-
-
-sb1 SDO_OCITypeElemNumScale(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem)
-
-{
-
-	return OCITypeElemNumScale(env, err, elem);
-
-}
-
-
-
-ub4 SDO_OCITypeElemLength(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem)
-
-{
-
-	return OCITypeElemLength(env, err, elem);
-
-}
-
-
-
-ub2 SDO_OCITypeElemCharSetID(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem)
-
-{
-
-	return OCITypeElemCharSetID(env, err, elem);
-
-}
-
-
-
-ub2 SDO_OCITypeElemCharSetForm(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem)
-
-{
-
-	return OCITypeElemCharSetForm(env, err, elem);
-
-}
-
-
-
-sword SDO_OCITypeElemParameterizedType(OCIEnv *env, OCIError *err,
-
-                                       CONST OCITypeElem *elem, 
-
-									   OCIType **type_stored)
-
-{
-
-	return OCITypeElemParameterizedType(env, err, elem, type_stored);
-
-}
-
-
-
-OCITypeCode SDO_OCITypeElemExtTypeCode(OCIEnv *env, OCIError *err,
-
-                                       CONST OCITypeElem *elem)
-
-{
-
-	return OCITypeElemExtTypeCode(env, err, elem);
-
-}
-
-
-
-sword SDO_OCITypeAttrByName(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                            CONST text *name, ub4 n_length, OCITypeElem **elem)
-
-{
-
-	return OCITypeAttrByName(env, err, tdo, name, n_length, elem);
-
-}
-
-
-
-sword SDO_OCITypeAttrNext(OCIEnv *env, OCIError *err, OCITypeIter *iteratorOCI,
-
-                          OCITypeElem **elem)
-
-{
-
-	return OCITypeAttrNext(env, err, iteratorOCI, elem);
-
-}
-
-
-
-sword SDO_OCITypeCollElem(OCIEnv *env, OCIError *err, CONST OCIType *tdo,
-
-                          OCITypeElem **element)
-
-{
-
-	return OCITypeCollElem(env, err, tdo, element);
-
-}
-
-
-
-sword SDO_OCITypeCollSize(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                          ub4 *num_elems)
-
-{
-
-	return OCITypeCollSize(env, err, tdo, num_elems);
-
-}
-
-
-
-sword SDO_OCITypeCollExtTypeCode(OCIEnv *env, OCIError *err,
-
-                                 CONST OCIType *tdo, OCITypeCode *sqt_code)
-
-{
-
-	return OCITypeCollExtTypeCode(env, err, tdo, sqt_code);
-
-}
-
-
-
-ub4 SDO_OCITypeMethodOverload(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                              CONST text *method_name, ub4 m_length)
-
-{
-
-	return OCITypeMethodOverload(env, err, tdo, method_name, m_length);
-
-}
-
-
-
-sword SDO_OCITypeMethodByName(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                              CONST text *method_name, ub4 m_length,
-
-                              OCITypeMethod **mdos)
-
-{
-
-	return OCITypeMethodByName(env, err, tdo, method_name, m_length, mdos);
-
-}
-
-
-
-sword SDO_OCITypeMethodNext(OCIEnv *env, OCIError *err, OCITypeIter *iteratorOCI,
-
-                            OCITypeMethod **mdo)
-
-{
-
-	return OCITypeMethodNext(env, err, iteratorOCI, mdo);
-
-}
-
-
-
-text *SDO_OCITypeMethodName(OCIEnv *env, OCIError *err,
-
-                            CONST OCITypeMethod *mdo, ub4 *n_length)
-
-{
-
-	return OCITypeMethodName(env, err, mdo, n_length);
-
-}
-
-
-
-OCITypeEncap SDO_OCITypeMethodEncap(OCIEnv *env, OCIError *err,
-
-                                    CONST OCITypeMethod *mdo)
-
-{
-
-	return OCITypeMethodEncap(env, err, mdo);
-
-}
-
-
-
-OCITypeMethodFlag SDO_OCITypeMethodFlags(OCIEnv *env, OCIError *err,
-
-                                         CONST OCITypeMethod *mdo)
-
-{
-
-	return OCITypeMethodFlags(env, err, mdo);
-
-}
-
-
-
-sword SDO_OCITypeMethodMap(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                           OCITypeMethod **mdo)
-
-{
-
-	return OCITypeMethodMap(env, err, tdo, mdo);
-
-}
-
-
-
-sword SDO_OCITypeMethodOrder(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                             OCITypeMethod **mdo)
-
-{
-
-	return OCITypeMethodOrder(env, err, tdo, mdo);
-
-}
-
-
-
-ub4 SDO_OCITypeMethodParams(OCIEnv *env, OCIError *err,
-
-                            CONST OCITypeMethod *mdo)
-
-{
-
-	return OCITypeMethodParams(env, err, mdo);
-
-}
-
-
-
-sword SDO_OCITypeResult(OCIEnv *env, OCIError *err, CONST OCITypeMethod *mdo,
-
-                        OCITypeElem **elem)
-
-{
-
-	return OCITypeResult(env, err, mdo, elem);
-
-}
-
-
-
-sword SDO_OCITypeParamByPos(OCIEnv *env, OCIError *err, CONST OCITypeMethod *mdo, 
-
-							ub4 position, OCITypeElem **elem)
-
-{
-
-	return OCITypeParamByPos(env, err, mdo, position, elem);
-
-}
-
-
-
-sword SDO_OCITypeParamByName(OCIEnv *env, OCIError *err, CONST OCITypeMethod *mdo, 
-
-                             CONST text *name, ub4 n_length, OCITypeElem **elem)
-
-{
-
-	return OCITypeParamByName(env, err, mdo, name, n_length, elem);
-
-}
-
-
-
-sword SDO_OCITypeParamPos(OCIEnv *env, OCIError *err, CONST OCITypeMethod *mdo, 
-
-                          CONST text *name, ub4 n_length, ub4 *position, 
-
-                          OCITypeElem **elem)
-
-{
-
-	return OCITypeParamPos(env, err, mdo, name, n_length, position, elem);
-
-}
-
-
-
-OCITypeParamMode SDO_OCITypeElemParamMode(OCIEnv *env, OCIError *err,
-
-                                          CONST OCITypeElem *elem)
-
-{
-
-	return OCITypeElemParamMode(env, err, elem);
-
-}
-
-
-
-text* SDO_OCITypeElemDefaultValue(OCIEnv *env, OCIError *err,
-
-                                  CONST OCITypeElem *elem, ub4 *d_v_length)
-
-{
-
-	return OCITypeElemDefaultValue(env, err, elem, d_v_length);
-
-}
-
-
-
-sword SDO_OCITypeVTInit(OCIEnv *env, OCIError *err)
-
-{
-
-	return OCITypeVTInit(env, err);
-
-}
-
- 
-
-sword SDO_OCITypeVTInsert(OCIEnv *env, OCIError *err, CONST text *schema_name,
-
-						  ub4 s_n_length, CONST text *type_name, ub4 t_n_length, 
-
-						  CONST text *user_version, ub4 u_v_length)
-
-{
-
-	return OCITypeVTInsert(env, err, schema_name, s_n_length, type_name, 
-
-						   t_n_length, user_version, u_v_length);
-
-}
-
-
-
-sword SDO_OCITypeVTSelect(OCIEnv *env, OCIError *err, CONST text *schema_name,
-
-						  ub4 s_n_length, CONST text *type_name, ub4 t_n_length, 
-
-						  text **user_version, ub4 *u_v_length, ub2 *version)
-
-{
-
-	return OCITypeVTSelect(env, err, schema_name, s_n_length, type_name, 
-
-						   t_n_length, user_version, u_v_length, version);
-
-}
-
-
-
-
-
diff --git a/src/terralib/drivers/Oracle/TeOCISDO.h b/src/terralib/drivers/Oracle/TeOCISDO.h
deleted file mode 100644
index c17218a..0000000
--- a/src/terralib/drivers/Oracle/TeOCISDO.h
+++ /dev/null
@@ -1,1310 +0,0 @@
-
-/*! \file TeOCISDO.h
-    
-	This file was created by Oracle Corporation and contains functions to 
-	works with the Oracle Call Interface (OCI) Library.
-	Copyright 1998, Oracle SDO.  
-*/
-
-#ifndef SDO_OCI_H
-
-#define SDO_OCI_H
-
-#include "TeOracleDefines.h"
-
-/** @name Part I -- OCI fundamental interfaces
-*/
-//@{
-TLORACLE_DLL sword SDO_OCIEnvCreate(OCIEnv **envhpp, ub4 mode, dvoid *ctxp, 
-						dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-						dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-						void (*mfreefp)(dvoid *ctxp, dvoid *memptr),
-						size_t xtramensz, dvoid **usrmempp); 
-
-TLORACLE_DLL sword SDO_OCIInitialize(ub4 mode, dvoid *ctxp, 
-						dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-						dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-						void (*mfreefp)(dvoid *ctxp, dvoid *memptr));
-
-TLORACLE_DLL sword SDO_OCIHandleAlloc(CONST dvoid *parenth, dvoid **hndlpp, ub4 type, 
-						 size_t xtramem_sz, dvoid **usrmempp);
-
-TLORACLE_DLL sword SDO_OCIHandleFree(dvoid *hndlp, ub4 type);
-
-TLORACLE_DLL sword SDO_OCIDescriptorAlloc(CONST dvoid *parenth, dvoid **descpp, ub4 type,
-							 size_t xtramem_sz, dvoid **usrmempp);
-
-TLORACLE_DLL sword SDO_OCIDescriptorFree(dvoid *descp, ub4 type);
-
-TLORACLE_DLL sword SDO_OCIEnvInit(OCIEnv **envp, ub4 mode, size_t xtramem_sz, 
-					 dvoid **usrmempp);
-
-TLORACLE_DLL sword SDO_OCIServerAttach(OCIServer *srvhp, OCIError *errhp,
-						  CONST text *dblink, sb4 dblink_len, ub4 mode);
-
-TLORACLE_DLL sword SDO_OCIServerDetach(OCIServer *srvhp, OCIError *errhp, ub4 mode);
-
-TLORACLE_DLL sword SDO_OCISessionBegin(OCISvcCtx *svchp, OCIError *errhp, 
-						  OCISession *usrhp, ub4 credt, ub4 mode);
-
-TLORACLE_DLL sword SDO_OCISessionEnd(OCISvcCtx *svchp, OCIError *errhp, 
-						OCISession *usrhp, ub4 mode);
-
-TLORACLE_DLL sword SDO_OCILogon(OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp, 
-				   CONST text *username, ub4 uname_len, CONST text *password, 
-				   ub4 passwd_len, CONST text *dbname, ub4 dbname_len);
-
-TLORACLE_DLL sword SDO_OCILogoff(OCISvcCtx *svchp, OCIError *errhp);
-
-TLORACLE_DLL sword SDO_OCIPasswordChange(OCISvcCtx *svchp, OCIError *errhp, 
-							CONST text *user_name, ub4 usernm_len, 
-							CONST text *opasswd, ub4 opasswd_len, 
-							CONST text *npasswd, ub4 npasswd_len, ub4 mode);
-
-TLORACLE_DLL sword SDO_OCIStmtPrepare(OCISvcCtx *svchp, OCIStmt *stmtp, OCIError *errhp, CONST OraText *stmt,
-						 ub4 stmt_len, CONST OraText *key, ub4 keylen, ub4 language, ub4 mode);
-
-TLORACLE_DLL sword SDO_OCIBindByPos(OCIStmt *stmtp, OCIBind **bindp, OCIError *errhp,
-					   ub4 position, dvoid *valuep, sb4 value_sz,
-					   ub2 dty, dvoid *indp, ub2 *alenp, ub2 *rcodep,
-					   ub4 maxarr_len, ub4 *curelep, ub4 mode);
-
-TLORACLE_DLL sword SDO_OCIBindByName(OCIStmt *stmtp, OCIBind **bindp, OCIError *errhp,
-						CONST text *placeholder, sb4 placeh_len, 
-						dvoid *valuep, sb4 value_sz, ub2 dty, 
-						dvoid *indp, ub2 *alenp, ub2 *rcodep, 
-						ub4 maxarr_len, ub4 *curelep, ub4 mode);
-
-TLORACLE_DLL sword SDO_OCIBindObject(OCIBind *bindp, OCIError *errhp, CONST OCIType *type, 
-						dvoid **pgvpp, ub4 *pvszsp, dvoid **indpp, ub4 *indszp);
-
-TLORACLE_DLL sword SDO_OCIBindDynamic(OCIBind *bindp, OCIError *errhp, dvoid *ictxp,
-						 OCICallbackInBind icbfp, dvoid *octxp,
-						 OCICallbackOutBind ocbfp);
-
-TLORACLE_DLL sword SDO_OCIBindArrayOfStruct(OCIBind *bindp, OCIError *errhp, 
-                               ub4 pvskip, ub4 indskip, ub4 alskip, ub4 rcskip);
-
-TLORACLE_DLL sword SDO_OCIStmtGetPieceInfo(OCIStmt *stmtp, OCIError *errhp, 
-                              dvoid **hndlpp, ub4 *typep, ub1 *in_outp, 
-							  ub4 *iterp, ub4 *idxp, ub1 *piecep);
-
-TLORACLE_DLL sword SDO_OCIStmtSetPieceInfo(dvoid *hndlp, ub4 type, OCIError *errhp, 
-                              CONST dvoid *bufp, ub4 *alenp, ub1 piece, 
-                              CONST dvoid *indp, ub2 *rcodep);
-
-TLORACLE_DLL sword SDO_OCIStmtExecute(OCISvcCtx *svchp, OCIStmt *stmtp, OCIError *errhp, 
-						 ub4 iters, ub4 rowoff, CONST OCISnapshot *snap_in, 
-						 OCISnapshot *snap_out, ub4 mode);
-
-TLORACLE_DLL sword SDO_OCIDefineByPos(OCIStmt *stmtp, OCIDefine **defnp, OCIError *errhp,
-						 ub4 position, dvoid *valuep, sb4 value_sz, ub2 dty,
-						 dvoid *indp, ub2 *rlenp, ub2 *rcodep, ub4 mode);
-
-TLORACLE_DLL sword SDO_OCIDefineObject(OCIDefine *defnp, OCIError *errhp, 
-                          CONST OCIType *type, dvoid **pgvpp, 
-                          ub4 *pvszsp, dvoid **indpp, ub4 *indszp);
-
-TLORACLE_DLL sword SDO_OCIDefineDynamic(OCIDefine *defnp, OCIError *errhp, dvoid *octxp,
-                           OCICallbackDefine ocbfp);
-
-TLORACLE_DLL sword SDO_OCIDefineArrayOfStruct(OCIDefine *defnp, OCIError *errhp, ub4 pvskip,
-                                 ub4 indskip, ub4 rlskip, ub4 rcskip);
-
-TLORACLE_DLL sword SDO_OCIStmtFetch(OCIStmt *stmtp, OCIError *errhp, ub4 nrows, 
-                       ub2 orientation, ub4 mode);
-
-TLORACLE_DLL sword SDO_OCIStmtGetBindInfo(OCIStmt *stmtp, OCIError *errhp, ub4 size, 
-                             ub4 startloc, sb4 *found, text *bvnp[], ub1 bvnl[],
-                             text *invp[], ub1 inpl[], ub1 dupl[], OCIBind *hndl[]);
-
-TLORACLE_DLL sword SDO_OCIDescribeAny(OCISvcCtx *svchp, OCIError *errhp, dvoid *objptr, 
-                         ub4 objnm_len, ub1 objptr_typ, ub1 info_level,
-						 ub1 objtyp, OCIDescribe *dschp);
-
-TLORACLE_DLL sword SDO_OCIParamGet(CONST dvoid *hndlp, ub4 htype, OCIError *errhp, 
-                      dvoid **parmdpp, ub4 pos);
-
-TLORACLE_DLL sword SDO_OCIParamSet(dvoid *hdlp, ub4 htyp, OCIError *errhp, CONST dvoid *dscp,
-                      ub4 dtyp, ub4 pos);
-
-TLORACLE_DLL sword SDO_OCITransStart(OCISvcCtx *svchp, OCIError *errhp, uword timeout, ub4 flags);
-
-TLORACLE_DLL sword SDO_OCITransDetach(OCISvcCtx *svchp, OCIError *errhp, ub4 flags );
-
-TLORACLE_DLL sword SDO_OCITransCommit(OCISvcCtx *svchp, OCIError *errhp, ub4 flags);
-
-TLORACLE_DLL sword SDO_OCITransRollback(OCISvcCtx *svchp, OCIError *errhp, ub4 flags);
-
-TLORACLE_DLL sword SDO_OCITransPrepare(OCISvcCtx *svchp, OCIError *errhp, ub4 flags);
-
-TLORACLE_DLL sword SDO_OCITransForget(OCISvcCtx *svchp, OCIError *errhp, ub4 flags);
-
-TLORACLE_DLL sword SDO_OCIErrorGet(dvoid *hndlp, ub4 recordno, text *sqlstate,
-                      sb4 *errcodep, text *bufp, ub4 bufsiz, ub4 type);
-
-TLORACLE_DLL sword SDO_OCILobAppend(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *dst_locp,
-                       OCILobLocator *src_locp);
-
-TLORACLE_DLL sword SDO_OCILobAssign(OCIEnv *envhp, OCIError *errhp, CONST OCILobLocator *src_locp, 
-                       OCILobLocator **dst_locpp);
-
-TLORACLE_DLL sword SDO_OCILobCharSetForm(OCIEnv *envhp, OCIError *errhp, 
-							CONST OCILobLocator *locp, ub1 *csfrm);
-
-TLORACLE_DLL sword SDO_OCILobCharSetId(OCIEnv *envhp, OCIError *errhp, 
-						  CONST OCILobLocator *locp, ub2 *csid);
-
-TLORACLE_DLL sword SDO_OCILobCopy(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *dst_locp,
-                     OCILobLocator *src_locp, ub4 amount, ub4 dst_offset, 
-                     ub4 src_offset);
-
-TLORACLE_DLL sword SDO_OCILobDisableBuffering(OCISvcCtx *svchp, OCIError *errhp,
-								 OCILobLocator *locp);
-
-TLORACLE_DLL sword SDO_OCILobEnableBuffering(OCISvcCtx *svchp, OCIError *errhp,
-								OCILobLocator *locp);
-
-TLORACLE_DLL sword SDO_OCILobErase(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                      ub4 *amount, ub4 offset);
-
-TLORACLE_DLL sword SDO_OCILobFileClose(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *filep);
-
-TLORACLE_DLL sword SDO_OCILobFileCloseAll(OCISvcCtx *svchp, OCIError *errhp);
-
-TLORACLE_DLL sword SDO_OCILobFileExists(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *filep,
-						   boolean *flag);
-
-TLORACLE_DLL sword SDO_OCILobFileGetName(OCIEnv *envhp, OCIError *errhp, 
-							CONST OCILobLocator *filep, text *dir_alias, 
-							ub2 *d_length, text *filename, ub2 *f_length);
-
-TLORACLE_DLL sword SDO_OCILobFileIsOpen(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *filep,
-                           boolean *flag);
-
-TLORACLE_DLL sword SDO_OCILobFileOpen(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *filep,
-                         ub1 mode);
-
-TLORACLE_DLL sword SDO_OCILobFileSetName(OCIEnv *envhp, OCIError *errhp, OCILobLocator **filepp, 
-                            CONST text *dir_alias, ub2 d_length, 
-                            CONST text *filename, ub2 f_length);
-
-TLORACLE_DLL sword SDO_OCILobFlushBuffer(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                            ub4 flag);
-
-TLORACLE_DLL sword SDO_OCILobGetLength(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                          ub4 *lenp);
-
-TLORACLE_DLL sword SDO_OCILobIsEqual(OCIEnv *envhp, CONST OCILobLocator *x, 
-						CONST OCILobLocator *y, boolean *is_equal);
-
-TLORACLE_DLL sword SDO_OCILobLoadFromFile(OCISvcCtx *svchp, OCIError *errhp, 
-							 OCILobLocator *dst_locp, OCILobLocator *src_filep, 
-                             ub4 amount, ub4 dst_offset, ub4 src_offset);
-
-TLORACLE_DLL sword SDO_OCILobLocatorIsInit(OCIEnv *envhp, OCIError *errhp, 
-							  CONST OCILobLocator *locp, boolean *is_initialized);
-
-TLORACLE_DLL sword SDO_OCILobRead(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                     ub4 *amtp, ub4 offset, dvoid *bufp, ub4 bufl, 
-                     dvoid *ctxp, sb4 (*cbfp)(dvoid *ctxp, CONST dvoid *bufp, 
-					 ub4 len, ub1 piece), ub2 csid, ub1 csfrm);
-
-TLORACLE_DLL sword SDO_OCILobTrim(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                     ub4 newlen);
-
-TLORACLE_DLL sword SDO_OCILobWrite(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                      ub4 *amtp, ub4 offset, dvoid *bufp, ub4 buflen, ub1 piece, 
-					  dvoid *ctxp, sb4 (*cbfp)(dvoid *ctxp, dvoid *bufp, ub4 *len, 
-					  ub1 *piece), ub2 csid, ub1 csfrm);
-
-TLORACLE_DLL sword SDO_OCIBreak(dvoid *hndlp, OCIError *errhp);
-
-
-TLORACLE_DLL sword SDO_OCIServerVersion(dvoid *hndlp, OCIError *errhp, text *bufp, ub4 bufsz,
-                           ub1 hndltype);
-
-TLORACLE_DLL sword SDO_OCIAttrGet(CONST dvoid *trgthndlp, ub4 trghndltyp, dvoid *attributep, 
-					 ub4 *sizep, ub4 attrtype, OCIError *errhp);
-
-
-TLORACLE_DLL sword SDO_OCIAttrSet(dvoid *trgthndlp, ub4 trghndltyp, dvoid *attributep,
-					 ub4 size, ub4 attrtype, OCIError *errhp);
-
-TLORACLE_DLL sword SDO_OCISvcCtxToLda(OCISvcCtx *svchp, OCIError *errhp, Lda_Def *ldap);
-
-TLORACLE_DLL sword SDO_OCILdaToSvcCtx(OCISvcCtx **svchpp, OCIError *errhp, Lda_Def *ldap);
-
-TLORACLE_DLL sword SDO_OCIResultSetToStmt(OCIResult *rsetdp, OCIError *errhp);
-//@}  
-
-
-/** @name Part II -- OCI navigational interfaces
-*/
-//@{
-TLORACLE_DLL sword SDO_OCIObjectNew(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc,
-
-					   OCITypeCode typecode, OCIType *tdo, dvoid *table, 
-
-					   OCIDuration duration, boolean value, dvoid **instance);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectPin(OCIEnv *env, OCIError *err, OCIRef *object_ref, 
-
-					   OCIComplexObject *corhdl, OCIPinOpt pin_option, 
-
-					   OCIDuration pin_duration, OCILockOpt lock_option, 
-
-					   dvoid **object);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectUnpin(OCIEnv *env, OCIError *err, dvoid *object);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectPinCountReset(OCIEnv *env, OCIError *err, dvoid *object);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectLock(OCIEnv *env, OCIError *err, dvoid *object);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectMarkUpdate(OCIEnv *env, OCIError *err, dvoid *object);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectUnmark(OCIEnv *env, OCIError *err, dvoid *object);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectUnmarkByRef(OCIEnv *env, OCIError *err, OCIRef *ref);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectFree(OCIEnv *env, OCIError *err, dvoid *instance, 
-
-                        ub2 flags);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectMarkDeleteByRef(OCIEnv *env, OCIError *err, OCIRef *object_ref);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectMarkDelete(OCIEnv *env, OCIError *err, dvoid *instance);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectFlush(OCIEnv *env, OCIError *err, dvoid *object);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectRefresh(OCIEnv *env, OCIError *err, dvoid *object);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectCopy(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-                        dvoid *source, dvoid *null_source, dvoid *target, 
-
-						dvoid *null_target, OCIType *tdo, OCIDuration duration, 
-
-						ub1 option);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectGetTypeRef(OCIEnv *env, OCIError *err, dvoid *instance, 
-
-                              OCIRef *type_ref);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectGetObjectRef(OCIEnv *env, OCIError *err, dvoid *object, 
-
-                                OCIRef *object_ref);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectGetInd(OCIEnv *env, OCIError *err, dvoid *instance, 
-
-                          dvoid **null_struct);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectExists(OCIEnv *env, OCIError *err, dvoid *ins, boolean *exist);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectGetProperty(OCIEnv *envh, OCIError *errh, CONST dvoid *obj, 
-
-							   OCIObjectPropId propertyId, dvoid *property, 
-
-							   ub4 *size);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectIsLocked(OCIEnv *env, OCIError *err, dvoid *ins, boolean *lock);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectIsDirty(OCIEnv *env, OCIError *err, dvoid *ins, boolean *dirty);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectPinTable(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-							CONST text *schema_name, ub4 s_n_length, 
-
-							CONST text *object_name, ub4 o_n_length, 
-
-							CONST OCIRef *scope_obj_ref, OCIDuration pin_duration, 
-
-							dvoid** object);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectArrayPin(OCIEnv *env, OCIError *err, OCIRef **ref_array, 
-
-							ub4 array_size, OCIComplexObject **cor_array,
-
-							ub4 cor_array_size, OCIPinOpt pin_option, 
-
-							OCIDuration pin_duration, OCILockOpt lock, 
-
-							dvoid **obj_array, ub4 *pos);
-
-
-
-TLORACLE_DLL sword SDO_OCICacheFlush(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-						dvoid *context, OCIRef *(*get)(dvoid *context, ub1 *last),
-
-						OCIRef **ref);
-
-
-
-TLORACLE_DLL sword SDO_OCICacheRefresh(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc,
-
-						  OCIRefreshOpt option, dvoid *context,
-
-						  OCIRef *(*get)(dvoid *context), OCIRef **ref);
-
-
-
-TLORACLE_DLL sword SDO_OCICacheUnpin(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc);
-
-
-
-TLORACLE_DLL sword SDO_OCICacheFree(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc); 
-
-
-
-TLORACLE_DLL sword SDO_OCICacheUnmark(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc);
-
-
-
-TLORACLE_DLL sword SDO_OCIDurationBegin(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-                           OCIDuration parent, OCIDuration *dur);
-
-
-
-TLORACLE_DLL sword SDO_OCIDurationEnd(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-                         OCIDuration duration);
-
-
-
-TLORACLE_DLL sword SDO_OCIDurationGetParent(OCIEnv *env, OCIError *err, 
-
-                               OCIDuration duration, OCIDuration *parent);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectAlwaysLatest(OCIEnv *env, OCIError *err, dvoid *object);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectNotAlwaysLatest(OCIEnv *env, OCIError *err, dvoid *object);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectFlushRefresh(OCIEnv *env, OCIError *err, dvoid *object);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectIsLoaded(OCIEnv *env, OCIError *err, dvoid *ins, 
-
-							boolean *load);
-
-
-
-TLORACLE_DLL sword SDO_OCIObjectIsDirtied(OCIEnv *env, OCIError *err, dvoid *ins,
-
-							 boolean *dirty);
-
-
-
-TLORACLE_DLL sword SDO_OCICacheGetObjects(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc,
-
-							 OCIObjectProperty property, dvoid *client_context,
-
-							 void (*client_callback)(dvoid *client_context,
-
-							 dvoid *object));
-
-
-
-TLORACLE_DLL sword SDO_OCICacheRegister(OCIEnv *env, OCIError *err, OCIObjectEvent event,
-
-						   dvoid *client_context, void (*client_callback)(
-
-						   dvoid *client_context, OCIObjectEvent event,
-
-						   dvoid *object));
-
-
-
-TLORACLE_DLL sword SDO_OCICacheFlushRefresh(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-							   dvoid *context, OCIRef *(*get)(dvoid *context, 
-
-							   ub1 *last), OCIRef **ref);
-
-//@}
-
-
-/** @name Part III -- OCI primitive OTS interfaces  
-*/
-//@{
-TLORACLE_DLL void SDO_OCINumberSetZero(OCIError *err, OCINumber *num);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberAdd(OCIError *err, CONST OCINumber *number1, 
-
-                       CONST OCINumber *number2, OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberSub(OCIError *err, CONST OCINumber *number1, 
-
-                       CONST OCINumber *number2, OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberMul(OCIError *err, CONST OCINumber *number1, 
-
-                       CONST OCINumber *number2, OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberDiv(OCIError *err, CONST OCINumber *number1, 
-
-                       CONST OCINumber *number2, OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberMod(OCIError *err, CONST OCINumber *number1, 
-
-                       CONST OCINumber *number2, OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberIntPower(OCIError *err, CONST OCINumber *base,
-
-                            CONST sword exp, OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberNeg(OCIError *err, CONST OCINumber *number,
-
-                       OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberToText(OCIError *err, CONST OCINumber *number, 
-
-                          CONST text *fmt, ub4 fmt_length,
-
-                          CONST text *nls_params, ub4 nls_p_length,
-
-                          ub4 *buf_size, text *buf);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberFromText(OCIError *err, CONST text *str, ub4 str_length, 
-
-							CONST text *fmt, ub4 fmt_length, 
-
-							CONST text *nls_params, ub4 nls_p_length, 
-
-							OCINumber *number);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberToInt(OCIError *err, CONST OCINumber *number,
-
-                         uword rsl_length, uword rsl_flag, dvoid *rsl);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberFromInt(OCIError *err, CONST dvoid *inum, uword inum_length,
-
-						   uword inum_s_flag, OCINumber *number);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberToReal(OCIError *err, CONST OCINumber *number,
-
-                          uword rsl_length, dvoid *rsl);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberFromReal(OCIError *err, CONST dvoid *rnum,
-
-                            uword rnum_length, OCINumber *number);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberCmp(OCIError *err, CONST OCINumber *number1, 
-
-                       CONST OCINumber *number2, sword *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberSign(OCIError *err, CONST OCINumber *number,
-
-                        sword *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberIsZero(OCIError *err, CONST OCINumber *number,
-
-                          boolean *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberAssign(OCIError *err, CONST OCINumber *from,
-
-                          OCINumber *to);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberAbs(OCIError *err, CONST OCINumber *number,
-
-                       OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberCeil(OCIError *err, CONST OCINumber *number,
-
-                        OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberFloor(OCIError *err, CONST OCINumber *number, 
-
-                         OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberSqrt(OCIError *err, CONST OCINumber *number, 
-
-                        OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberTrunc(OCIError *err, CONST OCINumber *number, 
-
-                         sword decplace, OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberPower(OCIError *err, CONST OCINumber *base, 
-
-                         CONST OCINumber *number, OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberRound(OCIError *err, CONST OCINumber *number,
-
-                         sword decplace, OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberSin(OCIError *err, CONST OCINumber *number,
-
-                       OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberArcSin(OCIError *err, CONST OCINumber *number,
-
-                          OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberHypSin(OCIError *err, CONST OCINumber *number, 
-
-                          OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberCos(OCIError *err, CONST OCINumber *number, 
-
-                       OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberArcCos(OCIError *err, CONST OCINumber *number, 
-
-                          OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberHypCos(OCIError *err, CONST OCINumber *number, 
-
-                          OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberTan(OCIError *err, CONST OCINumber *number, 
-
-                       OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberArcTan(OCIError *err, CONST OCINumber *number, 
-
-                          OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberArcTan2(OCIError *err, CONST OCINumber *number1, 
-
-                           CONST OCINumber *number2, OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberHypTan(OCIError *err, CONST OCINumber *number, 
-
-                          OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberExp(OCIError *err, CONST OCINumber *number, 
-
-                       OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberLn(OCIError *err, CONST OCINumber *number, 
-
-                      OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCINumberLog(OCIError *err, CONST OCINumber *base, 
-
-                       CONST OCINumber *number, OCINumber *result);
-
-
-
-TLORACLE_DLL sword SDO_OCIDateAssign(OCIError *err, CONST OCIDate *from, OCIDate *to);
-
-
-
-TLORACLE_DLL sword SDO_OCIDateToText(OCIError *err, CONST OCIDate *date, 
-
-                        CONST text *fmt, ub1 fmt_length, 
-
-                        CONST text *lang_name, ub4 lang_length, 
-
-                        ub4 *buf_size, text *buf);
-
-
-
-TLORACLE_DLL sword SDO_OCIDateFromText(OCIError *err, CONST text *date_str, 
-
-						  ub4 d_str_length, CONST text *fmt, ub1 fmt_length, 
-
-						  CONST text *lang_name, ub4 lang_length, 
-
-						  OCIDate *date);
-
-
-
-TLORACLE_DLL sword SDO_OCIDateCompare(OCIError *err, CONST OCIDate *date1, 
-
-						 CONST OCIDate *date2, sword *result);
-
-
-
-TLORACLE_DLL sword SDO_OCIDateAddMonths(OCIError *err, CONST OCIDate *date, sb4 num_months,
-
-                           OCIDate *result);
-
-
-
-TLORACLE_DLL sword SDO_OCIDateAddDays(OCIError *err, CONST OCIDate *date, sb4 num_days,
-
-                         OCIDate *result);
-
-
-
-TLORACLE_DLL sword SDO_OCIDateLastDay(OCIError *err, CONST OCIDate *date, 
-
-                         OCIDate *last_day);
-
-
-
-TLORACLE_DLL sword SDO_OCIDateDaysBetween(OCIError *err, CONST OCIDate *date1, 
-
-                             CONST OCIDate *date2, sb4 *num_days);
-
-
-
-TLORACLE_DLL sword SDO_OCIDateZoneToZone(OCIError *err, CONST OCIDate *date1,
-
-                            CONST text *zon1, ub4 zon1_length, 
-
-							CONST text *zon2, ub4 zon2_length, OCIDate *date2);
-
-
-
-TLORACLE_DLL sword SDO_OCIDateNextDay(OCIError *err, CONST OCIDate *date, CONST text *day_p, 
-
-                         ub4 day_length, OCIDate *next_day);
-
-
-
-
-
-TLORACLE_DLL sword SDO_OCIDateCheck(OCIError *err, CONST OCIDate *date, uword *valid);
-
-
-
-TLORACLE_DLL sword SDO_OCIDateSysDate(OCIError *err, OCIDate *sys_date);
-
-
-
-TLORACLE_DLL sword SDO_OCIStringAssign(OCIEnv *env, OCIError *err, CONST OCIString *rhs, 
-
-                          OCIString **lhs);
-
-
-
-TLORACLE_DLL sword SDO_OCIStringAssignText(OCIEnv *env, OCIError *err, CONST text *rhs, 
-
-                              ub4 rhs_len, OCIString **lhs);
-
-
-
-TLORACLE_DLL sword SDO_OCIStringResize(OCIEnv *env, OCIError *err, ub4 new_size, 
-
-                          OCIString **str);
-
-
-
-TLORACLE_DLL ub4 SDO_OCIStringSize(OCIEnv *env, CONST OCIString *vs);
-
-
-
-TLORACLE_DLL text *SDO_OCIStringPtr(OCIEnv *env, CONST OCIString *vs);
-
-
-
-TLORACLE_DLL sword SDO_OCIStringAllocSize(OCIEnv *env, OCIError *err, CONST OCIString *vs, 
-
-                             ub4 *allocsize);
-
-
-
-TLORACLE_DLL sword SDO_OCIRawAssignRaw(OCIEnv *env, OCIError *err, CONST OCIRaw *rhs, 
-
-                          OCIRaw **lhs);
-
-
-
-TLORACLE_DLL sword SDO_OCIRawAssignBytes(OCIEnv *env, OCIError *err, CONST ub1 *rhs, 
-
-                            ub4 rhs_len, OCIRaw **lhs);
-
-
-
-TLORACLE_DLL sword SDO_OCIRawResize(OCIEnv *env, OCIError *err, ub4 new_size, OCIRaw **raw);
-
-
-
-TLORACLE_DLL ub4 SDO_OCIRawSize(OCIEnv *env, CONST OCIRaw *raw);
-
-
-
-TLORACLE_DLL ub1 *SDO_OCIRawPtr(OCIEnv *env, CONST OCIRaw *raw);
-
-
-
-TLORACLE_DLL sword SDO_OCIRawAllocSize(OCIEnv *env, OCIError *err, CONST OCIRaw *raw,
-
-						  ub4 *allocsize);
-
-
-
-TLORACLE_DLL void SDO_OCIRefClear(OCIEnv *env, OCIRef *ref);
-
-
-
-TLORACLE_DLL sword SDO_OCIRefAssign(OCIEnv *env, OCIError *err, CONST OCIRef *source, 
-
-                       OCIRef **target);
-
-
-
-TLORACLE_DLL boolean SDO_OCIRefIsEqual(OCIEnv *env, CONST OCIRef *x, CONST OCIRef *y);
-
-
-
-TLORACLE_DLL boolean SDO_OCIRefIsNull(OCIEnv *env, CONST OCIRef *ref);
-
-
-
-TLORACLE_DLL ub4 SDO_OCIRefHexSize(OCIEnv *env, CONST OCIRef *ref);
-
-
-
-TLORACLE_DLL sword SDO_OCIRefFromHex(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-                        CONST text *hex, ub4 length, OCIRef **ref);
-
-
-
-TLORACLE_DLL sword SDO_OCIRefToHex(OCIEnv *env, OCIError *err, CONST OCIRef *ref, 
-
-                      text *hex, ub4 *hex_length);
-
-
-
-TLORACLE_DLL sword SDO_OCICollSize(OCIEnv *env, OCIError *err, CONST OCIColl *coll, 
-
-					  sb4 *size);
-
-
-
-TLORACLE_DLL sb4 SDO_OCICollMax(OCIEnv *env, CONST OCIColl *coll);
-
-
-
-TLORACLE_DLL sword SDO_OCICollGetElem(OCIEnv *env, OCIError *err, CONST OCIColl *coll, 
-
-                         sb4 index, boolean *exists, dvoid **elem, 
-
-                         dvoid **elemind);
-
-
-
-TLORACLE_DLL sword SDO_OCICollAssignElem(OCIEnv *env, OCIError *err, sb4 index, 
-
-                            CONST dvoid *elem, 
-
-                            CONST dvoid *elemind, OCIColl *coll);
-
-
-
-TLORACLE_DLL sword SDO_OCICollAssign(OCIEnv *env, OCIError *err, CONST OCIColl *rhs, 
-
-                        OCIColl *lhs);
-
-
-
-TLORACLE_DLL sword SDO_OCICollAppend(OCIEnv *env, OCIError *err, CONST dvoid *elem, 
-
-                        CONST dvoid *elemind, OCIColl *coll);
-
-
-
-TLORACLE_DLL sword SDO_OCICollTrim(OCIEnv *env, OCIError *err, sb4 trim_num, 
-
-                      OCIColl *coll);
-
-
-
-TLORACLE_DLL sword SDO_OCIIterCreate(OCIEnv *env, OCIError *err, CONST OCIColl *coll, 
-
-                        OCIIter **itr);
-
-
-
-TLORACLE_DLL sword SDO_OCIIterDelete(OCIEnv *env, OCIError *err, OCIIter **itr);
-
-
-
-TLORACLE_DLL sword SDO_OCIIterInit(OCIEnv *env, OCIError *err, CONST OCIColl *coll, 
-
-                      OCIIter *itr);
-
-
-
-TLORACLE_DLL sword SDO_OCIIterGetCurrent(OCIEnv *env, OCIError *err, CONST OCIIter *itr, 
-
-                            dvoid **elem, dvoid **elemind);
-
-
-
-TLORACLE_DLL sword SDO_OCIIterNext(OCIEnv *env, OCIError *err, OCIIter *itr, 
-
-                      dvoid **elem, dvoid **elemind, boolean *eoc);
-
-
-
-TLORACLE_DLL sword SDO_OCIIterPrev(OCIEnv *env, OCIError *err, OCIIter *itr, 
-
-                      dvoid **elem, dvoid **elemind, boolean *boc);
-
-
-
-TLORACLE_DLL sword SDO_OCITableSize(OCIEnv *env, OCIError *err, CONST OCITable *tbl, 
-
-					   sb4 *size);
-
-
-
-TLORACLE_DLL sword SDO_OCITableExists(OCIEnv *env, OCIError *err, CONST OCITable *tbl,
-
-						 sb4 index, boolean *exists);
-
-
-
-TLORACLE_DLL sword SDO_OCITableDelete(OCIEnv *env, OCIError *err, sb4 index, OCITable *tbl);
-
-
-
-TLORACLE_DLL sword SDO_OCITableFirst(OCIEnv *env, OCIError *err, CONST OCITable *tbl, 
-
-                        sb4 *index);
-
-
-
-TLORACLE_DLL sword SDO_OCITableLast(OCIEnv *env, OCIError *err, CONST OCITable *tbl, 
-
-                       sb4 *index);
-
-
-
-TLORACLE_DLL sword SDO_OCITableNext(OCIEnv *env, OCIError *err, sb4 index, 
-
-					   CONST OCITable *tbl, sb4 *next_index, boolean *exists);
-
-
-
-TLORACLE_DLL sword SDO_OCITablePrev(OCIEnv *env, OCIError *err, sb4 index, 
-
-                       CONST OCITable *tbl, sb4 *prev_index, boolean *exists);
-//@}
-
-/** @name Part IV -- OCI open type manager interfaces
-*/
-//@{
-TLORACLE_DLL sword SDO_OCITypeIterNew(OCIEnv *env, OCIError *err, OCIType *tdo, 
-
-                         OCITypeIter **iteratorOCI);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeIterSet(OCIEnv *env, OCIError *err, OCIType *tdo, 
-
-						 OCITypeIter *iteratorOCI);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeIterFree(OCIEnv *env, OCIError *err, OCITypeIter *iteratorOCI);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeByName(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
-
-                        CONST text *schema_name, ub4 s_length,
-
-                        CONST text *type_name, ub4 t_length,
-
-                        CONST text *version_name, ub4 v_length,
-
-                        OCIDuration pin_duration, OCITypeGetOpt get_option,
-
-                        OCIType **tdo);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeArrayByName(OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc,
-
-                             ub4 array_len, CONST text *schema_name[], 
-
-							 ub4 s_length[], CONST text *type_name[], 
-
-							 ub4 t_length[], CONST text *version_name[], 
-
-							 ub4 v_length[], OCIDuration pin_duration,
-
-                             OCITypeGetOpt get_option, OCIType *tdo[]);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeByRef(OCIEnv *env, OCIError *err, CONST OCIRef *type_ref, 
-
-					   OCIDuration pin_duration,OCITypeGetOpt get_option, 
-
-					   OCIType **tdo);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeArrayByRef(OCIEnv *env, OCIError *err, ub4 array_len, 
-
-							CONST OCIRef *type_ref[], OCIDuration pin_duration,
-
-							OCITypeGetOpt get_option, OCIType *tdo[]);
-
-
-
-TLORACLE_DLL text* SDO_OCITypeName(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                      ub4 *n_length);
-
-
-
-TLORACLE_DLL text* SDO_OCITypeSchema(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-						ub4 *n_length);
-
-
-
-TLORACLE_DLL OCITypeCode SDO_OCITypeTypeCode(OCIEnv *env, OCIError *err, CONST OCIType *tdo);
-
-
-
-TLORACLE_DLL OCITypeCode SDO_OCITypeCollTypeCode(OCIEnv *env, OCIError *err, 
-
-									CONST OCIType *tdo);
-
-
-
-TLORACLE_DLL text* SDO_OCITypeVersion(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                         ub4 *v_length);
-
-
-
-TLORACLE_DLL ub4 SDO_OCITypeAttrs(OCIEnv *env, OCIError *err, CONST OCIType *tdo);
-
-
-
-TLORACLE_DLL ub4 SDO_OCITypeMethods(OCIEnv *env, OCIError *err, CONST OCIType *tdo);
-
-
-
-TLORACLE_DLL text* SDO_OCITypeElemName(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem, 
-
-                          ub4 *n_length);
-
-
-
-TLORACLE_DLL OCITypeCode SDO_OCITypeElemTypeCode(OCIEnv *env, OCIError *err,
-
-                                    CONST OCITypeElem *elem);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeElemType(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem, 
-
-                          OCIType **elem_tdo);
-
-
-
-TLORACLE_DLL ub4 SDO_OCITypeElemFlags(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem);
-
-
-
-TLORACLE_DLL ub1 SDO_OCITypeElemNumPrec(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem);
-
-
-
-TLORACLE_DLL sb1 SDO_OCITypeElemNumScale(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem);
-
-
-
-TLORACLE_DLL ub4 SDO_OCITypeElemLength(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem);
-
-
-
-TLORACLE_DLL ub2 SDO_OCITypeElemCharSetID(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem);
-
-
-
-TLORACLE_DLL ub2 SDO_OCITypeElemCharSetForm(OCIEnv *env, OCIError *err, CONST OCITypeElem *elem);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeElemParameterizedType(OCIEnv *env, OCIError *err,
-
-                                       CONST OCITypeElem *elem, 
-
-									   OCIType **type_stored);
-
-
-
-TLORACLE_DLL OCITypeCode SDO_OCITypeElemExtTypeCode(OCIEnv *env, OCIError *err,
-
-                                       CONST OCITypeElem *elem);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeAttrByName(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                            CONST text *name, ub4 n_length, OCITypeElem **elem);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeAttrNext(OCIEnv *env, OCIError *err, OCITypeIter *iteratorOCI,
-
-                          OCITypeElem **elem);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeCollElem(OCIEnv *env, OCIError *err, CONST OCIType *tdo,
-
-                          OCITypeElem **element);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeCollSize(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                          ub4 *num_elems);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeCollExtTypeCode(OCIEnv *env, OCIError *err,
-
-                                 CONST OCIType *tdo, OCITypeCode *sqt_code);
-
-
-
-TLORACLE_DLL ub4 SDO_OCITypeMethodOverload(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                              CONST text *method_name, ub4 m_length);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeMethodByName(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                              CONST text *method_name, ub4 m_length,
-
-                              OCITypeMethod **mdos);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeMethodNext(OCIEnv *env, OCIError *err, OCITypeIter *iteratorOCI,
-
-                            OCITypeMethod **mdo);
-
-
-
-TLORACLE_DLL text *SDO_OCITypeMethodName(OCIEnv *env, OCIError *err,
-
-                            CONST OCITypeMethod *mdo, ub4 *n_length);
-
-
-
-TLORACLE_DLL OCITypeEncap SDO_OCITypeMethodEncap(OCIEnv *env, OCIError *err,
-
-                                    CONST OCITypeMethod *mdo);
-
-
-
-TLORACLE_DLL OCITypeMethodFlag SDO_OCITypeMethodFlags(OCIEnv *env, OCIError *err,
-
-                                         CONST OCITypeMethod *mdo);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeMethodMap(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                           OCITypeMethod **mdo);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeMethodOrder(OCIEnv *env, OCIError *err, CONST OCIType *tdo, 
-
-                             OCITypeMethod **mdo);
-
-
-
-TLORACLE_DLL ub4 SDO_OCITypeMethodParams(OCIEnv *env, OCIError *err,
-
-                            CONST OCITypeMethod *mdo);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeResult(OCIEnv *env, OCIError *err, CONST OCITypeMethod *mdo,
-
-                        OCITypeElem **elem);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeParamByPos(OCIEnv *env, OCIError *err, CONST OCITypeMethod *mdo, 
-
-							ub4 position, OCITypeElem **elem);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeParamByName(OCIEnv *env, OCIError *err, CONST OCITypeMethod *mdo, 
-
-                             CONST text *name, ub4 n_length, OCITypeElem **elem);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeParamPos(OCIEnv *env, OCIError *err, CONST OCITypeMethod *mdo, 
-
-                          CONST text *name, ub4 n_length, ub4 *position, 
-
-                          OCITypeElem **elem);
-
-
-
-TLORACLE_DLL OCITypeParamMode SDO_OCITypeElemParamMode(OCIEnv *env, OCIError *err,
-
-                                          CONST OCITypeElem *elem);
-
-
-
-TLORACLE_DLL text* SDO_OCITypeElemDefaultValue(OCIEnv *env, OCIError *err,
-
-                                  CONST OCITypeElem *elem, ub4 *d_v_length);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeVTInit(OCIEnv *env, OCIError *err);
-
- 
-
-TLORACLE_DLL sword SDO_OCITypeVTInsert(OCIEnv *env, OCIError *err, CONST text *schema_name,
-
-						  ub4 s_n_length, CONST text *type_name, ub4 t_n_length, 
-
-						  CONST text *user_version, ub4 u_v_length);
-
-
-
-TLORACLE_DLL sword SDO_OCITypeVTSelect(OCIEnv *env, OCIError *err, CONST text *schema_name,
-
-						  ub4 s_n_length, CONST text *type_name, ub4 t_n_length, 
-
-						  text **user_version, ub4 *u_v_length, ub2 *version);
-//@}
-
-#endif 
-
-
-
-
diff --git a/src/terralib/drivers/Oracle/TeOracleDefines.h b/src/terralib/drivers/Oracle/TeOracleDefines.h
deleted file mode 100644
index a1ab2a1..0000000
--- a/src/terralib/drivers/Oracle/TeOracleDefines.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/************************************************************************************
-TerraLib - a library for developing GIS applications.
-Copyright  2001-2007 INPE and Tecgraf/PUC-Rio.
-
-This code is part of the TerraLib library.
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library.
-
-The authors reassure the license terms regarding the warranties.
-They specifically disclaim any warranties, including, but not limited to,
-the implied warranties of merchantability and fitness for a particular purpose.
-The library provided hereunder is on an "as is" basis, and the authors have no
-obligation to provide maintenance, support, updates, enhancements, or modifications.
-In no event shall INPE and Tecgraf / PUC-Rio be held liable to any party for direct,
-indirect, special, incidental, or consequential damages arising out of the use
-of this library and its documentation.
-*************************************************************************************/
-/*! \file TeOracleDefines.h
-    \brief Provides a set of general definitions used by te_oracle project.
-*/
-#ifndef  __TERRALIB_INTERNAL_ORACLEDEFINES_H
-#define  __TERRALIB_INTERNAL_ORACLEDEFINES_H
-
-/** @defgroup TerraLib_AS_DLL macros.
-  @{
- */
-#if defined( WIN32 ) || defined( __WIN32__ ) || defined ( _WIN32 ) || defined( WIN64 ) || defined( _WIN32_WCE )
-
-#if defined(_MSC_VER) /* MSVC Compiler */
-#pragma warning(disable: 4251)
-#endif
-
-#ifdef TLORACLE_AS_DLL
-#define TLORACLE_DLL __declspec(dllexport)
-#else
-#define TLORACLE_DLL __declspec(dllimport)
-#endif
-
-#else
-#define TLORACLE_DLL
-#endif
-/** @} */ 
-
-#endif //__TERRALIB_INTERNAL_ORACLEDEFINES_H
diff --git a/src/terralib/drivers/Oracle/TeOracleSpatial.cpp b/src/terralib/drivers/Oracle/TeOracleSpatial.cpp
deleted file mode 100644
index 436c70b..0000000
--- a/src/terralib/drivers/Oracle/TeOracleSpatial.cpp
+++ /dev/null
@@ -1,3588 +0,0 @@
-/************************************************************************************
-TerraLib - a library for developing GIS applications.
-Copyright � 2001-2007 INPE and Tecgraf/PUC-Rio.
-
-This code is part of the TerraLib library.
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library.
-
-The authors reassure the license terms regarding the warranties.
-They specifically disclaim any warranties, including, but not limited to,
-the implied warranties of merchantability and fitness for a particular purpose.
-The library provided hereunder is on an "as is" basis, and the authors have no
-obligation to provide maintenance, support, updates, enhancements, or modifications.
-In no event shall INPE and Tecgraf / PUC-Rio be held liable to any party for direct,
-indirect, special, incidental, or consequential damages arising out of the use
-of this library and its documentation.
-*************************************************************************************/
-
-#include "TeOracleSpatial.h"
-
-#include <sys/stat.h>
-#include "TeSpatialOperations.h"
-#include "TeGeometryAlgorithms.h"
-
-string 
-getOracleSpatialRelation(int relation)
-{
-	string spatialRel="";
-	switch (relation)
-	{
-		case TeDISJOINT:
-		case TeINTERSECTS:
-			spatialRel = "ANYINTERACT";	
-		break;
-
-		case TeTOUCHES:
-			spatialRel = "TOUCH";
-		break;
-
-		case TeOVERLAPS:
-			spatialRel = "OVERLAPBDYINTERSECT";
-		break;
-
-		case TeCOVERS:
-			spatialRel = "COVERS"; 
-		break;
-
-		case TeCOVEREDBY:
-			spatialRel = "COVEREDBY";
-		break;
-		
-		case TeCONTAINS:
-			spatialRel = "CONTAINS";
-		break;
-		
-		case TeWITHIN:
-			spatialRel = "INSIDE";
-		break;
-		
-		case TeEQUALS:
-			spatialRel = "EQUAL";
-		break;
-		
-		case TeCROSSES:
-			spatialRel = "OVERLAPBDYDISJOINT";
-		break;
-		default:
-			spatialRel = "";
-		break;
-	}
-	
-	return spatialRel;
-}
-
-
-TeOracleSpatial::TeOracleSpatial() : TeOCIOracle()  
-{
-	dbmsName_ = "OracleSpatial";
-}
-
-
-bool
-TeOracleSpatial::createSpatialIndex(const string &table, const string &column,TeSpatialIndexType type, short level, short tile)
-{
-	TeOracleSpatialPortal  *ocip = (TeOracleSpatialPortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string name;
-	if(table.size()>21)
-		name = TeConvertToUpperCase(table.substr(0,20)) + "_IDX";
-	else
-		name = TeConvertToUpperCase(table) + "_IDX";
-	
-	string index = "SELECT * FROM USER_SDO_INDEX_INFO";
-	index += " WHERE table_name = '" + TeConvertToUpperCase(table) + "'";
-	if(!ocip->query(index))
-	{
-		delete ocip;
-		return false;
-	}
-	
-	if(ocip->fetchRow())
-	{
-		errorMessage_ = "Spatial Index table already exist!";
-		delete ocip;
-		return false;
-	}
-		
-	delete ocip;
-
-	index = " CREATE INDEX " + name;
-	index += " ON " + table + "(" + column + ")";
-	index += " INDEXTYPE IS MDSYS.SPATIAL_INDEX ";
-	
-	if(type == TeQUADTREE)
-	{
-		if(level==0)
-			return false;
-
-		index += " PARAMETERS ('";
-		index += "SDO_LEVEL = " + Te2String(level);
-		index += " SDO_NUMTILES = " + Te2String(tile) + "'";
-	}
-
-	if(!execute(index))
-		return false;
-	
-	return true;
-}
-
-bool
-TeOracleSpatial::insertMetadata(const string &table, const string &column, double tolx,double toly,TeBox &box,short /* srid */)
-{	
-	TeOracleSpatialPortal	*ocip = (TeOracleSpatialPortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string check = "SELECT * FROM USER_SDO_GEOM_METADATA ";
-	check += " WHERE TABLE_NAME = '" + TeConvertToUpperCase(table);
-	check += "' AND COLUMN_NAME = '" + TeConvertToUpperCase(column) + "'";
-	if(!ocip->query(check))
-	{
-		delete ocip;
-		return false;
-	}
-
-	if(ocip->fetchRow())
-	{
-		delete ocip;
-		return false;
-	}
-			
-	delete ocip;
-	
-	double xmin = box.x1();
-	double ymin = box.y1();
-	double xmax = box.x2();
-	double ymax = box.y2();
-
-	string inser = "INSERT INTO USER_SDO_GEOM_METADATA VALUES ( ";
-	inser += "'" + TeConvertToUpperCase(table) + "' ," ;
-	inser += "'" + TeConvertToUpperCase(column) + "' ," ; 
-	inser += " MDSYS.SDO_DIM_ARRAY(";
-	inser += " MDSYS.SDO_DIM_ELEMENT('X',";
-	inser += Te2String(xmin,15) + "," + Te2String(xmax,15) + "," + Te2String(tolx,15) + "), ";
-	inser += " MDSYS.SDO_DIM_ELEMENT('Y',";
-	inser += Te2String(ymin,15) + "," + Te2String(ymax,15) + "," + Te2String(toly,15) + ")), ";
-	inser += " NULL ) ";
-
-	if(!(execute(inser.c_str()))) 
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error inserting in the table USER_SDO_GEOM_METADATA! "; 
-		return false;
-	}
-
-	return true;
-}
-
-string 
-TeOracleSpatial::getSpatialIdxColumn(TeGeomRep rep)
-{
-	if (rep == TeRASTER)
-		return "block_box";
-
-	return "spatial_data";
-}
-
-
-bool
-TeOracleSpatial::connect(const string& host, const string& user, const string& password, const string& database, int port)
-{
-	if(connection_ == NULL)
-	{
-		connection_ = new TeOCIConnection();
-	}
-	else if (connection_->isConnected())
-	{ 
-		delete (connection_);
-		connection_ = new TeOCIConnection();
-	}
-
-	isConnected_ = false;
-	if (connection_->connect(host.c_str(),user.c_str(),password.c_str(), true))
-	{
-		isConnected_ = true;
-		host_ = host;
-		user_ = user;
-		password_ = password;
-		database_ = database;
-		portNumber_ = port;
-		return true;
-	}
-	else
-	{
-		isConnected_ = false;
-		errorMessage_ = "Error connecting to database server!";
-		delete (connection_); //disconect
-		connection_=NULL;
-		return false;
-	}
-}
-
-bool
-TeOracleSpatial::createTable(const string& table, TeAttributeList &attr)
-{
-	short	cont=0;
-	string pkeys ="";
-	bool	hasAutoNumber=false;
-	string	fieldName="";
-
-	if(tableExist(table))
-	{
-		errorMessage_= "Table already exist!";
-		return false;
-	}
-
-	TeAttributeList::iterator it = attr.begin();
-	string tablec;
-	tablec = "CREATE TABLE " + table +" (";
-	
-	while ( it != attr.end())
-	{
-		if (cont)
-			tablec += ", ";
-			
-		switch ((*it).rep_.type_)
-		{
-			case TeSTRING:
-				if((*it).rep_.numChar_ > 0)
-				{
-					tablec += (*it).rep_.name_ + " VARCHAR2(" + Te2String((*it).rep_.numChar_) + ")";
-				}
-				else
-				{
-					tablec += (*it).rep_.name_ + " VARCHAR2(4000)";
-				}
-				if(!((*it).rep_.defaultValue_.empty()))
-					tablec += " DEFAULT '" + (*it).rep_.defaultValue_ + "' ";
-
-				if(!((*it).rep_.null_))
-					tablec += " NOT NULL ";
-			break;
-			
-			case TeREAL:
-				if((*it).rep_.decimals_>0)
-					tablec += (*it).rep_.name_ +" NUMBER(*,"+ Te2String((*it).rep_.decimals_) +") ";
-				else
-					tablec += (*it).rep_.name_ +" NUMBER(*,38) ";
-
-				if(!((*it).rep_.defaultValue_.empty()))
-					tablec += " DEFAULT " + (*it).rep_.defaultValue_ + " ";
-
-				if(!((*it).rep_.null_))
-					tablec += " NOT NULL ";
-			break;
-			
-			case TeINT:
-			case TeUNSIGNEDINT:
-				tablec += (*it).rep_.name_ + " NUMBER(32) ";
-				if((*it).rep_.isAutoNumber_)
-				{
-					hasAutoNumber=true;
-					fieldName=(*it).rep_.name_;
-				}
-
-				if(!((*it).rep_.defaultValue_.empty()))
-					tablec += " DEFAULT " + (*it).rep_.defaultValue_ + " ";
-
-				if(!((*it).rep_.null_))
-					tablec += " NOT NULL ";
-
-			break;
-
-			case TeDATETIME:
-				tablec += (*it).rep_.name_ + " DATE ";
-				if(!((*it).rep_.defaultValue_.empty()))
-					tablec += " DEFAULT " + (*it).rep_.defaultValue_ + " ";
-
-				if(!((*it).rep_.null_))
-					tablec += " NOT NULL ";
-			break;
-
-			case TeCHARACTER:
-				tablec += (*it).rep_.name_ + " CHAR ";
-				if(!((*it).rep_.defaultValue_.empty()))
-					tablec += " DEFAULT " + (*it).rep_.defaultValue_ + " ";
-
-				if(!((*it).rep_.null_))
-					tablec += " NOT NULL ";
-			break;
-
-			case TeBOOLEAN:
-				tablec += (*it).rep_.name_ + " NUMBER(1) ";
-				if(!((*it).rep_.defaultValue_.empty()))
-					tablec += " DEFAULT " + (*it).rep_.defaultValue_ + " ";
-
-				if(!((*it).rep_.null_))
-					tablec += " NOT NULL ";
-			break;
-
-			case TeBLOB:
-				tablec += (*it).rep_.name_ + " BLOB ";
-			break;
-
-			case TePOINTTYPE:
-			case TePOINTSETTYPE:
-							tablec += "spatial_data	MDSYS.SDO_GEOMETRY ";
-							++it;
-							cont++;
-							continue;
-
-			case TeLINE2DTYPE:
-			case TeLINESETTYPE:
-							tablec += "spatial_data	MDSYS.SDO_GEOMETRY ";
-							++it;
-							cont++;
-							continue;
-
-			case TePOLYGONTYPE:
-			case TePOLYGONSETTYPE:
-							tablec += "spatial_data	MDSYS.SDO_GEOMETRY ";
-							++it;
-							cont++;
-							continue;
-
-			case TeCELLTYPE:
-			case TeCELLSETTYPE:
-							tablec += "col_number	NUMBER(32) NOT NULL,";
-							tablec += "row_number	NUMBER(32) NOT NULL,";
-							tablec += "spatial_data	MDSYS.SDO_GEOMETRY ";
-
-							++it;
-							cont++;
-							continue;					
-
-			case TeRASTERTYPE:
-							tablec += "band_id NUMBER(32) NOT NULL, ";
-							tablec += "resolution_factor NUMBER(32), ";
-							tablec += "subband NUMBER(32),";
-							tablec += "block_box  MDSYS.SDO_GEOMETRY, ";
-							tablec += "block_size NUMBER(32), ";
-							tablec += "spatial_data BLOB ";
-							
-							++it;
-							cont++;
-							continue;
-
-			case TeNODETYPE:
-			case TeNODESETTYPE:
-							tablec += "spatial_data	MDSYS.SDO_GEOMETRY ";
-
-							++it;
-							cont++;
-							continue;
-
-			case TeTEXTTYPE:
-			case TeTEXTSETTYPE:
-
-			default:
-				tablec += (*it).rep_.name_ + " VARCHAR2(255) ";
-				if(!((*it).rep_.defaultValue_.empty()))
-					tablec += " DEFAULT " + (*it).rep_.defaultValue_ + " ";
-
-				if(!((*it).rep_.null_))
-					tablec += " NOT NULL ";
-			break;
-		}
-
-		// check if column is part of primary key
-		if ((*it).rep_.isPrimaryKey_ && (*it).rep_.type_ != TeBLOB )
-		{
-			if (!pkeys.empty())
-				pkeys += ", ";
-			pkeys += (*it).rep_.name_;
-		}
-
-		++it;
-		cont++;
-	}
-
-	if(!pkeys.empty())
-		tablec += ", PRIMARY KEY (" + pkeys + ") ";
-
-	tablec += ")";
-
-	if(!execute(tablec))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error creating table " + table;
-
-		return false;
-	}
-
-	if(hasAutoNumber)
-	{
-		string dropSql = " DROP TRIGGER "+ getNameTrigger(table); 
-		execute(dropSql);
-		dropSql = " DROP SEQUENCE "+ getNameSequence(table); 
-		execute(dropSql);
-
-		if(!createSequence(table))
-		{
-			deleteTable(table);
-			return false;
-		}
-		
-		if(!createAutoIncrementTrigger(table,fieldName))
-		{
-			deleteTable(table);
-			string sql= "DROP SEQUENCE "+ getNameSequence(table);
-			execute(sql); 
-			return false;
-		}
-	}
-	return true;
-}
-
-TeDatabasePortal*  
-TeOracleSpatial::getPortal ()
-{
-	TeOracleSpatialPortal* ocip = new TeOracleSpatialPortal (this);
-	return ocip;
-}
-
-std::string TeOracleSpatial::getSQLOrderBy(const TeGeomRep& rep) const
-{
-	std::string orderBy = "object_id ASC";
-	return orderBy;
-}
-
-string 
-TeOracleSpatial::getSQLBoxWhere (const TeBox& box, const TeGeomRep rep, const std::string& tableName)
-{
-	string wherebox;
-	string colname = "spatial_data";
-
-	if(rep == TeRASTER)
-		colname = "block_box";
-
-	if(rep == TeTEXT)
-	{
-		wherebox = TeDatabase::getSQLBoxWhere (box, rep, tableName);
-		return wherebox;
-	}
-
-	std::string strProj = "null";
-	if(!tableName.empty())
-	{
-		strProj = "(select SRID from user_sdo_geom_metadata where " + toUpper("table_name") + " = " + toUpper("'" + tableName + "'") + ")";
-	}
-
-	wherebox = "mdsys.sdo_filter (" + colname +",";
-	wherebox += "mdsys.sdo_geometry(2003," + strProj + ",null,";
-	wherebox += "mdsys.sdo_elem_info_array(1,1003,3),";
-	wherebox += "mdsys.sdo_ordinate_array(";
-	wherebox += Te2String(box.x1(),15) + ", " + Te2String(box.y1(),15);
-	wherebox += ", " + Te2String(box.x2(),15) + ", " + Te2String(box.y2(),15) + ")),";
-	wherebox += "'mask=anyinteract querytype = window') = 'TRUE'";
-
-	return wherebox;
-}
-
-
-string 
-TeOracleSpatial::getSQLBoxWhere (const string& table1, const string& table2, TeGeomRep rep2, TeGeomRep rep1)
-{
-	string wherebox;
-	string colname1, colname2; 
-	colname1 = colname2 = "spatial_data";
-	
-	if(rep1 == TeRASTER) 
-		colname1 = "block_box";
-
-	if(rep2 == TeRASTER)
-		colname2 = "block_box";
-		
-	wherebox =  "MDSYS.SDO_FILTER ("+ table1 +"."+ colname1 +",";
-	wherebox += table2 +"."+ colname2 +", 'querytype = window') = 'TRUE'";  
-
-	return wherebox;
-}
-
-
-string 
-TeOracleSpatial::getSQLBoxSelect (const string& tableName, TeGeomRep rep)
-{
-	
-	string select;
-	string colname = "spatial_data";
-
-	if(rep == TeRASTER)
-		colname = "block_box";
-
-	select =  tableName +".* , ";
-	select += " SDO_GEOM.SDO_MIN_MBR_ORDINATE("+ tableName +"."+ colname +", 1) as lower_x,";
-	select += " SDO_GEOM.SDO_MIN_MBR_ORDINATE("+ tableName +"."+ colname +", 2) as lower_y,";
-	select += " SDO_GEOM.SDO_MAX_MBR_ORDINATE("+ tableName +"."+ colname +", 1) as upper_x,"; 
-	select += " SDO_GEOM.SDO_MAX_MBR_ORDINATE("+ tableName +"."+ colname +", 2) as upper_y ";
-	return select;
-}
-
-bool 
-TeOracleSpatial::getMBRSelectedObjects(string /* geomTable */,string colGeom, string fromClause, string whereClause, string /* afterWhereClause */, TeGeomRep /* repType */,TeBox &bout, const double& tol)
-{
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	if (!portal)
-		return false;
-
-	string sql = "SELECT SDO_AGGR_MBR(" + colGeom + ") ";
-	sql += " FROM " + fromClause;
-	
-	if(!whereClause.empty())
-		sql += " WHERE " + whereClause;  
-	
-	if(!portal->query(sql)) 
-	{
-		delete portal;
-		return false;
-	}
-
-	if(!portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-
-	try
-	{
-		TeCoord2D coord1,coord2;
-		portal->getCoordinates (1, coord1);
-		portal->getCoordinates (2, coord2);
-		TeBox b(coord1.x()-tol, coord1.y()-tol, coord2.x()+tol, coord2.y()+tol);
-		bout = b;
-	}
-	
-	catch(...)
-	{
-		delete portal;
-		return false;
-	}
-	
-	delete portal;
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::getMBRGeom(string tableGeom, string object_id, TeBox& box, string colGeom)
-{
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	if (!portal)
-		return false;
-
-	string sql = "SELECT SDO_GEOM.SDO_MBR(" + tableGeom + "." + colGeom + ") ";
-	sql += " FROM " + tableGeom;
-	sql += " WHERE object_id = '" + object_id + "'";
-
-	if((!portal->query(sql)) || (!portal->fetchRow()))
-	{
-		delete portal;
-		return false;
-	}
-	
-	TeCoord2D coord1,coord2;
-	portal->getCoordinates (1, coord1);
-	portal->getCoordinates (2, coord2);
-	TeBox b(coord1.x(), coord1.y(), coord2.x(), coord2.y());
-	box = b;
-	
-	delete portal;
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::insertRasterBlock(const string& table, const string& blockId, const TeCoord2D& ll, const TeCoord2D& ur, 
-								   unsigned char *buf,unsigned long size, int band, unsigned int res, unsigned int subband)
-{
-	if (blockId.empty()) // no block identifier provided
-	{
-		errorMessage_ = "bloco sem identificador";
-		return false;
-	}
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*) this->getPortal();
-	if (!portal)
-		return false;
-
-	bool update = false;
-	string q =" SELECT * FROM " + table; 
-	q += " WHERE block_id='" + blockId + "'";
-
-	if (!portal->query(q))
-	{
-		delete portal;
-		return false;
-	}
-	// check if this block is alread in the database
-	if (portal->fetchRow())
-		update = true;
-	delete portal;
-
-	string sdo_geom = " MDSYS.SDO_GEOMETRY(2003, NULL, NULL";
-	sdo_geom += ", MDSYS.SDO_ELEM_INFO_ARRAY( 1, 1003, 3 )";
-	sdo_geom += ", MDSYS.SDO_ORDINATE_ARRAY( " ;
-	sdo_geom += Te2String(ll.x(),15);
-	sdo_geom += ", " + Te2String(ll.y(),15);
-	sdo_geom += ", " + Te2String(ur.x(),15);
-	sdo_geom += ", " + Te2String(ur.y(),15);
-	sdo_geom += ")) ";
-
-	try
-	{
-		if (!update)
-		{
-			q = "INSERT INTO "+ table +" (block_id, band_id, subband, ";
-			q += " resolution_factor, block_box, block_size, spatial_data) VALUES ( ";
-			q += "'" + blockId + "'";
-			q += ", " + Te2String(band);
-			q += ", " + Te2String(subband);
-			q += ", " + Te2String(res);
-			q += ", " + sdo_geom;
-			q += ", " + Te2String(size);
-			q += ", :blobValue";
-			q += ")";
-			
-			if (!connection_->executeBLOBSTM(q, buf, size, ":blobValue"))
-				return false;
-		}
-		else
-		{
-			q = " UPDATE "+ table +" SET spatial_data=:blobValue ";
-			q += " WHERE block_id='" + blockId + "'";
-			if (!connection_->executeBLOBSTM(q, buf, size, ":blobValue"))
-				return false;
-		}
-	}
-	catch(...)
-	{
-		errorMessage_ = "Error inserting raster block!";
-		return false;
-	}
-	return true;
-}
-
-bool 
-TeOracleSpatial::allocateOrdinatesObject(TePolygon &poly, string& elInfo, TeOCICursor* cursor_)
-{
-	int		totalsize, ni, size;
-	double	xult, yult;
-	short	orient;
-
-	ni = poly.size () - 1;
-
-	xult = -9999.99;
-	yult = -9999.99;
-
-	totalsize = 0;
-
-	try
-	{
-		//OCI: create the ordinates array
-		if(!cursor_)
-			connection_->allocateObjectOrdinates();
-		
-		for (int k = 0; k <= ni; k++ )
-		{
-			TeLinearRing ring ( poly[k] );
-			totalsize += ring.size();
-			size = ring.size();
-			orient = TeOrientation(ring);
-			
-			if (k==0)  //external polygon: UNCLOCKWISE
-			{
-				elInfo = "1, 1003, 1";
-				if(orient == TeCOUNTERCLOCKWISE)   
-				{
-					for (int i=0;i<size;i++)
-					{
-						if(xult != ring[i].x() || yult != ring[i].y())
-						{
-							if(cursor_)
-							{
-								cursor_->appendOrdinates(ring[i].x());
-								cursor_->appendOrdinates (ring[i].y());	
-							}
-							else
-							{
-								connection_->appendOrdinates(ring[i].x());
-								connection_->appendOrdinates (ring[i].y());	
-							}
-						
-							xult = ring[i].x();
-							yult = ring[i].y();
-						}
-					}
-				}
-				//keep UNCLOCKWISE ring 
-				else
-				{
-					for (int i=0;i<size;i++)
-					{
-						if(xult != ring[size-1-i].x() || yult != ring[size-1-i].y())
-						{
-							if(cursor_)
-							{
-								cursor_->appendOrdinates(ring[size-1-i].x());
-								cursor_->appendOrdinates (ring[size-1-i].y());
-							}
-							else
-							{
-								connection_->appendOrdinates(ring[size-1-i].x());
-								connection_->appendOrdinates (ring[size-1-i].y());
-							}
-							
-							xult = ring[size-1-i].x();
-							yult = ring[size-1-i].y();
-						}
-					}
-				}
-			}
-
-			else  //internal polygon: CLOCKWISE
-			{
-				int pos = ((totalsize - size) * 2) + 1; 
-				elInfo += ", " + Te2String(pos) + ", 2003, 1";
-						
-				if(orient == TeCLOCKWISE)   
-				{
-					for (int i=0;i<size;i++)
-					{
-						if(xult != ring[i].x() || yult != ring[i].y())
-						{
-							if(cursor_)
-							{
-								cursor_->appendOrdinates(ring[i].x());
-								cursor_->appendOrdinates (ring[i].y());
-							}
-							else
-							{
-								connection_->appendOrdinates(ring[i].x());
-								connection_->appendOrdinates (ring[i].y());
-							}
-
-							xult = ring[i].x();
-							yult = ring[i].y();
-						}
-					}
-				}
-				//keep CLOCKWISE ring
-				else
-				{
-					for (int i=0;i<size;i++)
-					{
-						if(xult != ring[size-1-i].x() || yult != ring[size-1-i].y())
-						{
-							connection_->appendOrdinates(ring[size-1-i].x());
-							connection_->appendOrdinates (ring[size-1-i].y());
-							
-							xult = ring[size-1-i].x();
-							yult = ring[size-1-i].y();
-						}
-					}
-				}
-			}
-		}//for all rings
-	}
-	catch(...)
-	{
-		return false;
-	}
-	
-	return true;	
-}
-
-bool 
-TeOracleSpatial::allocateOrdinatesObject(TeLine2D &line, TeOCICursor* cursor_)
-{
-	int size = line.size();
-	double	xult, yult;
-	xult = -9999.99;
-	yult = -9999.99;
-
-	try
-	{
-		//OCI: create the ordinates array
-		if(!cursor_)
-			connection_->allocateObjectOrdinates ();
-
-		for (int i=0;i<size;i++)
-		{		
-			if(xult != line[i].x() || yult != line[i].y())
-			{
-				if(cursor_)
-				{
-					cursor_->appendOrdinates(line[i].x());
-					cursor_->appendOrdinates(line[i].y());
-				}
-				else
-				{
-					connection_->appendOrdinates(line[i].x());
-					connection_->appendOrdinates(line[i].y());
-				}
-				xult = line[i].x();
-				yult = line[i].y();
-			}
-		}
-	}
-	catch(...)
-	{
-		return false;
-	}
-
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::insertPolygon (const string& table, TePolygon &poly)
-{
-	string	elinfo;
-	
-	if(!allocateOrdinatesObject(poly, elinfo))
-		return false;
-	
-	string ins = "INSERT INTO " + table + " ( ";
-	ins += " geom_id, object_id, spatial_data) VALUES ( ";
-	ins += getNameSequence(table) +".NEXTVAL";
-	ins += ", '" + escapeSequence(poly.objectId()) + "'";
-	ins += ", MDSYS.SDO_GEOMETRY(2003, NULL, NULL";
-	ins += ", MDSYS.SDO_ELEM_INFO_ARRAY( " + elinfo + " )";
-	ins += ", :ordinates_) ";
-	ins += " )";
-
-	if(!connection_->executeSDOSTM(ins))
-	{
-		errorMessage_ = "Error inserting in the table " + table + "!"; 
-		return false;
-	}
-	return true;
-}
-
-bool 
-TeOracleSpatial::updatePolygon (const string& table, TePolygon &poly)
-{
-	if(!tableExist(table))
-	{	
-		errorMessage_ = "Table not exist!";
-		return false;
-	}
-	
-	string elinfo;
-
-	if(!allocateOrdinatesObject(poly, elinfo))
-		return false;
-		
-	string sql;
-	sql =  "UPDATE " + table + " SET ";
-	sql += ", object_id = '" + poly.objectId() + "'";
-	sql += ", spatial_data = ";
-	sql += " MDSYS.SDO_GEOMETRY(2003, NULL, NULL";
-	sql += ", MDSYS.SDO_ELEM_INFO_ARRAY( " + elinfo + " )";
-	sql += ", :ordinates_) ";
-	sql += " WHERE geom_id = " + poly.geomId();
-
-	//OCI
-	if(!connection_->executeSDOSTM(sql))
-	{
-		errorMessage_ = "Error updating in the table " + table + "!"; 
-		return false;
-	}
-	
-	return true;
-}
-
-bool 
-TeOracleSpatial::selectPolygonSet (const string& table, const string& criteria, TePolygonSet &ps)
-{
-	TeOracleSpatialPortal *ocip = (TeOracleSpatialPortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string sql ="SELECT * FROM " + table;
-	if (!criteria.empty())
-		sql += " WHERE " + criteria;
-	sql += " ORDER BY object_id ASC ";
-	 
-	if (!ocip->query(sql) || !ocip->fetchRow())
-	{
-		delete ocip;
-		return false;
-	}
-	
-	bool flag = true;
-	do
-	{
-		TePolygon poly;
-		flag = ocip->fetchGeometry(poly);
-		ps.add(poly);
-	}
-	while (flag);
-
-	delete ocip;
-	return true;
-}
-
-bool 
-TeOracleSpatial::loadPolygonSet (const string& table, const string& geoid, TePolygonSet &ps)
-{
-	TeOracleSpatialPortal *ocip = (TeOracleSpatialPortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string q ="SELECT * FROM " + table;
-
-	if (geoid != "")
-		q += " WHERE object_id = '" + geoid +"'";
-	
-	if (!ocip->query(q) || !ocip->fetchRow())
-	{	
-		delete ocip;
-		return false;
-	}
-
-	bool flag = true;
-	do
-	{
-		TePolygon poly;
-		flag = ocip->fetchGeometry(poly);
-		ps.add(poly);
-	}
-	while (flag);
-	delete ocip;
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::loadPolygonSet (const string& table, TeBox &box, TePolygonSet &ps)
-{
-	TeOracleSpatialPortal *ocip = (TeOracleSpatialPortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string q = "SELECT * FROM " + table;
-	q += this->getSQLBoxWhere (box, TePOLYGONS, table);
-	q += " ORDER BY object_id ";
-
-	if (!ocip->query(q) || !ocip->fetchRow())
-	{	
-		delete ocip;
-		return false;
-	}
-	bool flag = true;
-	do
-	{
-		TePolygon poly;
-		flag = ocip->fetchGeometry(poly);
-		ps.add(poly);
-	}
-	while (flag);
-	delete ocip;
-	return true;
-}
-
-bool 
-TeOracleSpatial::loadPolygonSet(TeTheme* theme, TePolygonSet &ps)
-{
-	string collTable = theme->collectionTable();
-	if (collTable.empty())
-		return false;
-
-	TeLayer* themeLayer = theme->layer();
-	if (!themeLayer->hasGeometry(TePOLYGONS))
-		return false;
-	
-	string polygonTable = themeLayer->tableName(TePOLYGONS);
-	if (polygonTable.empty())
-		return false;
-
-	string sql = "SELECT * FROM (" + polygonTable + " RIGHT JOIN " + collTable;
-	sql += " ON " + polygonTable + ".object_id = " + collTable + ".c_object_id)";
-	
-	TeOracleSpatialPortal *ocip = (TeOracleSpatialPortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	if (!ocip->query(sql) || !ocip->fetchRow())
-	{
-		delete ocip;
-		return false;
-	}
-
-	bool flag = true;
-	do
-	{
-		TePolygon poly;
-		flag = ocip->fetchGeometry(poly);
-		ps.add ( poly );
-	}
-	while (flag);		
-	delete ocip;
-	return true;
-}
-
-TeDatabasePortal* 
-TeOracleSpatial::loadPolygonSet(const string& table, TeBox &box)
-{
-	TeOracleSpatialPortal *portal = (TeOracleSpatialPortal*)this->getPortal();
-	if (!portal)
-		return 0;
-
-	string q;
-	q = "SELECT * FROM " + table + " WHERE ";
-	q += this->getSQLBoxWhere (box, TePOLYGONS, table);
-	q += " ORDER BY object_id ";
-
-	if (!portal->query(q) || !portal->fetchRow())
-	{	
-		delete portal;
-		return 0;
-	}
-	else 
-		return portal;
-}
-
-
-//Spatial query
-//retornam um portal
-bool 
-TeOracleSpatial::spatialRelation(const string& actGeomTable, TeGeomRep /* actRep */, TeKeys& actIdsIn, TeDatabasePortal *portal, int relate, const string& actCollTable)
-{
-	string Ids = getStringIds(actIdsIn);
-	string actGeomColl = "spatial_data";
-	
-	string spatialRel = getOracleSpatialRelation(relate);
-	
-	//Montar a sql para passar para o Oracle
-	string sql = "SELECT geomTable1.* ";
-	sql += " FROM "+ actGeomTable +" geomTable1,";
-	sql += actGeomTable + " geomTable2 ";
-	
-	if(!actCollTable.empty())
-	{
-		sql += ", "+ actCollTable +" collTable ";
-		sql += " WHERE geomTable1.object_id = collTable.c_object_id AND ";
-	}
-	else
-		sql += " WHERE ";
-	
-	sql += " geomTable2.object_id IN (" + Ids + ") AND ";
-
-	if(relate==TeEQUALS)
-		sql += " geomTable1.object_id NOT IN (" + Ids + ") AND ";  
-	
-	if(relate==TeDISJOINT)
-		sql += " NOT ";  // NOT ANYINTERACT
-
-	sql += " SDO_RELATE(geomTable1."+ actGeomColl +", geomTable2."+ actGeomColl +", 'mask= "; 
-	sql += spatialRel + " querytype=WINDOW') = 'TRUE'";
-
-	portal->freeResult();
-	if(!((TeOracleSpatialPortal*)portal)->querySDO (sql)) 
-		return false;
-
-	return (portal->fetchRow());
-}
-
-bool 
-TeOracleSpatial::spatialRelation(const string& actGeomTable, TeGeomRep /* actRep */, TeKeys& actIdsIn, const string& visGeomTable, TeGeomRep /* visRep */, TeDatabasePortal *portal, int relate, const string& visCollTable)
-{
-	string Ids = getStringIds(actIdsIn);
-	string spatialRel = getOracleSpatialRelation(relate);
-	string actGeomColl = "spatial_data";
-	string visGeomColl = "spatial_data";
-	
-	//Montar a sql para passar para o Oracle
-	string sql = "SELECT geomTable1.* ";
-	sql += " FROM "+ visGeomTable +" geomTable1,";
-	sql += actGeomTable + " geomTable2 ";
-	
-	if(!visCollTable.empty())
-	{
-		sql += ", "+ visCollTable +" collTable";
-		sql += " WHERE geomTable1.object_id = collTable.c_object_id AND ";
-	}
-	else
-		sql += " WHERE ";
-	
-	sql += " geomTable2.object_id IN (" + Ids + ") AND ";
-
-	if(relate==TeDISJOINT)
-		sql += " NOT ";  // NOT ANYINTERACT
-
-	sql += " SDO_RELATE(geomTable1."+ visGeomColl +", geomTable2."+ actGeomColl +", 'mask= "; 
-	sql += spatialRel + " querytype=WINDOW') = 'TRUE'";
-
-	portal->freeResult();
-	if(!((TeOracleSpatialPortal*)portal)->querySDO(sql))
-		return false;
-	
-	return (portal->fetchRow());
-		
-}
-
-bool 
-TeOracleSpatial::spatialRelation(const string& actGeomTable, TeGeomRep /* actRep */, TeGeometry* geom, TeDatabasePortal *portal, int relate, const string& actCollTable) 
-{
-	portal->freeResult();
-	string elinfo, sdo;
-	
-	TeOCICursor	*cursor_ = ((TeOracleSpatialPortal*)portal)->getCursor();	
-	string spatialRel = getOracleSpatialRelation(relate);
-	string actGeomColl = "spatial_data";
-
-	if(geom->elemType()==TePOLYGONS)
-	{
-		TePolygon poly, *pPoly;
-		pPoly = new TePolygon();
-		pPoly = (TePolygon*)geom;
-		poly = *pPoly;
-
-		if(!allocateOrdinatesObject(poly, elinfo, cursor_))
-		{
-			delete cursor_;
-			return false;
-		}
-
-		sdo = " MDSYS.SDO_GEOMETRY(2003, NULL, NULL, ";
-		sdo += " MDSYS.SDO_ELEM_INFO_ARRAY(" + elinfo + "), ";
-		sdo += " :ordinates_)";
-
-		//delete pPoly;  //delete tamb�m o geom, talvez deixar para aplicacao
-	}
-	
-	else if (geom->elemType()==TeLINES)
-	{
-		TeLine2D line, *pLine;
-		pLine = new TeLine2D();
-		pLine = (TeLine2D*)geom;
-		line = *pLine;
-
-		if(!allocateOrdinatesObject(line, cursor_))
-		{
-			delete cursor_;
-			return false;
-		}
-
-		elinfo = "1, 2, 1";
-
-		sdo = " MDSYS.SDO_GEOMETRY(2002, NULL, NULL, ";
-		sdo += " MDSYS.SDO_ELEM_INFO_ARRAY(" + elinfo + "), ";
-		sdo += " :ordinates_)";
-
-		//delete pLine;  //delete tamb�m o geom
-	}
-	
-	else if (geom->elemType()==TePOINTS)
-	{
-		TePoint point, *pPoint;
-		pPoint = new TePoint();
-		pPoint = (TePoint*)geom;
-		point = *pPoint;
-		
-		sdo = " MDSYS.SDO_GEOMETRY(2001, NULL, ";
-		sdo += " MDSYS.SDO_POINT_TYPE( ";
-		sdo += Te2String(point.location().x(),15);
-		sdo += ", " + Te2String(point.location().y(),15);
-		sdo += ", NULL )";
-		sdo += ", NULL, NULL))";
-		
-		//delete pPoint;
-	}
-
-	else if (geom->elemType()==TeCELLS)
-	{
-		TeCell cell, *pCell;
-		pCell = new TeCell();
-		pCell = (TeCell*)geom;
-		cell = *pCell;
-
-		TeBox b = cell.box();
-		
-		sdo = " MDSYS.SDO_GEOMETRY(2003, NULL, NULL ";
-		sdo += ", MDSYS.SDO_ELEM_INFO_ARRAY( 1, 1003, 3 )";
-		sdo += ", MDSYS.SDO_ORDINATE_ARRAY( " ;
-		sdo += Te2String(b.lowerLeft().x(),15);
-		sdo += ", " + Te2String(b.lowerLeft().y(),15);
-		sdo += ", " + Te2String(b.upperRight().x(),15);
-		sdo += ", " + Te2String(b.upperRight().y(),15);
-		sdo += ")) ";
-
-		//delete pCell;
-	}
-	
-	//Montar a sql para passar para o Oracle
-	string sql = "SELECT geomTable.* ";
-	sql += " FROM " + actGeomTable + " geomTable ";
-
-	if(!actCollTable.empty())
-	{
-		sql += ", "+ actCollTable +" collTable ";
-		sql += " WHERE geomTable.object_id = collTable.c_object_id AND ";
-	}
-	else
-		sql += " WHERE ";
-	
-	
-	if(relate==TeDISJOINT)
-		sql += " NOT ";  // NOT ANYINTERACT
-
-	sql += " MDSYS.SDO_RELATE(geomTable."+ actGeomColl +", "+ sdo +", 'mask= "; 
-	sql += spatialRel + " querytype=WINDOW') = 'TRUE'";
-
-	if(!((TeOracleSpatialPortal*)portal)->querySDO(sql))
-		return false;
-
-	return (portal->fetchRow());
-}
-
-
-//retornam um vetor de object_ids resultantes da consulta
-bool 
-TeOracleSpatial::spatialRelation(const string& actGeomTable, TeGeomRep /* actRep */, TeKeys& actIdsIn, TeKeys& actIdsOut, int relate, const string& actCollTable)
-{
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*) getPortal(); 
-		
-	string Ids = getStringIds(actIdsIn);
-	string spatialRel = getOracleSpatialRelation(relate);
-	string actGeomColl = "spatial_data";
-
-	//Montar a sql para passar para o Oracle
-	string sql = "SELECT geomTable1.object_id ";
-	sql += " FROM "+ actGeomTable +" geomTable1,";
-	sql += actGeomTable + " geomTable2 ";
-	
-	if(!actCollTable.empty())
-	{
-		sql += ", "+ actCollTable +" collTable ";
-		sql += " WHERE geomTable1.object_id = collTable.c_object_id AND ";
-	}
-	else
-		sql += " WHERE ";
-	
-	sql += " geomTable2.object_id IN (" + Ids + ") AND ";
-
-	if(relate==TeEQUALS)
-		sql += " geomTable1.object_id NOT IN (" + Ids + ") AND ";  
-	
-	if(relate==TeDISJOINT)
-		sql += " NOT ";  // NOT ANYINTERACT
-
-	sql += " SDO_RELATE(geomTable1."+ actGeomColl +", geomTable2."+ actGeomColl +", 'mask= "; 
-	sql += spatialRel + " querytype=WINDOW') = 'TRUE'";
-
-	if(!portal->query(sql))
-	{
-		delete portal;
-		return false;
-	}
-	
-	actIdsOut.clear();
-	while(portal->fetchRow())
-	{
-		string objId = portal->getData (0);
-		actIdsOut.push_back(objId);
-	}
-
-	sort(actIdsOut.begin(), actIdsOut.end());
-	unique(actIdsOut.begin(), actIdsOut.end());
-
-	delete portal;
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::spatialRelation(const string& actGeomTable, TeGeomRep /* actRep */, TeKeys& actIdsIn, const string& visGeomTable, TeGeomRep /* visRep */, TeKeys& visIdsOut, int relate, const string& visCollTable)
-{
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*) getPortal(); 
-	
-	string Ids = getStringIds(actIdsIn);
-	string spatialRel = getOracleSpatialRelation(relate);
-	string actGeomColl = "spatial_data";
-	string visGeomColl = "spatial_data";
-	
-	//Montar a sql para passar para o Oracle
-	string sql = "SELECT geomTable1.object_id ";
-	sql += " FROM "+ visGeomTable +" geomTable1,";
-	sql += actGeomTable + " geomTable2 ";
-	
-	if(!visCollTable.empty())
-	{
-		sql += ", "+ visCollTable +" collTable";
-		sql += " WHERE geomTable1.object_id = collTable.c_object_id AND ";
-	}
-	else
-		sql += " WHERE ";
-	
-	sql += " geomTable2.object_id IN (" + Ids + ") AND ";
-
-	if(relate==TeDISJOINT)
-		sql += " NOT ";  // NOT ANYINTERACT
-
-	sql += " SDO_RELATE(geomTable1."+ visGeomColl +", geomTable2."+ actGeomColl +", 'mask= "; 
-	sql += spatialRel + " querytype=WINDOW') = 'TRUE'";
-
-	if(!portal->query(sql))
-	{
-		delete portal;
-		return false;
-	}
-	
-	visIdsOut.clear();
-	while(portal->fetchRow())
-	{
-		string objId = portal->getData (0);
-		visIdsOut.push_back(objId);
-	}
-
-	sort(visIdsOut.begin(), visIdsOut.end());
-	unique(visIdsOut.begin(), visIdsOut.end());
-
-	delete portal;
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::spatialRelation(const string& actGeomTable, TeGeomRep actRep, TeGeometry* geom, TeKeys& actIdsOut, int relate, const string& actCollTable)
-{
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*) getPortal(); 
-		
-	if(!spatialRelation(actGeomTable, actRep, geom, portal, relate, actCollTable))
-	{
-		delete portal;
-		return false;
-	}
-		
-	actIdsOut.clear();
-	do
-	{
-		string objId = portal->getData ("object_id");
-		actIdsOut.push_back(objId);
-	}while(portal->fetchRow());
-
-	sort(actIdsOut.begin(), actIdsOut.end());
-	unique(actIdsOut.begin(), actIdsOut.end());
-
-	delete portal;
-	return true;
-}
-
-// metric functions
-bool
-TeOracleSpatial::calculateArea(const string& actGeomTable, TeGeomRep /* actRep */, TeKeys& actIdsIn, double &area)
-{
-	string Ids = getStringIds(actIdsIn);
-	string actGeomColl = "spatial_data";
-	
-	string sql = "SELECT SUM(SDO_GEOM.SDO_AREA(g."+ actGeomColl +", m.diminfo))";
-	sql += " FROM "+ actGeomTable +" g, USER_SDO_GEOM_METADATA m";
-	sql += " WHERE m.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	sql += " AND object_id IN ("+ Ids +")";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if(!portal->query(sql) || !portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-
-	area = portal->getDouble(0);
-	delete portal;
-	return true;
-}
-
-bool
-TeOracleSpatial::calculateLength(const string& actGeomTable, TeGeomRep /* actRep */, TeKeys& actIdsIn, double &length)
-{
-	string Ids = getStringIds(actIdsIn);
-	string actGeomColl = "spatial_data";
-	
-	string sql = "SELECT SUM(SDO_GEOM.SDO_LENGTH(g."+ actGeomColl +", m.diminfo))";
-	sql += " FROM "+ actGeomTable +" g, USER_SDO_GEOM_METADATA m";
-	sql += " WHERE m.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	sql += " AND object_id IN ("+ Ids +")";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if(!portal->query(sql) || !portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-
-	length = portal->getDouble(0);
-	delete portal;
-	return true;
-}
-
-
-//distancia entre objetos de um mesma tabela
-bool
-TeOracleSpatial::calculateDistance(const string& actGeomTable, TeGeomRep /* actRep */, TeKeys& Ids, double& distance)
-{
-	string Id1 = Ids[0];
-	string Id2 = Ids[1];
-	string actGeomColl = "spatial_data";
-
-	string sql = "SELECT MIN(SDO_GEOM.SDO_DISTANCE(g1."+ actGeomColl +", m.diminfo, ";
-	sql += " g2."+ actGeomColl +", m.diminfo))";
-	sql += " FROM "+ actGeomTable +" g1,"+ actGeomTable +" g2, USER_SDO_GEOM_METADATA m";
-	sql += " WHERE m.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	sql += " AND g1.object_id = '"+ Id1 +"'"; 
-	sql += " AND g2.object_id = '"+ Id2 +"'";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if(!portal->query(sql) || !portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-
-	distance = portal->getDouble(0);
-	delete portal;
-	return true;
-}
-
-
-//distancia entre objetos de duas tabelas distintas
-bool
-TeOracleSpatial::calculateDistance(const string& actGeomTable, TeGeomRep /* actRep */, const string& objId1, const string& visGeomTable, TeGeomRep /* visRep */, const string& objId2, double& distance)
-{
-	string actGeomColl = "spatial_data";
-	string visGeomColl = "spatial_data";
-	
-	string sql = "SELECT MIN(SDO_GEOM.SDO_DISTANCE(g1."+ actGeomColl +", m1.diminfo, ";
-	sql += " g2."+ visGeomColl +", m2.diminfo))";
-	sql += " FROM "+ actGeomTable +" g1,"+ visGeomTable +" g2, ";
-	sql += " USER_SDO_GEOM_METADATA m1, USER_SDO_GEOM_METADATA m2 ";
-	sql += " WHERE m1.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m1.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	sql += " AND m2.table_name = '"+ TeConvertToUpperCase(visGeomTable) +"'";
-	sql += " AND m2.column_name = '"+ TeConvertToUpperCase(visGeomColl) +"'";
-	sql += " AND g1.object_id = '"+ objId1 +"'"; 
-	sql += " AND g2.object_id = '"+ objId2 +"'";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if(!portal->query(sql) || !portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-
-	distance = portal->getDouble(0);
-	delete portal;
-	return true;
-}
-
-
-
-// functions that return a new geometry
-
-//Euclidean distance value: dist
-bool
-TeOracleSpatial::buffer(const string& actGeomTable, TeGeomRep /* actRep */, TeKeys& actIds, TePolygonSet& bufferSet, double dist)
-{
-	string Ids = getStringIds(actIds);
-	string actGeomColl = "spatial_data";
-
-	string sql = "SELECT g.geom_id, g.object_id,";
-	sql += " SDO_GEOM.SDO_BUFFER(g."+ actGeomColl +", m.diminfo, "+ Te2String(dist, 15) +")";
-	sql += " FROM "+ actGeomTable +" g, USER_SDO_GEOM_METADATA m";
-	sql += " WHERE m.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	sql += " AND object_id IN ("+ Ids +")";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if(!portal->query(sql) || !portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-
-	bool flag = true;
-	do 
-	{
-		TePolygonSet polySet;
-		flag = portal->fetchGeometry(polySet);
-		//teste c/ buffer com filhos
-		for(unsigned int i=0; i<polySet.size(); i++)
-			bufferSet.add(polySet[i]);
-
-	}while(flag);
-
-	delete portal;
-	return true;
-}
-
-bool 
-TeOracleSpatial::convexHull(const string& actGeomTable, TeGeomRep /* actRep */, TeKeys& actIds, TePolygonSet& convexHullSet)
-{
-	string Ids = getStringIds(actIds);
-	string actGeomColl = "spatial_data";
-	
-	string sql = "SELECT g.geom_id, g.object_id,";
-	sql += " SDO_GEOM.SDO_CONVEXHULL(g."+ actGeomColl +", m.diminfo )";
-	sql += " FROM "+ actGeomTable +" g, USER_SDO_GEOM_METADATA m";
-	sql += " WHERE m.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	sql += " AND object_id IN ("+ Ids +")";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if(!portal->query(sql) || !portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-	
-	bool flag = true;
-	do 
-	{
-		TePolygon poly;
-		flag = portal->fetchGeometry(poly);
-		convexHullSet.add(poly);
-	}while(flag);
-
-	delete portal;
-	return true;
-}
-
-bool 
-TeOracleSpatial::centroid(const string&  actGeomTable , TeGeomRep /* actRep */, TePointSet& centroidSet, TeKeys actIds, const string& /* actCollTable */)
-{
-	string Ids = getStringIds(actIds);
-	string actGeomColl = "spatial_data";
-	
-	string sql = "SELECT g.geom_id, g.object_id,";
-	sql += " SDO_GEOM.SDO_CENTROID(g."+ actGeomColl +", m.diminfo )";
-	sql += " FROM "+ actGeomTable +" g, USER_SDO_GEOM_METADATA m";
-	sql += " WHERE m.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	
-	//if empty it calculates the centroids to all geometries 
-	if(!Ids.empty())
-		sql += " AND object_id IN ("+ Ids +")";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if(!portal->query(sql) || !portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-
-	bool flag = true;
-	do 
-	{
-		TePoint point;
-		flag = portal->fetchGeometry(point);
-		centroidSet.add(point);
-	}while(flag);
-
-	delete portal;
-	return true;
-	
-}
-
-bool 
-TeOracleSpatial::nearestNeighbors(const string& actGeomTable, const string& actCollTable, TeGeomRep actRep, const string& objId1, TeKeys& actIdsOut, int numRes)
-{
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*) getPortal(); 
-	
-	if(!nearestNeighbors(actGeomTable, actCollTable, actRep, objId1, portal, numRes))
-	{
-		delete portal;
-		return false;
-	}
-		
-	actIdsOut.clear();
-	while(portal->fetchRow())
-	{
-		string objId = portal->getData ("object_id");
-		actIdsOut.push_back(objId);
-	}
-
-	sort(actIdsOut.begin(), actIdsOut.end());
-	unique(actIdsOut.begin(), actIdsOut.end());
-
-	delete portal;
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::nearestNeighbors(const string& actGeomTable, TeGeomRep actRep, const string& objId1, const string& visGeomTable, const string& visCollTable, TeGeomRep visRep, TeKeys& visIdsOut, int numRes)
-{
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*) getPortal(); 
-	
-	if(!nearestNeighbors(actGeomTable, actRep, objId1, visGeomTable, visCollTable, visRep, portal, numRes))
-	{
-		delete portal;
-		return false;
-	}
-		
-	visIdsOut.clear();
-	while(portal->fetchRow())
-	{
-		string objId = portal->getData ("object_id");
-		visIdsOut.push_back(objId);
-	}
-
-	sort(visIdsOut.begin(), visIdsOut.end());
-	unique(visIdsOut.begin(), visIdsOut.end());
-
-	delete portal;
-	return true;
-}
-
-bool 
-TeOracleSpatial::nearestNeighbors(const string& actGeomTable, const string& actCollTable, TeGeomRep /* actRep */, const string& objId1, TeDatabasePortal* portal, int numRes)
-{
-	string actGeomColl = "spatial_data";
-
-	//select the spatial index
-	string index = " SELECT INDEX_NAME FROM USER_SDO_INDEX_INFO";
-	index += " WHERE TABLE_NAME = '"+ TeConvertToUpperCase(actGeomTable) +"'"; 
-
-	portal->freeResult();
-	if(!portal->query(index) || !portal->fetchRow())
-        return false;
-
-	string indexName = string(portal->getData(0));
-	string perf = "/*+ INDEX("+ TeConvertToUpperCase(actGeomTable) +" "+ indexName +") */ ";
-	
-	string sql = "SELECT "+ perf +"  geomTable1.* ";
-	sql += " FROM "+ actGeomTable +" geomTable1,";
-	sql += actGeomTable + " geomTable2 ";
-	
-	if(!actCollTable.empty())
-	{
-		sql += ", "+ actCollTable +" collTable ";
-		sql += " WHERE ";
-		sql += " geomTable1.object_id = collTable.c_object_id AND ";
-	}
-	else
-		sql += " WHERE ";
-		
-	sql += " SDO_NN(geomTable1."+ actGeomColl +", geomTable2."+ actGeomColl +", 'sdo_batch_size=10')='TRUE' AND ";
-	sql += " geomTable2.object_id = '" + objId1 + "' AND ";
-	sql += " geomTable1.object_id <> '"+ objId1 +"' AND ";
-	sql += " ROWNUM <= "+ Te2String(numRes);
-
-	portal->freeResult();
-	if(!((TeOracleSpatialPortal*)portal)->querySDO(sql))
-		return false;
-	
-	return true;
-}
-	
-bool 
-TeOracleSpatial::nearestNeighbors(const string& actGeomTable, TeGeomRep /* actRep */, const string& objId1, const string& visGeomTable, const string& visCollTable, TeGeomRep /* visRep */, TeDatabasePortal* portal, int numRes)
-{
-	string actGeomColl = "spatial_data";
-	string visGeomColl = "spatial_data";
-
-	//select the spatial index
-	string index = " SELECT INDEX_NAME FROM USER_SDO_INDEX_INFO";
-	index += " WHERE TABLE_NAME = '"+ TeConvertToUpperCase(visGeomTable) +"'"; 
-
-	portal->freeResult();
-	if(!portal->query(index) || !portal->fetchRow())
-		return false;
-
-	string indexName = string(portal->getData(0));
-	string perf = "/*+ INDEX("+ TeConvertToUpperCase(visGeomTable) +" "+ indexName +") */ ";
-	string nres = " ROWNUM <= "+ numRes;
-	
-	string sql = "SELECT "+ perf +"  geomTable1.* ";
-	sql += " FROM "+ visGeomTable +" geomTable1,";
-	sql += actGeomTable + " geomTable2 ";
-	
-	if(!visCollTable.empty())
-	{
-		sql += ", "+ visCollTable +" collTable";
-		sql += " WHERE ";
-		sql += " geomTable1.object_id = collTable.c_object_id AND ";
-	}
-	else
-		sql += " WHERE ";
-		
-	sql += " SDO_NN(geomTable1."+ actGeomColl +", geomTable2."+ actGeomColl;
-	sql += ", 'sdo_batch_size=10') = 'TRUE' AND ";
-	sql += " geomTable2.object_id = '" + objId1 + "' AND ";
-	sql += " ROWNUM <= "+ Te2String(numRes);
-	
-	portal->freeResult();
-	if(!((TeOracleSpatialPortal*)portal)->querySDO(sql))
-		return false;
-	
-	return true;
-}
-
-
-//Intersection entre dois objetos geogr�ficos de uma mesma tabela
-
-
-bool 
-TeOracleSpatial::geomIntersection(const string& actGeomTable, TeGeomRep /* actRep */, TeKeys& actIds, TeGeometryVect& geomVect)
-{
-	string actGeomColl = "spatial_data";
-	string Ids = getStringIds(actIds);
-
-	string sql = "SELECT SDO_GEOM.SDO_INTERSECTION(g1."+ actGeomColl +", m.diminfo, ";
-	sql += " g2."+ actGeomColl +", m.diminfo)";
-	sql += " FROM "+ actGeomTable +" g1,"+ actGeomTable +" g2, USER_SDO_GEOM_METADATA m";
-	sql += " WHERE m.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	sql += " AND object_id IN ("+ Ids +")";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if((!portal->query(sql))||(!portal->fetchRow()))
-	{
-		delete portal;
-		return false;
-	}
-
-	bool flag = true;
-	do 
-	{
-		bool result=false;
-		TeGeometry* geom = new TeGeometry(); 
-		TeGeometry* geom2 = geom;
-		flag = portal->getGeometry(&geom, result);
-		if(result)
-			geomVect.push_back (geom);
-		delete geom2;
-	}while(flag);
-		
-	delete portal;
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::geomIntersection(const string& actGeomTable, TeGeomRep /* actRep */, const string& objId1, const string& visGeomTable, TeGeomRep /* visRep */, const string& objId2, TeGeometryVect& geomVect)
-{
-	string actGeomColl = "spatial_data";
-	string visGeomColl = "spatial_data";
-	
-	string sql = "SELECT SDO_GEOM.SDO_INTERSECTION(g1."+ actGeomColl +", m1.diminfo, ";
-	sql += " g2."+ visGeomColl +", m2.diminfo)";
-	sql += " FROM "+ actGeomTable +" g1,"+ visGeomTable +" g2, ";
-	sql += " USER_SDO_GEOM_METADATA m1, USER_SDO_GEOM_METADATA m2 ";
-	sql += " WHERE m1.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m1.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	sql += " AND m2.table_name = '"+ TeConvertToUpperCase(visGeomTable) +"'";
-	sql += " AND m2.column_name = '"+ TeConvertToUpperCase(visGeomColl) +"'"; 
-	sql += " AND g1.object_id = '"+ objId1 +"'"; 
-	sql += " AND g2.object_id = '"+ objId2 +"'";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if(!portal->query(sql) || !portal->fetchRow())
-	{
-		delete portal;
-		return false; 
-	}
-
-	bool flag = true;
-	do 
-	{
-		bool result=false;
-		TeGeometry* geom = new TeGeometry(); 
-		TeGeometry* geom2 = geom;
-		flag = portal->getGeometry(&geom, result);
-		if(result)
-			geomVect.push_back (geom);
-		delete geom2;
-	}while(flag);
-		
-	delete portal;
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::geomDifference(const string& actGeomTable, TeGeomRep /* actRep */, const string& objId1, const string& visGeomTable, TeGeomRep /* visRep */, const string& objId2, TeGeometryVect& geomVect)
-{
-	string actGeomColl = "spatial_data";
-	string visGeomColl = "spatial_data";
-
-	string sql = "SELECT SDO_GEOM.SDO_DIFFERENCE(g1."+ actGeomColl +", m1.diminfo, ";
-	sql += " g2."+ visGeomColl +", m2.diminfo)";
-	sql += " FROM "+ actGeomTable +" g1,"+ visGeomTable +" g2, ";
-	sql += " USER_SDO_GEOM_METADATA m1, USER_SDO_GEOM_METADATA m2 ";
-	sql += " WHERE m1.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m1.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	sql += " AND m2.table_name = '"+ TeConvertToUpperCase(visGeomTable) +"'";
-	sql += " AND m2.column_name = '"+ TeConvertToUpperCase(visGeomColl) +"'"; 
-	sql += " AND g1.object_id = '"+ objId1 +"'"; 
-	sql += " AND g2.object_id = '"+ objId2 +"'";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if(!portal->query(sql) || !portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-
-	bool flag = true;
-	do 
-	{
-		bool result=false;
-		TeGeometry* geom = new TeGeometry(); 
-		TeGeometry* geom2 = geom;
-		flag = portal->getGeometry(&geom, result);
-		if(result)
-			geomVect.push_back (geom);
-		delete geom2;
-	}while(flag);
-		
-	delete portal;
-	return true;
-}
-
-bool 
-TeOracleSpatial::geomDifference(const string& actGeomTable, TeGeomRep /* actRep */, const string& objId1, const string& objId2, TeGeometryVect& geomVect)
-{
-	string actGeomColl = "spatial_data";
-
-	string sql = "SELECT SDO_GEOM.SDO_DIFFERENCE(g1."+ actGeomColl +", m.diminfo, ";
-	sql += " g2."+ actGeomColl +", m.diminfo)";
-	sql += " FROM "+ actGeomTable +" g1,"+ actGeomTable +" g2, USER_SDO_GEOM_METADATA m";
-	sql += " WHERE m.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	sql += " AND g1.object_id = '"+ objId1 +"'"; 
-	sql += " AND g2.object_id = '"+ objId2 +"'";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if(!portal->query(sql) || !portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-
-	bool flag = true;
-	do 
-	{
-		bool result=false;
-		TeGeometry* geom = new TeGeometry(); 
-		TeGeometry* geom2 = geom;
-		flag = portal->getGeometry(&geom, result);
-		if(result)
-			geomVect.push_back (geom);
-		delete geom2;
-	}while(flag);
-		
-	delete portal;
-	return true;
-}
-
-bool 
-TeOracleSpatial::geomXOr(const string& actGeomTable, TeGeomRep /* actRep */, const string& objId1, const string& objId2, TeGeometryVect& geomVect)
-{
-	string actGeomColl = "spatial_data";
-
-	string sql = "SELECT SDO_GEOM.SDO_XOR(g1."+ actGeomColl +", m.diminfo, ";
-	sql += " g2."+ actGeomColl +", m.diminfo)";
-	sql += " FROM "+ actGeomTable +" g1,"+ actGeomTable +" g2, USER_SDO_GEOM_METADATA m";
-	sql += " WHERE m.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	sql += " AND g1.object_id = '"+ objId1 +"'"; 
-	sql += " AND g2.object_id = '"+ objId2 +"'";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if(!portal->query(sql) || !portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-
-	bool flag = true;
-	do 
-	{
-		bool result=false;
-		TeGeometry* geom = new TeGeometry(); 
-		TeGeometry* geom2 = geom;
-		flag = portal->getGeometry(&geom, result);
-		if(result)
-			geomVect.push_back (geom);
-		delete geom2;
-	}while(flag);
-
-	delete portal;
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::geomXOr(const string& actGeomTable, TeGeomRep /* actRep */, const string& objId1, const string& visGeomTable, TeGeomRep /* visRep */, const string& objId2, TeGeometryVect& geomVect)
-{
-	string actGeomColl = "spatial_data";
-	string visGeomColl = "spatial_data";
-
-	string sql = "SELECT SDO_GEOM.SDO_XOR(g1."+ actGeomColl +", m1.diminfo, ";
-	sql += " g2."+ visGeomColl +", m2.diminfo)";
-	sql += " FROM "+ actGeomTable +" g1,"+ visGeomTable +" g2, ";
-	sql += " USER_SDO_GEOM_METADATA m1, USER_SDO_GEOM_METADATA m2 ";
-	sql += " WHERE m1.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m1.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	sql += " AND m2.table_name = '"+ TeConvertToUpperCase(visGeomTable) +"'";
-	sql += " AND m2.column_name = '"+ TeConvertToUpperCase(visGeomColl) +"'"; 
-	sql += " AND g1.object_id = '"+ objId1 +"'"; 
-	sql += " AND g2.object_id = '"+ objId2 +"'";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if(!portal->query(sql) || !portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-
-	bool flag = true;
-	do 
-	{
-		bool result=false;
-		TeGeometry* geom = new TeGeometry(); 
-		TeGeometry* geom2 = geom;
-		flag = portal->getGeometry(&geom, result);
-		if(result)
-			geomVect.push_back (geom);
-		delete geom2;
-	}while(flag);
-		
-	delete portal;
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::geomUnion(const string& actGeomTable, TeGeomRep /* actRep */, TeKeys& actIds, TeGeometryVect& geomVect)
-{
-	string actGeomColl = "spatial_data";
-	string Ids = getStringIds(actIds);
-
-	string sql = "SELECT SDO_GEOM.SDO_UNION(g1."+ actGeomColl +", m.diminfo, ";
-	sql += " g2."+ actGeomColl +", m.diminfo)";
-	sql += " FROM "+ actGeomTable +" g1,"+ actGeomTable +" g2, USER_SDO_GEOM_METADATA m";
-	sql += " WHERE m.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	sql += " AND object_id IN ("+ Ids +")";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if(!portal->query(sql) || !portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-
-	bool flag = true;
-	do 
-	{
-		bool result=false;
-		TeGeometry* geom = new TeGeometry(); 
-		TeGeometry* geom2 = geom;
-		flag = portal->getGeometry(&geom, result);
-		if(result)
-			geomVect.push_back (geom);
-		delete geom2;
-	}while(flag);
-			
-	delete portal;
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::geomUnion(const string& actGeomTable, TeGeomRep /* actRep */, const string& objId1, const string& visGeomTable, TeGeomRep /* visRep */, const string& objId2, TeGeometryVect& geomVect)
-{
-	string actGeomColl = "spatial_data";
-	string visGeomColl = "spatial_data";
-
-	string sql = "SELECT SDO_GEOM.SDO_UNION(g1."+ actGeomColl +", m1.diminfo, ";
-	sql += " g2."+ visGeomColl +", m2.diminfo)";
-	sql += " FROM "+ actGeomTable +" g1,"+ visGeomTable +" g2, ";
-	sql += " USER_SDO_GEOM_METADATA m1, USER_SDO_GEOM_METADATA m2 ";
-	sql += " WHERE m1.table_name = '"+ TeConvertToUpperCase(actGeomTable) +"'";
-	sql += " AND m1.column_name = '"+ TeConvertToUpperCase(actGeomColl) +"'"; 
-	sql += " AND m2.table_name = '"+ TeConvertToUpperCase(visGeomTable) +"'";
-	sql += " AND m2.column_name = '"+ TeConvertToUpperCase(visGeomColl) +"'"; 
-	sql += " AND g1.object_id = '"+ objId1 +"'"; 
-	sql += " AND g2.object_id = '"+ objId2 +"'";
-
-	TeOracleSpatialPortal* portal = (TeOracleSpatialPortal*)getPortal();
-	
-	if(!portal->query(sql) || !portal->fetchRow())
-	{
-		delete portal;
-		return false;
-	}
-
-	bool flag = true;
-	do 
-	{
-		bool result=false;
-		TeGeometry* geom = new TeGeometry(); 
-		TeGeometry* geom2 = geom;
-		flag = portal->getGeometry(&geom, result);
-		if(result)
-			geomVect.push_back (geom);
-		delete geom2;
-	}while(flag);
-		
-	delete portal;
-	return true;
-}
-
-
-//End Spatial Query
-
-bool
-TeOracleSpatial::insertLine (const string& table, TeLine2D &line)
-{
-	
-	string	elinfo = "1, 2, 1";
-	
-	if(!allocateOrdinatesObject(line))
-		return false;
-
-	string ins = "INSERT INTO " + table + " ( ";
-	ins += " geom_id, object_id, spatial_data) VALUES ( ";
-	ins += getNameSequence(table) +".NEXTVAL";
-	ins += ", '" + escapeSequence(line.objectId()) + "'";
-	ins += ", MDSYS.SDO_GEOMETRY(2002, NULL, NULL";
-	ins += ", MDSYS.SDO_ELEM_INFO_ARRAY( " + elinfo + " )";
-	ins += ", :ordinates_) ";
-	ins += " )";
-
-	//OCI
-	if(!connection_->executeSDOSTM(ins))
-	{
-		errorMessage_ = "Error inserting in the table " + table + "!"; 
-		return false;
-	}
-
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::updateLine(const string& table, TeLine2D &line)
-{
-	string	elinfo = "1, 2, 1";
-	
-	if(!allocateOrdinatesObject(line))
-		return false;
-	
-	string sql;
-	sql =  "UPDATE " + table + " SET ";
-	sql += "  object_id= '" + line.objectId() + "'";
-	sql += ", spatial_data = ";
-	sql += " MDSYS.SDO_GEOMETRY(2002, NULL, NULL";
-	sql += ", MDSYS.SDO_ELEM_INFO_ARRAY( " + elinfo + " )";
-	sql += ", :ordinates_) ";
-	sql += " WHERE geom_id = " +  line.geomId ();
-
-	//OCI
-	if(!connection_->executeSDOSTM(sql))
-	{
-		errorMessage_ = "Error updating in the table " + table + "!"; 
-		return false;
-	}
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::loadLineSet (const string& table, const string& geoid, TeLineSet &ls)
-{
-	
-	TeOracleSpatialPortal *ocip = (TeOracleSpatialPortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string q ="SELECT * FROM " + table;
-	if (geoid != "")
-		q += " WHERE object_id = '" + geoid +"'";
-	
-	if (!ocip->query(q) || !ocip->fetchRow())
-	{	
-		delete ocip;
-		return false;
-	}
-
-	bool flag = true;
-	do 
-	{
-		TeLine2D line;
-		flag = ocip->fetchGeometry(line);
-		ls.add ( line );
-	}while(flag);
-
-	delete ocip;
-	return true;
-}
-
-bool 
-TeOracleSpatial::loadLineSet (const string& table, TeBox &bb, TeLineSet &linSet)
-{
-	TeOracleSpatialPortal *portal = (TeOracleSpatialPortal*)getPortal();
-	if (!portal)
-		return false;
-
-	string q;
-	q = "SELECT * FROM " + table + " WHERE ";
-	q += this->getSQLBoxWhere (bb, TeLINES, table);
-	q += " ORDER BY object_id";
-
-	if (!portal->query(q) || !portal->fetchRow())
-	{	
-		delete portal;
-		return false;
-	}
-	bool flag = true;
-	do
-	{
-		TeLine2D lin;
-		flag = portal->fetchGeometry(lin);
-		linSet.add(lin);
-	}
-	while (flag);
-	delete portal;
-	return true;
-}
-
-TeDatabasePortal* 
-TeOracleSpatial::loadLineSet (const string& table, TeBox &box)
-{
-	TeOracleSpatialPortal *portal = (TeOracleSpatialPortal*) getPortal();
-	if (!portal)
-		return 0;
-
-	string q;
-	q = "SELECT * FROM " + table + " WHERE ";
-	q += this->getSQLBoxWhere (box, TeLINES, table);
-	q += " ORDER BY object_id";
-
-	if (!portal->query(q) || !portal->fetchRow())
-	{	
-		delete portal;
-		return 0;
-	}
-	return portal;
-}
-
-bool 
-TeOracleSpatial::insertPoint(const string& table, TePoint &point)
-{
-	
-	string ins = "INSERT INTO " + table + " ( ";
-	ins += " geom_id, object_id, spatial_data) ";
-	ins += " VALUES ( ";
-	ins += getNameSequence(table) +".NEXTVAL";
-	ins += ", '" + escapeSequence(point.objectId()) + "'";
-	ins += ", MDSYS.SDO_GEOMETRY(2001, NULL, ";
-	ins += "MDSYS.SDO_POINT_TYPE( ";
-	ins += Te2String(point.location().x(),15);
-	ins += ", " + Te2String(point.location().y(),15);
-	ins += ", NULL )";
-	ins += ", NULL, NULL)";
-	ins += " ) ";
-
-	if(!execute(ins))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error inserting in the table " + table + "!"; 
-		return false;
-	}
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::updatePoint (const string& table, TePoint &point)
-{
-	string sql;
-	sql =  "UPDATE " + table + " SET ";
-	sql += "object_id = '" + point.objectId() + "'";
-	sql += ", spatial_data = ";
-	sql += " MDSYS.SDO_GEOMETRY(2001, NULL";
-	sql += ", MDSYS.SDO_POINT_TYPE( ";
-	sql += Te2String(point.location ().x(),15);
-	sql += ", " + Te2String(point.location ().y(),15);
-	sql += ", NULL )";
-	sql += ", NULL, NULL)";
-	sql += " WHERE geom_id = " + Te2String(point.geomId());
-
-	if(!execute(sql))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error updating in the table " + table + "!"; 
-		return false;
-	}
-
-	return true;
-}
-	
-bool 
-TeOracleSpatial::insertText	(const string& table, TeText &text)
-{
-	string ins = "INSERT INTO " + table + " (geom_id, ";
-	ins += " object_id, x, y, text_value, angle, height, alignment_vert, ";
-	ins += " alignment_horiz) VALUES ( ";
-	ins += getNameSequence(table) +".NEXTVAL";
-	ins += ", '" + escapeSequence(text.objectId()) + "'";
-	ins += ",  " + Te2String(text.location().x(),15);
-	ins += ",  " + Te2String(text.location().y(),15);
-	ins += ", '" + escapeSequence(text.textValue()) + "'";
-	ins += ",  " + Te2String(text.angle(),15);
-	ins += ",  " + Te2String(text.height(),15);
-	ins += ",  " + Te2String(text.alignmentVert(),15);
-	ins += ",  " + Te2String(text.alignmentHoriz(),15);
-	ins += " )";
-	
-	if(!execute(ins))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error inserting in the table " + table + "!"; 
-		return false;
-	}
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::insertArc (const string& table, TeArc &arc)
-{
-	
-	string ins = "INSERT INTO " + table + " (geom_id, ";
-	ins += " object_id, from_node, to_node ) ";
-	ins += " VALUES ( ";
-	ins += getNameSequence(table) +".NEXTVAL";
-	ins += ", '" + escapeSequence(arc.objectId()) + "'";
-	ins += ",  " + Te2String(arc.fromNode().geomId());
-	ins += ",  " + Te2String(arc.toNode().geomId());
-	ins += " )";
-	
-	if(!execute(ins))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error inserting in the table " + table + "!"; 
-		return false;
-	}
-
-	return true;
-}
-
-bool 
-TeOracleSpatial::insertNode (const string& table, TeNode &node)
-{	
-	string ins = "INSERT INTO " + table + " ( ";
-	ins += " geom_id, object_id, spatial_data) ";
-	ins += " VALUES ( ";
-	ins += getNameSequence(table) +".NEXTVAL";
-	ins += ", '" + escapeSequence(node.objectId()) + "'";
-	ins += ", MDSYS.SDO_GEOMETRY(2001, NULL, ";
-	ins += "MDSYS.SDO_POINT_TYPE( ";
-	ins += Te2String(node.location().x(),15);
-	ins += ", " + Te2String(node.location ().y(),15);
-	ins += ", NULL )";
-	ins += ", NULL, NULL)";
-	ins += " ) ";
-
-	if(!execute(ins))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error inserting in the table " + table + "!"; 
-		return false;
-	}
-	return true;
-}
-	
-
-bool
-TeOracleSpatial::updateNode (const string& table, TeNode &node)
-{	
-	string sql;
-	sql =  "UPDATE " + table + " SET ";
-	sql += " object_id = '" + node.objectId() + "'";
-	sql += ", spatial_data = ";
-	sql += " MDSYS.SDO_GEOMETRY(2001, NULL";
-	sql += ", MDSYS.SDO_POINT_TYPE( ";
-	sql += Te2String(node.location ().x(),15);
-	sql += ", " + Te2String(node.location ().y(),15);
-	sql += ", NULL )";
-	sql += ", NULL, NULL)";
-	sql += " WHERE geom_id = " + Te2String(node.geomId());
-	
-	if(!execute(sql))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error updating in the table " + table + "!"; 
-		return false;
-	}
-	return true;
-}
-
-bool 
-TeOracleSpatial::insertCell (const string& table, TeCell &cell )
-{
-	
-	TeBox b = cell.box();
-
-	string ins = "INSERT INTO " + table + " ( ";
-	ins += " geom_id, object_id, col_number, row_number, spatial_data) ";
-	ins += " VALUES ( ";
-	ins += getNameSequence(table) +".NEXTVAL";
-	ins += ", '" + escapeSequence(cell.objectId ()) + "'";
-	ins += ",  " + Te2String(cell.column ());
-	ins += ",  " + Te2String(cell.line ());
-	ins += ", MDSYS.SDO_GEOMETRY(2003, NULL, NULL";
-	ins += ", MDSYS.SDO_ELEM_INFO_ARRAY( 1, 1003, 3 )";
-	ins += ", MDSYS.SDO_ORDINATE_ARRAY( " ;
-	ins += Te2String(b.lowerLeft().x(), 15);
-	ins += ", " + Te2String(b.lowerLeft().y(),15);
-	ins += ", " + Te2String(b.upperRight().x(),15);
-	ins += ", " + Te2String(b.upperRight().y(),15);
-	ins += ")) ";
-	ins += " )";
-		
-	if(!execute(ins))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error inserting in the table " + table + "!"; 
-		return false;
-	}
-	return true;
-}
-
-
-bool 
-TeOracleSpatial::updateCell(const string& table, TeCell &cell)
-{
-	TeBox b = cell.box ();
-	
-	string sql;
-	sql =  "UPDATE " + table + " SET ";
-	sql += " object_id= '" + cell.objectId() + "'";
-	sql += " col_number= " + Te2String(cell.column ());
-	sql += " row_number= " + Te2String(cell.line ());
-	sql += " spatial_data= ";
-	sql += " MDSYS.SDO_GEOMETRY(2003, NULL, NULL";
-	sql += ", MDSYS.SDO_ELEM_INFO_ARRAY( 1, 1003, 3 )";
-	sql += ", MDSYS.SDO_ORDINATE_ARRAY( " ;
-	sql += Te2String(b.lowerLeft().x(), 15);
-	sql += ", " + Te2String(b.lowerLeft().y(),15);
-	sql += ", " + Te2String(b.upperRight().x(),15);
-	sql += ", " + Te2String(b.upperRight().y(),15);
-	sql += ")) ";
-	sql += " WHERE geom_id = " +  cell.geomId ();
-	
-	if(!execute(sql))
-	{
-		if(errorMessage_.empty())
-			errorMessage_ = "Error updating in the table " + table + "!"; 
-		return false;
-	}
-	
-	return true;
-}
-
-bool
-TeOracleSpatial::deleteMetadata(const string &table, const string &column)
-{
-	string del = "DELETE FROM USER_SDO_GEOM_METADATA ";
-	del += " WHERE TABLE_NAME = '" + TeConvertToUpperCase(table);
-	del += "' AND COLUMN_NAME = '" + TeConvertToUpperCase(column) + "'";
-	if(!(execute(del.c_str ())))
-		return false;
-	return true;
-}
-
-
-bool
-TeOracleSpatial::rebuildSpatialIndex(const string &table)
-{
-	TeOracleSpatialPortal *ocip = (TeOracleSpatialPortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string tabIndex;
-
-	string ind = "SELECT index_name FROM USER_SDO_INDEX_INFO";
-	ind += " WHERE table_name = '" + TeConvertToUpperCase(table) + "'";
-	if (!ocip->query(ind))
-	{
-		delete ocip;
-		return false;
-	}
-	
-	if(!ocip->fetchRow())
-	{
-		delete ocip;
-		return false;
-	}
-
-	tabIndex = string(ocip->getData(0));
-	delete ocip;
-		
-	string reb = "ALTER INDEX ";
-	reb += tabIndex + " REBUILD";
-	if(!execute(reb))
-		return false;
-
-	return true;
-}
-
-bool
-TeOracleSpatial::deleteSpatialIndex(const string &table)
-{
-	TeOracleSpatialPortal	*ocip = (TeOracleSpatialPortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string tabIndex;
-
-	string ind = "SELECT index_name FROM USER_SDO_INDEX_INFO";
-	ind += " WHERE table_name = '"+ TeConvertToUpperCase(table) +"'";
-	if (!ocip->query(ind))
-	{
-		delete ocip;
-		return false;
-	}
-
-	if(!ocip->fetchRow())
-	{
-		delete ocip;
-		return false;
-	}
-
-	tabIndex = string(ocip->getData(0));
-	ocip->freeResult();
-	delete ocip;
-
-	string drop = "DROP INDEX "+ tabIndex;
-	if (!(execute(drop.c_str ())))
-		return false;
-	return true;
-}
-
-bool 
-TeOracleSpatial::generateLabelPositions	(TeTheme *theme, const std::string& objectId)
-{
-	
-	string	geomTable, upd;
-	string	collTable = theme->collectionTable();
-	
-	if((collTable.empty()) || (!tableExist(collTable)))
-		return false;
-
-	if( theme->layer()->hasGeometry(TeCELLS)    || 
-		theme->layer()->hasGeometry(TePOLYGONS) ||
-		theme->layer()->hasGeometry(TeLINES) )
-	{
-		geomTable = theme->layer()->tableName(TeCELLS);
-		
-		if(geomTable.empty())
-		{
-			geomTable = theme->layer()->tableName(TePOLYGONS);
-			if(geomTable.empty())
-				geomTable = theme->layer()->tableName(TeLINES);
-		}
-		
-		upd= " UPDATE " + collTable + " SET ";
-		upd += " label_x = (SELECT MAX(SDO_GEOM.SDO_MIN_MBR_ORDINATE( ";
-		upd += geomTable + ".spatial_data, 1) + (SDO_GEOM.SDO_MAX_MBR_ORDINATE( ";
-		upd += geomTable + ".spatial_data, 1) -  SDO_GEOM.SDO_MIN_MBR_ORDINATE( ";
-		upd += geomTable + ".spatial_data, 1))/2) ";
-		upd += "FROM " + geomTable + " WHERE object_id = c_object_id), ";
-		
-		upd += " label_y = (SELECT MAX(SDO_GEOM.SDO_MIN_MBR_ORDINATE( ";
-		upd += geomTable + ".spatial_data, 2) + (SDO_GEOM.SDO_MAX_MBR_ORDINATE( ";
-		upd += geomTable + ".spatial_data, 2) -  SDO_GEOM.SDO_MIN_MBR_ORDINATE( ";
-		upd += geomTable + ".spatial_data, 2))/2) ";
-		upd += "FROM " + geomTable + " WHERE object_id = c_object_id) ";
-
-		upd += " WHERE label_x IS NULL OR label_y IS NULL";
-
-	}
-	
-	else if (theme->layer()->hasGeometry(TePOINTS))
-	{
-		geomTable = theme->layer()->tableName(TePOINTS);
-		
-		upd= " UPDATE "+ collTable +" SET ";
-		upd += " label_x = (SELECT MAX(p.spatial_data.SDO_POINT.X) ";
-		upd += " FROM " + geomTable + " p WHERE object_id = c_object_id), ";
-		
-		upd += " label_y = (SELECT MAX(p.spatial_data.SDO_POINT.Y) ";
-		upd += " FROM " + geomTable + " p WHERE object_id = c_object_id) ";
-		upd += " WHERE label_x IS NULL OR label_y IS NULL";
-	}
-
-	if (!objectId.empty())
-		upd += " AND c_object_id='"+objectId+"'";
-		
-	return execute(upd);
-}
-
-bool 
-TeOracleSpatial::locatePolygon (const string& table, TeCoord2D &pt, TePolygon& polygon, const double& /* tol */)
-{
-	TeOracleSpatialPortal  *ocip = (TeOracleSpatialPortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string q = "SELECT * FROM " + table;
-	q += " WHERE MDSYS.SDO_RELATE (spatial_data,";
-	q += "MDSYS.SDO_GEOMETRY(2001,NULL, MDSYS.SDO_POINT_TYPE(";
-	q += Te2String(pt.x(),15) + ", " + Te2String(pt.y(), 15);
-	q += ", NULL), NULL, NULL), ";
-	q += " 'mask=contains querytype = window') = 'TRUE'";
-
-	if (!ocip->query(q) || !ocip->fetchRow())
-	{	
-		delete ocip;
-		return false;
-	}
-
-	ocip->fetchGeometry(polygon);
-	delete ocip;
-	return true;
-}
-
-bool 
-TeOracleSpatial::locateLine (const string& table, TeCoord2D &pt, TeLine2D& line, const double& tol)
-{
-
-	TeOracleSpatialPortal	*ocip = (TeOracleSpatialPortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	TeBox box (pt.x()-tol,pt.y()-tol,pt.x()+tol,pt.y()+tol);
-	
-	string sdoGeom = "mdsys.sdo_geometry(2003,null,null,";
-	sdoGeom += "mdsys.sdo_elem_info_array(1,1003,3),";
-	sdoGeom += "mdsys.sdo_ordinate_array(";
-	sdoGeom += Te2String(box.x1(),15) + ", " + Te2String(box.y1(),15);
-	sdoGeom += ", " + Te2String(box.x2(),15) + ", " + Te2String(box.y2(),15) + "))";
-		
-	string q = "SELECT * FROM " + table;
-	q += " WHERE MDSYS.SDO_RELATE (spatial_data,";
-	q += sdoGeom +","; 
-	q += "'mask=anyinteract querytype = window') = 'TRUE'";
-
-	if (!ocip->query(q) || !ocip->fetchRow())
-	{
-		delete ocip;
-		return false;
-	}
-
-	ocip->fetchGeometry(line);
-	delete ocip;
-	return true;
-}
-
-bool 
-TeOracleSpatial::locatePoint (const string& table, TeCoord2D &pt, TePoint& point, const double& tol)
-{
-	TeOracleSpatialPortal	*ocip = (TeOracleSpatialPortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	
-	TeBox box (pt.x()-tol,pt.y()-tol,pt.x()+tol,pt.y()+tol);
-	
-	string sdoGeom = "mdsys.sdo_geometry(2003,null,null,";
-	sdoGeom += "mdsys.sdo_elem_info_array(1,1003,3),";
-	sdoGeom += "mdsys.sdo_ordinate_array(";
-	sdoGeom += Te2String(box.x1(),15) + ", " + Te2String(box.y1(),15);
-	sdoGeom += ", " + Te2String(box.x2(),15) + ", " + Te2String(box.y2(),15) + "))";
-		
-	string q = "SELECT * FROM " + table;
-	q += " WHERE MDSYS.SDO_RELATE (spatial_data,";
-	q += sdoGeom +","; 
-	q += "'mask=anyinteract querytype = window') = 'TRUE'";
-	
-	if (!ocip->query(q) || !ocip->fetchRow())
-	{
-		delete ocip;
-		return false;
-	}
-
-	ocip->fetchGeometry(point);
-	delete ocip;
-	return true;
-}
-
-bool 
-TeOracleSpatial::locateCell(const string& table, TeCoord2D &pt, TeCell& cell, const double& /* tol */)
-{
-	TeOracleSpatialPortal  *ocip = (TeOracleSpatialPortal*)getPortal();
-	if(!ocip)
-		return false;
-
-	string q = "SELECT * FROM " + table;
-	q += " WHERE MDSYS.SDO_RELATE (spatial_data,";
-	q += "MDSYS.SDO_GEOMETRY(2001,NULL,MDSYS.SDO_POINT_TYPE(";
-	q += Te2String(pt.x(),15) + ", " + Te2String(pt.y(), 15);
-	q += ", NULL), NULL, NULL), ";
-	q += " 'mask=contains querytype = window') = 'TRUE'";
-
-	if (!ocip->query(q) || !ocip->fetchRow())
-	{	
-		delete ocip;
-		return false;
-	}
-	
-	ocip->fetchGeometry(cell);
-	delete ocip;
-	return true;
-}
-
-bool TeOracleSpatial::removeGeometry(const string& tableName, const TeGeomRep& rep, const int& geomId)
-{
-	if(tableName.empty())
-	{
-		return false;
-	}
-
-	std::string remove = "DELETE FROM " + tableName;
-	remove += " WHERE geom_id = " + geomId;
-
-	return this->execute(remove);
-}
-
-//---------------- TeOracleSpatialPortal
-
-int 
-TeOracleSpatialPortal::getDimArraySize()
-{
-	if(!cursor_)
-		return 0;
-
-	return(cursor_->getDimArraySize());
-}
-
-bool 
-TeOracleSpatialPortal::getDimElement(int i,int &elem)
-{
-	if(!cursor_)
-		return false;
-
-	return (cursor_->getDimElement(i,elem));
-}
-
-int 
-TeOracleSpatialPortal::numberOfOrdinates()
-{
-	if(!cursor_)
-		return 0;
-
-	return(cursor_->getNumberOrdinates());
-}
-
-bool
-TeOracleSpatialPortal::getCoordinates(int i,TeCoord2D& coord)
-{
-	if(!cursor_)
-		return false;
-
-	return (cursor_->getCoordinates((i*2)-1,coord));
-}
-
-bool
-TeOracleSpatialPortal::getGeometryType(TeSDOGType& gType)
-{
-	if(!cursor_)
-		return false;
-
-	int type = cursor_->getGeometryType(); 
-	
-	switch(type)
-	{ 
-		case 2000:
-			gType=TeSDOUNKNOWN;
-			break;
-
-		case 2001:
-			gType=TeSDOPOINT;
-			break;
-
-		case 2002:
-			gType=TeSDOLINE;
-			break;
-
-		case 2003:
-			gType=TeSDOPOLYGON;
-			break;
-
-		case 2004:
-			gType=TeSDOCOLLECTION;
-			break;
-
-		case 2005:
-			gType=TeSDOMULTIPOINT;
-			break;
-
-		case 2006:
-			gType=TeSDOMULTILINE;
-			break;
-		
-		case 2007:
-			gType=TeSDOMULTIPOLYGON;
-			break;
-		default:
-			return false;
-	};
-	return true;
-}
-
-int
-TeOracleSpatialPortal::getSpatialReferenceId()
-{
-	if(!cursor_)
-		return -1;
-
-	return (cursor_->getSpatialReferenceId());
-}
-
-bool
-TeOracleSpatialPortal::getPointXYZ (double& x,double& y)
-{
-	if(!cursor_)
-		return false;
-
-	return (cursor_->getXYZcoord(x,y));
-}
-
-bool TeOracleSpatialPortal::querySDO (const string &q)  
-{
-	errorMessage_.clear ();
-
-	if (!cursor_->isOpen())
-	{
-		if(!cursor_->open())
-		{
-			numRows_ = 0;
-			return false;
-		}
-	}
-
-	if (!cursor_->querySDO(q))
-	{
-		this->errorMessage_ = cursor_->getErrorMessage();
-		numRows_ = 0;
-		return false;
-	}
-	
-	numFields_= this->cursor_->numCol();
-	
-	attList_.clear ();
-	int i;
-	for(i = 1; i <= numFields_ ; i++)
-	{
-		TeAttribute attribute;
-
-		switch (cursor_->colType(i))
-		{
-			case 3: //INTEGER
-			attribute.rep_.type_ = TeINT;
-			break;
-
-			case 2:  //NUMBER
-			case 4: //FLOAT DOUBLE
-			attribute.rep_.type_ = TeREAL;
-			break;
-
-			case 12: //Date
-			attribute.rep_.type_ = TeDATETIME;
-			break;
-
-			case 113: //Blob
-			attribute.rep_.type_ = TeBLOB;
-			break;
-
-			case 96: //CHAR
-			case 9: //VARCHAR:
-			case 1: //VARCHAR2:
-			attribute.rep_.type_ = TeSTRING;
-			break;
-
-			case 108: //OBJECT: // SDO_GEOMETRY
-			attribute.rep_.type_ = TeOBJECT;
-			break;
-			default :
-			attribute.rep_.type_ = TeUNKNOWN;
-			break;
-		} 
-		
-		attribute.rep_.name_ = cursor_->colName(i); 
-		attribute.rep_.numChar_ = cursor_->colSize(i);
-		attList_.push_back ( attribute );
-	}
-
-	curRow_=-1;
-	return true;
-}
-
-bool
-TeOracleSpatialPortal::fetchGeometry (TePolygon& poly)
-{
-	int			elem,elemnext,i,k,elemType, sdoInterp;
-
-	try
-	{
-		int ndim = getDimArraySize();
-
-		if(ndim==0)
-			return false;
-
-		vector<TeCoord2D> coordinates;
-		if(!cursor_->getCoordinates (coordinates))
-			return false;
-
-		//number of the oordinates in the SDO_GEOMETRY
-		int noords = numberOfOrdinates();
-	
-		//Indicates the type of the SDO_GEOMETRY
-		int sdoEType;  
-		getDimElement(2,sdoEType);
-	
-		int geomId = atoi(getData("geom_id"));
-		string objId = string(getData("object_id"));
-		
-		// 1005: compound polygon: Compound polygon with some vertices connected by straight
-		//line segments and some by circular arcs.
-		if((sdoEType==1005) || (sdoEType==2005))  
-		{					   
-			TeLine2D	lin;   
-			//nelem: number of elemnts
-			int nelem; 
-			getDimElement(3,nelem);  
-			
-			//posinit is initial position in the vector 
-			int posinit=0; //1;
-			//ipoxmax: second element position in the ordinates array
-			int iposmax=7;			
-			
-			int posmax;
-			bool thisElemArc = false; 
-
-			//keep the last point of the element
-			//TePoint lastPoint;
-			
-			//for each element
-			for(elem=1; elem<=nelem; elem++)  
-			{
-				//to catch the last position of the element: iposmax
-				if(elem==nelem)
-					posmax = noords+1;
-				else
-					getDimElement(iposmax, posmax);
-
-				//verify if the element is a arc 
-				getDimElement((iposmax-1), elemType);
-				if(elemType == 2)
-					thisElemArc = true;   
-				else 
-					thisElemArc = false;
-
-				//ptSet: ordinates of the element
-				TePointSet ptSet;
-
-				//to catch all coords of the element
-				int pos=0;
-									
-				for(pos=posinit; pos<((posmax-1)/2);++pos)
-				{
-					TePoint pt(coordinates[pos]);
-					ptSet.add(pt);
-				}
-
-				if(thisElemArc) 
-				{
-					//pegar o pr�ximo
-					if(elem!=nelem)
-					{
-						TePoint pt(coordinates[pos]);
-						ptSet.add(pt);
-					}
-
-					int size = ptSet.size();
-					for(int s=1; (s+1)<size; s=s+2)
-					{
-						TeLine2D arc;
-						TeGenerateArc (ptSet[s-1], ptSet[s], ptSet[s+1], arc, 10);
-
-						int sz = arc.size();
-						for(int i=0; i<sz; i++)
-							lin.add(arc[i]);
-					}
-				}
-
-				else //line segment
-				{
-					int size = ptSet.size();
-					for(int s=0; s<size; s++)
-						lin.add(ptSet[s].location());
-				}
-
-				iposmax+=3;
-				posinit=pos;  //skip first coordinate: equal last point of previous element 
-			
-			} //for each element
-
-			TeLinearRing rg(lin);
-			rg.objectId(objId);
-			rg.geomId(geomId);
-			poly.add(rg);
-		}
-
-		else if((sdoEType==1003)||(sdoEType==2003))  //no complex
-		{
-			for(i=1;i<=ndim;i+=3)
-			{
-				TeLine2D	line;
-				getDimElement(i,elem);	// oordinate position
-				if((i+3) > ndim)
-					elemnext = noords+1;
-				else
-					getDimElement(i+3,elemnext);
-
-				getDimElement(i+2,sdoInterp);	// sdo interpretation 
-				// sdoInterp = 3: Rectangle type
-				// sdoInterp = 2: Polygon made up of a connected sequence of circular arcs 
-
-				if(sdoInterp==2)
-				{
-					//para gerar o arco
-					TePoint pt1;
-					TePoint pt2;
-					TePoint pt3;
-										
-					int cont=0;
-					int k = elem/2;
-					while (k<(elemnext/2))
-					{
-						for(int i=0; i<3; i++)
-						{
-							TeCoord2D pt = coordinates[k];
-						
-							if(i==0)
-							{
-								if(!cont)
-									pt1.add(pt);
-								else
-								{
-									pt1.add(pt3.location());
-									pt2.add(pt);
-									++i;
-								}
-							}
-							else if (i==1)
-								pt2.add(pt);
-							else if (i==2)
-								pt3.add(pt);
-
-							++cont;
-							++k;
-						}
-
-						TeLine2D arc;
-						TeGenerateArc (pt1, pt2, pt3, arc, 20);
-						
-						int s = arc.size();
-						for(int j=0; j<s; j++)
-							line.add(arc[j]);
-					}
-				}
-				else
-				{
-					// ler os pontos
-					for(k=(elem/2);k<(elemnext/2);k++)
-					{
-						TeCoord2D pt = coordinates[k];
-						line.add(pt);
-					}
-
-					if(sdoInterp==3) // rectangle
-					{
-						double xmin,ymin, xmax, ymax;
-						xmin = line.box().x1();
-						ymin = line.box().y1();
-						xmax = line.box().x2();
-						ymax = line.box().y2();
-
-						line.clear();
-						TeCoord2D pt1(xmin,ymin);
-						line.add(pt1);
-						TeCoord2D pt2(xmin,ymax);
-						line.add(pt2);
-						TeCoord2D pt3(xmax,ymax);
-						line.add(pt3);
-						TeCoord2D pt4(xmax,ymin);
-						line.add(pt4);
-						line.add(pt1);
-					}
-				}
-
-				TeLinearRing ring(line);
-				ring.objectId (objId);
-				ring.geomId(geomId);
-				poly.add(ring);
-			}
-		}
-		poly.objectId(objId);
-		poly.geomId(geomId);
-		return(this->fetchRow());
-	}
-	catch(...)
-	{
-		errorMessage_ = cursor_->getErrorMessage();
-		return false;
-	}
-}
-
-bool
-TeOracleSpatialPortal::fetchGeometry (TePolygon& poly, const unsigned int&)
-{
-	return this->fetchGeometry(poly);
-}
-
-
-bool
-TeOracleSpatialPortal::getGeometry (TeGeometry** geom, bool& result)
-{
-	TeSDOGType gType;
-	bool flag=true;	
-	
-	try
-	{
-		this->getGeometryType(gType);
-			
-		if(gType==TeSDOPOLYGON)
-		{
-			TePolygon   poly, *pol;
-			flag = this->fetchGeometry(poly); 
-			pol = new TePolygon();
-			*pol = poly;
-			*geom = pol;
-			result = true;
-			return flag;
-		}
-		else if(gType==TeSDOLINE)
-		{
-			TeLine2D	line, *lin;
-			flag = this->fetchGeometry(line); 
-			lin = new TeLine2D();
-			*lin = line;
-			*geom = lin;
-			result = true;
-			return flag;
-		}
-		else if(gType==TeSDOPOINT)
-		{
-			TePoint		point, *pnt;
-			flag = this->fetchGeometry(point); 
-			pnt = new TePoint();
-			*pnt = point;
-			*geom = pnt;
-			result = true;
-			return flag;
-		}
-
-		else if(gType==TeSDOMULTIPOLYGON)
-		{
-			TePolygonSet   polySet, *polSet;
-			flag = this->fetchGeometry(polySet); 
-			polSet = new TePolygonSet();
-			*polSet = polySet;
-			*geom = polSet;
-			result = true;
-			return flag;
-		}
-		else if(gType==TeSDOMULTILINE)
-		{
-			TeLineSet	lineSet, *linSet;
-			flag = this->fetchGeometry(lineSet); 
-			linSet = new TeLineSet();
-			*linSet = lineSet;
-			*geom = linSet;
-			result = true;
-			return flag;
-		}
-		else if(gType==TeSDOMULTIPOINT)
-		{
-			TePointSet		pointSet, *pntSet;
-			flag = this->fetchGeometry(pointSet); 
-			pntSet = new TePointSet();
-			*pntSet = pointSet;
-			*geom = pntSet;
-			result = true;
-			return flag;
-		}
-		
-	}
-	catch(...)
-	{
-		result = false;
-		return false;
-	}
-		
-	result = false;
-	return (this->fetchRow());
-}
-
-
-bool
-TeOracleSpatialPortal::fetchGeometry (TePolygonSet& polySet)
-{
-	int					elem,elemnext,i,k,sdoInterp;
-	vector<TeCoord2D>	coordinates;
-	
-	try
-	{
-		int ndim = getDimArraySize();
-		if(ndim==0)
-			return false;
-		
-		TePolygonSet polyHoles;
-		TeSDOGType gType;
-		
-		getGeometryType(gType);
-
-		if(gType==TeSDOPOLYGON)  
-		{
-			TePolygon poly;
-			bool res = fetchGeometry(poly);
-			polySet.add(poly);
-			return res;
-		}
-
-		if(!cursor_->getCoordinates(coordinates))
-			return false;
-
-		int noords = numberOfOrdinates();
-	
-		int geomId = atoi(getData("geom_id"));
-		string objId = string(getData("object_id"));
-		
-		bool hasHole = false;
-
-		for(i=1;i<=ndim;i+=3)
-		{
-			int			eType;
-			TeLine2D	line;
-			TePolygon	poly;
-			getDimElement(i,elem);	// oordinate position
-			if((i+3) > ndim)
-				elemnext = noords+1;
-			else
-				getDimElement(i+3,elemnext);
-
-			getDimElement(i+1, eType);		// sdo_etype do proximo elemento
-			getDimElement(i+2,sdoInterp);	// sdo_interpretation
-			
-			if(eType==2003)
-				poly = polyHoles.last();
-
-			// ler os pontos
-			for(k=(elem/2);k<(elemnext/2);k++)
-			{
-				TeCoord2D pt(coordinates[k]);
-				line.add(pt);
-			}
-
-			if(sdoInterp == 3) // rectangle
-			{
-				
-				double xmin,ymin, xmax, ymax;
-				xmin = line.box().x1();
-				ymin = line.box().y1();
-				xmax = line.box().x2();
-				ymax = line.box().y2();
-
-				line.clear();
-				TeCoord2D pt1(xmin,ymin);
-				line.add(pt1);
-				TeCoord2D pt2(xmin,ymax);
-				line.add(pt2);
-				TeCoord2D pt3(xmax,ymax);
-				line.add(pt3);
-				TeCoord2D pt4(xmax,ymin);
-				line.add(pt4);
-				line.add(pt1);
-			}
-			TeLinearRing ring(line);
-			ring.objectId (objId);
-			ring.geomId(geomId);
-			
-			poly.add(ring);
-	
-			//verificar se o proximo � hole
-			hasHole=false;
-			if(i+4<ndim)
-			{
-				getDimElement(i+4, eType);		// sdo_etype do proximo elemento
-				if(eType == 2003)
-					hasHole = true;
-			}
-			poly.objectId(objId);
-			poly.geomId(geomId);
-			
-			if(!hasHole)
-				polySet.add(poly);
-			else	
-				polyHoles.add(poly);
-		} //for
-
-		polySet.objectId(objId);
-		polySet.geomId(geomId);
-
-		return(this->fetchRow());
-	}
-	catch(...)
-	{
-		errorMessage_ = cursor_->getErrorMessage();
-		return false;
-	}
-}
-
-bool 
-TeOracleSpatialPortal::fetchGeometry (TeLine2D& line)
-{
-	int					i;
-	vector<TeCoord2D>	coordinates;
-
-	try
-	{
-		if(!cursor_->getCoordinates(coordinates))
-			return false;
-		
-		int noords = numberOfOrdinates();
-		if(noords==0)
-			return false;
-
-		for(i=0;i<noords/2;i++)
-			line.add(coordinates[i]);
-			
-		line.geomId (atoi(getData("geom_id")));
-		line.objectId(string(getData("object_id")));
-		return (this->fetchRow());
-	}
-	catch(...)
-	{
-		errorMessage_ = cursor_->getErrorMessage();
-		return false;
-	}
-}
-
-bool 
-TeOracleSpatialPortal::fetchGeometry (TeLine2D& line, const unsigned int& initIndex)
-{
-	int					i;
-	vector<TeCoord2D>	coordinates;
-
-	try
-	{
-		if(!cursor_->getCoordinates(coordinates))
-			return false;
-		
-		int noords = numberOfOrdinates();
-		if(noords==0)
-			return false;
-
-		for(i=0;i<noords/2;i++)
-			line.add(coordinates[i]);
-			
-		line.geomId (atoi(getData(initIndex)));
-		line.objectId(string(getData(initIndex+1)));
-		return (this->fetchRow());
-	}
-	catch(...)
-	{
-		errorMessage_ = cursor_->getErrorMessage();
-		return false;
-	}
-}
-
-
-bool 
-TeOracleSpatialPortal::fetchGeometry (TeLineSet& lineSet)
-{
-	vector<TeCoord2D>	coordinates;
-	int					elem,elemnext,i,k;
-
-	try
-	{
-		int ndim = getDimArraySize();
-		if(ndim==0)
-			return false;
-		
-		int noords = numberOfOrdinates();
-		int geomId = atoi(getData("geom_id"));
-		string objId = string(getData("object_id"));
-		
-		TeSDOGType gType;
-		getGeometryType(gType);
-
-		if(gType==TeSDOLINE)  
-		{
-			TeLine2D line;
-			fetchGeometry(line);
-			lineSet.add(line);
-			return true;
-		}
-
-		if(!cursor_->getCoordinates(coordinates))
-			return false;
-
-		for(i=1;i<=ndim;i+=3)
-		{
-			TeLine2D	line;
-			getDimElement(i,elem);		// oordinate position
-			if((i+3) > ndim)
-				elemnext = noords+1;
-			else
-				getDimElement(i+3,elemnext);
-			
-			// ler os pontos
-			for(k=(elem/2);k<(elemnext/2);k++)
-			{
-				TeCoord2D pt(coordinates[k]);
-				line.add(pt);
-			}
-			line.objectId (objId);
-			line.geomId(geomId);
-			lineSet.add(line);
-		}
-
-		lineSet.objectId(objId);
-		lineSet.geomId(geomId);
-		
-		return (this->fetchRow());
-	}
-	catch(...)
-	{
-		errorMessage_ = cursor_->getErrorMessage();
-		return false;
-	}
-}
-
-bool 
-TeOracleSpatialPortal::fetchGeometry(TePoint& p)
-{
-	double		x,y;
-	
-	try
-	{
-		if(!getPointXYZ(x,y))
-			return false;		//point in SDO_POINT
-
-		TeCoord2D c(x,y);
-		p.add(c);
-		p.objectId(string(getData("object_id")));
-		p.geomId(atoi(getData("geom_id")));
-		return(this->fetchRow());
-	}
-	catch(...)
-	{
-		errorMessage_ = cursor_->getErrorMessage();
-		return false;
-	}
-}
-
-bool 
-TeOracleSpatialPortal::fetchGeometry(TePoint& p, const unsigned int& initIndex)
-{
-	double		x,y;
-	
-	try
-	{
-		if(!getPointXYZ(x,y))
-			return false;		//point in SDO_POINT
-
-		TeCoord2D c(x,y);
-		p.add(c);
-		p.objectId(string(getData(initIndex+1)));
-		p.geomId(atoi(getData(initIndex)));
-		return(this->fetchRow());
-	}
-	catch(...)
-	{
-		errorMessage_ = cursor_->getErrorMessage();
-		return false;
-	}
-}
-
-bool 
-TeOracleSpatialPortal::fetchGeometry(TePointSet& pointSet)
-{
-	double		x,y;
-	vector<TeCoord2D> coordinates;
-
-	x=y=-99999.;
-	try
-	{
-		int noords = numberOfOrdinates();
-		if(noords==0)
-			return false;
-
-		TeSDOGType gType;
-		getGeometryType(gType);
-
-		if(gType==TeSDOPOINT)  
-		{
-			TePoint point;
-			fetchGeometry(point);
-			pointSet.add(point);
-			return true;
-		}
-
-		if(!cursor_->getCoordinates(coordinates))
-			return false;
-
-		int geomId = atoi(getData("geom_id"));
-		string objId = string(getData("object_id"));
-		
-		for(int i=1;i<=noords/2;i++)
-		{
-			TePoint pt(coordinates[i-1]);
-			pt.geomId (geomId);
-			pt.objectId (objId);
-			pointSet.add(pt);
-		}
-		
-		pointSet.objectId(objId);
-		pointSet.geomId(geomId);
-		
-		return(this->fetchRow());
-	}
-	catch(...)
-	{
-		errorMessage_ = cursor_->getErrorMessage();
-		return false;
-	}
-}
-
-bool 
-TeOracleSpatialPortal::fetchGeometry(TeNode& n)
-{
-	double	x,y;
-	x=y=-99999.;
-	try
-	{
-		if(!getPointXYZ(x,y))
-			return false;
-
-		TeCoord2D point(x,y);
-		n.add(point);
-		n.geomId(atoi(getData("geom_id")));
-		n.objectId(string(getData("object_id")));
-		return(this->fetchRow());
-	}
-	catch(...)
-	{
-		errorMessage_ = cursor_->getErrorMessage();
-		return false;
-	}
-}
-
-bool 
-TeOracleSpatialPortal::fetchGeometry(TeNode& n, const unsigned int& initIndex)
-{
-	double	x,y;
-	x=y=-99999.;
-	try
-	{
-		if(!getPointXYZ(x,y))
-			return false;
-
-		TeCoord2D point(x,y);
-		n.add(point);
-		n.geomId(atoi(getData(initIndex)));
-		n.objectId(string(getData(initIndex+1)));
-		return(this->fetchRow());
-	}
-	catch(...)
-	{
-		errorMessage_ = cursor_->getErrorMessage();
-		return false;
-	}
-}
-
-bool	
-TeOracleSpatialPortal::fetchGeometry (TeCell& cell)
-{
-	TeCoord2D coord1,coord2;
-	try
-	{
-		getCoordinates (1, coord1);
-		getCoordinates (2, coord2);
-		TeBox b(coord1.x(), coord1.y(), coord2.x(), coord2.y());
-		
-		cell.setBox (b);
-		cell.geomId(atoi(getData("geom_id")));
-		cell.objectId (string(getData("object_id")));
-		cell.column(atoi(getData("col_number")));
-		cell.line(atoi(getData("row_number")));
-		return(this->fetchRow());
-	}
-	catch(...)
-	{
-		errorMessage_ = cursor_->getErrorMessage();
-		return false;
-	}
-}
-
-bool	
-TeOracleSpatialPortal::fetchGeometry (TeCell& cell, const unsigned int& initIndex)
-{
-	TeCoord2D coord1,coord2;
-	try
-	{
-		getCoordinates (1, coord1);
-		getCoordinates (2, coord2);
-		TeBox b(coord1.x(), coord1.y(), coord2.x(), coord2.y());
-		
-		cell.setBox (b);
-		cell.geomId(atoi(getData(initIndex)));
-		cell.objectId (string(getData(initIndex+1)));
-		cell.column(atoi(getData(initIndex+2)));
-		cell.line(atoi(getData(initIndex+3)));
-		return(this->fetchRow());
-	}
-	catch(...)
-	{
-		errorMessage_ = cursor_->getErrorMessage();
-		return false;
-	}
-}
-
-
-
diff --git a/src/terralib/drivers/Oracle/TeOracleSpatial.h b/src/terralib/drivers/Oracle/TeOracleSpatial.h
deleted file mode 100644
index 46117b0..0000000
--- a/src/terralib/drivers/Oracle/TeOracleSpatial.h
+++ /dev/null
@@ -1,325 +0,0 @@
-/************************************************************************************
-TerraLib - a library for developing GIS applications.
-Copyright � 2001-2007 INPE and Tecgraf/PUC-Rio.
-
-This code is part of the TerraLib library.
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library.
-
-The authors reassure the license terms regarding the warranties.
-They specifically disclaim any warranties, including, but not limited to,
-the implied warranties of merchantability and fitness for a particular purpose.
-The library provided hereunder is on an "as is" basis, and the authors have no
-obligation to provide maintenance, support, updates, enhancements, or modifications.
-In no event shall INPE and Tecgraf / PUC-Rio be held liable to any party for direct,
-indirect, special, incidental, or consequential damages arising out of the use
-of this library and its documentation.
-*************************************************************************************/
-/*! \file TeOracleSpatial.h
-	\brief This file contains two classes that implement a driver of interface between TerraLib and ORACLE SPATIAL DBMS, using OCI (Oracle Call Interface) library.
-*/
-
-#ifndef  __TERRALIB_INTERNAL_ORACLESPATIAL_H
-#define  __TERRALIB_INTERNAL_ORACLESPATIAL_H
-
-#include "TeOCIOracle.h"
-
-#include <TeDatabaseFactory.h>
-
-#include "TeOracleDefines.h"
-
-#ifdef AFX_DLL
-#define EXPORT_WIN __declspec( dllexport )
-#else
-#define EXPORT_WIN
-#endif
-
-/*! \enum TeSDOGType
-	\brief Types of geometries in the ORACLE SPATIAL 
-*/
-enum TeSDOGType  
-{ TeSDOUNKNOWN, TeSDOPOINT, TeSDOLINE, TeSDOPOLYGON,TeSDOCOLLECTION, 
-  TeSDOMULTIPOINT, TeSDOMULTILINE, TeSDOMULTIPOLYGON};
-
-/*! \class TeOracleSpatial
-	\brief A concrete implementation of a interface driver to the ORACLE SPATIAL DBMS
-	
-	This class contains attributes and methods to implement a driver of interface 
-	between TerraLib and ORACLE SPATIAL DBMS using OCI (Oracle Call Interface) library.
-	
-	\sa 
-	TeOCIOracle TeOCIConnect
-*/
-class TLORACLE_DLL TeOracleSpatial : public TeOCIOracle
-{
-
-friend class TeOracleSpatialPortal;
-
-private:
-
-	//! Deletes the metadata information associated to a geometric table in the USER_SDO_GEOM_METADATA table  
-	bool	deleteMetadata(const string &table, const string &column);
-	
-	//! Rebuilds a specific spatial index created to a geometric table
-	bool	rebuildSpatialIndex(const string &table);
-
-	//! Deletes a specific spatial index created to a geometric table
-	bool	deleteSpatialIndex(const string &table);
-
-public:
-	
-	//! Constructor
-	TeOracleSpatial();
-
-	//! Destructor
-	~TeOracleSpatial()
-	{}
-
-	//! Connects to Oracle Spatial DBMS
-	bool connect (const string& host, const string& user, const string& password, const string& database, int port = -1);
-
-	//! Creates a new table
-    bool createTable (const string& table, TeAttributeList &attr);
-
-	//! Creates a spatial index to a specific geometry table
-	bool createSpatialIndex(const string &table, const string &column,TeSpatialIndexType type= TeRTREE,short level=0,short tile=0);
-
-	//! Inserts the metadata information associated to a specific geometric table in the the USER_SDO_GEOM_METADATA table
-	bool insertMetadata(const string &table, const string &column, double tolx,double toly,TeBox &box,short srid=0);
-
-	//! Returns the name of the column that will be spatially indexed, for a given type of geometry table 
-	string getSpatialIdxColumn(TeGeomRep rep);
-	
-	//! Gets a cursor using the opened connection 
-	TeDatabasePortal* getPortal ();
-
-	//! Generates label positions to each object of a theme
-	bool generateLabelPositions	(TeTheme *theme, const std::string& objectId = ""); 
-	
-	/** @name Inserts, updates and deletes geometries from the tables
-	*/
-	//@{ 
-	bool insertPolygon		(const string& table, TePolygon &p);	
-	bool updatePolygon		(const string& table, TePolygon &p);
-	bool locatePolygon		(const string& table, TeCoord2D &pt, TePolygon &polygon, const double& tol = 0.0);
-	bool selectPolygonSet	(const string& table, const string& criteria, TePolygonSet &ps); 
-	bool loadPolygonSet		(const string& table, const string& geoid, TePolygonSet &ps);  
-	bool loadPolygonSet		(const string& table, TeBox &box, TePolygonSet &ps); 
-	bool loadPolygonSet		(TeTheme* theme, TePolygonSet &ps); 
-	TeDatabasePortal*		loadPolygonSet(const string& table, TeBox &box); 
-	bool allocateOrdinatesObject(TePolygon &poly, string& elInfo, TeOCICursor* cursor=0);
-	
-	bool insertLine		(const string& table, TeLine2D &l);		
-	bool updateLine		(const string& table, TeLine2D &l);
-	bool locateLine		(const string& table, TeCoord2D &pt, TeLine2D &line, const double& tol = 0.0);
-	bool loadLineSet	(const string& table, const string& geoid, TeLineSet &ls); 
-	bool loadLineSet	(const string& table, TeBox &box, TeLineSet &linSet); 
-	TeDatabasePortal*   loadLineSet (const string& table, TeBox &box);
-	bool allocateOrdinatesObject(TeLine2D &line, TeOCICursor* cursor=0);
-			
-    bool insertPoint	(const string& table, TePoint &p);	
-	bool updatePoint	(const string& table, TePoint &p);
-	bool locatePoint	(const string& table, TeCoord2D &pt, TePoint &point, const double& tol = 0.0);
-    
-	bool insertText		(const string& table, TeText &t);	
-
-	bool insertArc		(const string& table,TeArc &arc);
-	bool insertNode		(const string& table, TeNode &node);	
-	bool updateNode		(const string& table, TeNode &node);	
-
-	bool insertCell		(const string& table, TeCell &c);
-	bool updateCell		(const string& table, TeCell &c);
-	bool locateCell		(const string& table, TeCoord2D &pt, TeCell &cell, const double& tol = 0.0);
-
-	//! Removes a geometry from the given tableName
-	virtual bool removeGeometry(const string& tableName, const TeGeomRep& rep, const int& geomId);
-	
-	bool insertRasterBlock(const string& table, const string& blockId, const TeCoord2D& ll, const TeCoord2D& ur, unsigned char *buf,unsigned long size, int band=0, unsigned int res=1, unsigned int subband=0);
-	//@}
-
-	/** @name Methods that return specific SQL statement according to each DBMS
-	*/
-	//@{ 
-	
-	//!< Returns a string SQL to be used in the ORDER BY clause when querying geometries.
-	virtual std::string getSQLOrderBy(const TeGeomRep& rep) const;
-
-	string getSQLBoxWhere (const TeBox& box, const TeGeomRep rep, const std::string& tableName); 
-	string getSQLBoxWhere (const string& table1, const string& table2, TeGeomRep rep2, TeGeomRep rep1); 
-	string getSQLBoxSelect (const string& tableName, TeGeomRep rep); 
-	//@}
-	
-	bool getMBRSelectedObjects(string geomTable,string colGeom, string fromClause, string whereClause, string afterWhereClause, TeGeomRep repType,TeBox &bout, const double& tol = 0.0);
-	bool getMBRGeom(string tableGeom, string object_id, TeBox& box, string colGeom);
-
-	/** @name Spatial query
-	*/
-	//@{ 
-	bool spatialRelation(const string& actGeomTable, TeGeomRep actRep, TeKeys& actIdsIn, TeDatabasePortal *portal, int relate, const string& actCollTable="");
-	bool spatialRelation(const string& actGeomTable, TeGeomRep actRep, TeKeys& actIdsIn, const string& visGeomTable, TeGeomRep visRep, TeDatabasePortal *portal, int relate, const string& visCollTable=""); 
-	bool spatialRelation(const string& actGeomTable, TeGeomRep actRep, TeGeometry* geom, TeDatabasePortal *portal, int relate, const string& actCollTable=""); 
-	bool spatialRelation(const string& actGeomTable, TeGeomRep actRep, TeKeys& actIdsIn, TeKeys& actIdsOut, int relate, const string& actCollTable="");
-	bool spatialRelation(const string& actGeomTable, TeGeomRep actRep, TeKeys& actIdsIn, const string& visGeomTable, TeGeomRep visRep, TeKeys& visIdsOut, int relate, const string& visCollTable=""); 
-	bool spatialRelation(const string& actGeomTable, TeGeomRep actRep, TeGeometry* geom, TeKeys& actIdsOut, int relate, const string& actCollTable=""); 
-	//@}
-
-	/** @name Metric functions
-	*/
-	//@{ 
-	bool calculateArea(const string& actGeomTable, TeGeomRep actRep, TeKeys& actIdsOut, double &area);
-	bool calculateLength(const string& actGeomTable, TeGeomRep actRep, TeKeys& actIdsIn, double &length);
-	bool calculateDistance(const string& actGeomTable, TeGeomRep actRep, TeKeys& Ids, double& distance);
-	bool calculateDistance(const string& actGeomTable, TeGeomRep actRep, const string& objId1, const string& visGeomTable, TeGeomRep visRep, const string& objId2, double& distance);
-	//@}
-
-	/** @name Functions that generate new geometry
-	*/
-	//@{  
-	bool buffer(const string& actGeomTable, TeGeomRep actRep, TeKeys& actIds, TePolygonSet& bufferSet, double dist);
-	bool convexHull(const string& actGeomTable, TeGeomRep actRep, TeKeys& actIds, TePolygonSet& convexHullSet);
-	bool centroid(const string&  actGeomTable , TeGeomRep actRep, TePointSet& centroidSet, TeKeys actIds = vector<string>(), const string& actCollTable = "");
-	//@}
-
-	/** @name Functions that return the nearest neighbors 
-	*/
-	//@{  
-	bool nearestNeighbors(const string& actGeomTable, const string& actCollTable, TeGeomRep actRep, const string& objId1, TeKeys& actIdsOut, int numRes=1);
-	bool nearestNeighbors(const string& actGeomTable, TeGeomRep actRep, const string& objId1, const string& visGeomTable, const string& visCollTable, TeGeomRep visRep, TeKeys& visIdsOut, int numRes=1); 
-	bool nearestNeighbors(const string& actGeomTable, const string& actCollTable, TeGeomRep actRep, const string& objId1, TeDatabasePortal* portal, int numRes=1);
-	bool nearestNeighbors(const string& actGeomTable, TeGeomRep actRep, const string& objId1, const string& visGeomTable, const string& visCollTable, TeGeomRep visRep, TeDatabasePortal* portal, int numRes=1); 
-	//@}
-
-	/** @name Set functions
-	*/
-	//@{  
-	bool geomIntersection(const string& actGeomTable, TeGeomRep actRep, TeKeys& actIds, TeGeometryVect& geomVect);
-	bool geomIntersection(const string& actGeomTable, TeGeomRep actRep, const string& objId1, const string& visGeomTable, TeGeomRep visRep, const string& objId2, TeGeometryVect& geomVect);
-	bool geomDifference(const string& actGeomTable, TeGeomRep actRep, const string& objId1, const string& objId2, TeGeometryVect& geomVect);
-	bool geomDifference(const string& actGeomTable, TeGeomRep actRep, const string& objId1, const string& visGeomTable, TeGeomRep visRep, const string& objId2, TeGeometryVect& geomVect);
-	bool geomUnion(const string& actGeomTable, TeGeomRep actRep, TeKeys& actIds, TeGeometryVect& geomVect);
-	bool geomUnion(const string& actGeomTable, TeGeomRep actRep, const string& objId1, const string& visGeomTable, TeGeomRep visRep, const string& objId2, TeGeometryVect& geomVect);
-	bool geomXOr(const string& actGeomTable, TeGeomRep actRep, const string& objId1, const string& objId2, TeGeometryVect& geomVect);
-	bool geomXOr(const string& actGeomTable, TeGeomRep actRep, const string& objId1, const string& visGeomTable, TeGeomRep visRep, const string& objId2, TeGeometryVect& geomVect);	
-	//@}
-};
-
-/*! \class TeOracleSpatialPortal
-	\brief A class that implements a concept of record set to a ORACLE SPATIAL DBMS
-	
-	This class is part of the driver of interface 
-	between TerraLib and ORACLE SPATIAL DBMS. 
-	It was developed using OCI (Oracle Call Interface) library.
-	
-	\sa 
-	TeOCIOraclePortal TeOCICursor
-*/
-class TLORACLE_DLL TeOracleSpatialPortal : public TeOCIOraclePortal
-{
-
-	friend class TeOracleSpatial;
-	
-protected:
-	//! Gets the size of the element information array (SDO_ELEM_INFO type) of the record set current row 
-	int			getDimArraySize();
-	//! Gets the i-th element element information array (SDO_ELEM_INFO type) of the record set current row
-	bool		getDimElement(int i,int &elem);
-	//! Gets the number of ordinates of the coordinate array (SDO_ORDINATES type) of the record set current row
-	int			numberOfOrdinates();
-	//! Gets the i-th coordinate from the coordinates array (SDO_ORDINATES type) of the record set current row
-	bool		getCoordinates(int i,TeCoord2D& coord);
-	//! Gets the geometry type of the record set current row
-	bool		getGeometryType(TeSDOGType& gType);
-	//! Gets the spatial reference associated to the SDO_GEOMETRY type of the record set current row
-	int			getSpatialReferenceId();
-	//! Gets the point (x and y) associated to the SDO_POINT type of the record set current row
-	bool		getPointXYZ (double& x,double& y);
-
-public:
-
-	//! Constructor
-	TeOracleSpatialPortal(TeOracleSpatial* pDatabase) : TeOCIOraclePortal(pDatabase) 
-	{}
-
-	//! Destructor
-	virtual ~TeOracleSpatialPortal()
-	{}
-    
-	//! Executes a SQL statement that uses operators and functions of the ORACLE SPATIAL
-	bool querySDO (const string &q);
-	
-	/** @name Methods that return the geometry of the record set current row and fetch to the next row
-	*/
-	//@{ 
-	bool getGeometry (TeGeometry** geom, bool& result);
-	bool fetchGeometry (TePolygon& poly);
-	bool fetchGeometry (TePolygon& poly, const unsigned int& initIndex);
-	bool fetchGeometry (TePolygonSet& polySet);
-	bool fetchGeometry (TeLine2D& line);
-	bool fetchGeometry (TeLine2D& line, const unsigned int& initIndex);
-	bool fetchGeometry (TeLineSet& lineSet);
-	bool fetchGeometry (TeNode& n);
-	bool fetchGeometry (TeNode& n, const unsigned int& initIndex);
-	bool fetchGeometry (TePoint& p);
-	bool fetchGeometry (TePoint& p, const unsigned int& initIndex);
-	bool fetchGeometry (TePointSet& pointSet);
-	bool fetchGeometry (TeCell& cell);
-	bool fetchGeometry (TeCell& cell, const unsigned int& initIndex);
-	//@}
-};
-
-
-/**
- * @brief This is the class for TeOracleSpatial driver factory.
- * @author Emiliano F. Castejon <castejon at dpi.inpe.br>
- * @ingroup DatabaseUtils
- */
-class TLORACLE_DLL TeOracleSpatialFactory : public TeDatabaseFactory
-{
-  public :
-      
-    /**
-     * Default constructor
-     */
-    TeOracleSpatialFactory() : TeDatabaseFactory( 
-      std::string( "OracleSpatial" ) ) {};      
-      
-    /**
-     * Default Destructor
-     */
-    ~TeOracleSpatialFactory() {};
-      
-  protected :  
-  
-    /**
-     * Implementation for the abstract TeFactory::build.
-     *
-     * @param arg A const reference to the parameters used by the
-     * database.
-     * @return A pointer to the new generated database instance.
-     */
-    TeDatabase* build( const TeDatabaseFactoryParams& arg )
-    {
-      TeOracleSpatial* instance_ptr = new TeOracleSpatial();
-      
-      if( arg.host_ != "" ) {
-        instance_ptr->connect( arg.host_, arg.user_, arg.password_,
-          arg.database_, arg.port_ );
-      }
-  
-      return (TeDatabase*)instance_ptr;
-    }
-};
-
-namespace {
-  static TeOracleSpatialFactory TeOracleSpatialFactory_instance;
-}; 
-
-#endif 
-
-
-
diff --git a/src/terralib/drivers/Oracle/ociap.h b/src/terralib/drivers/Oracle/ociap.h
deleted file mode 100644
index 1616570..0000000
--- a/src/terralib/drivers/Oracle/ociap.h
+++ /dev/null
@@ -1,10093 +0,0 @@
-/* Copyright (c) 1996, 2002, Oracle Corporation.  All rights reserved.  */
- 
-/* NOTE:  See 'header_template.doc' in the 'doc' dve under the 'forms' 
-      directory for the header file template that includes instructions. 
-*/
- 
-/* 
-   NAME 
-     ociap.h - Oracle Call Interface - Ansi Prototypes
-
-   DESCRIPTION 
-     <short description of component this file declares/defines> 
-
-   RELATED DOCUMENTS 
- 
-   INSPECTION STATUS 
-     Inspection date: 
-     Inspection status: 
-     Estimated increasing cost defects per page: 
-     Rule sets: 
- 
-   ACCEPTANCE REVIEW STATUS 
-     Review date: 
-     Review status: 
-     Reviewers: 
- 
-   PUBLIC FUNCTION(S) 
-     <list of external functions declared/defined - with one-line descriptions>
-
-   PRIVATE FUNCTION(S)
-     <list of static functions defined in .c file - with one-line descriptions>
-
-   EXAMPLES
-
-   NOTES
-     <other useful comments, qualifications, etc.>
-
-   MODIFIED   (MM/DD/YY)
-   sichandr    02/12/02 - fix OCIXMLTypeExists
-   gayyappa    02/01/02 - fix 2210776 : change Dom to DOM 
-   sichandr    10/24/01 - OCISvcCtx for XMLType create routines
-   schandir    09/14/01 - Add prototypes for Stmt Caching
-   abande      09/04/01 - Add Prototypes for Session Pooling Methods
-   stakeda     09/12/01 - add OCINlsCharSetConvert
-   whe         08/28/01 - add OCIEnvNlsCreate
-   wzhang      08/22/01 - Add OCINlsCharSetNameToId.
-   whe         10/05/01 - add prototype for OCIXMLType functions
-   mdmehta     04/06/01 - Bug 1683763, OCIDateTimeToText: buf_size to ub4*
-   schandir    12/12/00 - modify the ociconnectionpoolcreate() interface.
-   porangas    12/04/00 - Forward merge bug#974710 to 9i
-   rpingte     11/29/00 - Fix bug# 1485795.
-   gtarora     11/30/00 - fix comment for OCILobIsTemporary
-   akatti      11/07/00 - [1198379]:add OCIRowidToChar
-   bpalaval    10/15/00 - Forward merge 892654.
-   kmohan      09/18/00 - add OCILogon2
-   etucker     07/28/00 - add OCIIntervalFromTZ
-   vjayaram    07/18/00 - add connection pooling changes
-   etucker     07/13/00 - add dls apis for oci
-   hmasaki     07/05/00 - fix 1230846: forward merge into 8.2
-   mbastawa    06/05/00 - add OCIStmtFetch2
-   rxgovind    06/07/00 - update OCIAnyData interfaces
-   rxgovind    05/04/00 - add OCIAnyDataSet interfaces
-   rkasamse    05/01/00 - remove attrno from OCIAnyDataAttrGet
-   rkasamse    03/13/00 - add prototype s for OCCIAnyData
-   slari       09/01/99 - remove OCIEnvCallback
-   slari       08/23/99 - add OCIUcb in user callback functions
-   dsaha       07/07/99 - Add OCIFEnvCreate for forms
-   vyanaman    06/21/99 - Change OCI DateTime/Interval APIs.
-   esoyleme    07/01/99 - expose MTS performance enhancements                  
-   whe         06/14/99 - bug727872:add CONST to match definitions
-   kkarun      02/23/99 - Fix OCIDateTime APIs
-   jiyang      12/07/98 - Add comments for OCI_NLS_DUAL_CURRENCY
-   aroy        12/01/98 - add OCIEnvCreate
-   slari       11/23/98 - use ORASTDARG
-   slari       11/21/98 - replace ellipsis by arglist in OCIUserCallback
-   thchang     10/20/98 - correct comment on OCILobCreateTemporary
-   slari       09/08/98 - allow envh to receive error info also in CallbackReg/
-   kkarun      09/02/98 - Change const to CONST
-   aroy        08/04/98 - add OCITerminate calls                               
-   nramakri    06/25/98 - remove CONST from some OCIPickler APIs
-   jiyang      06/22/98 - Fix a lint error
-   nmallava    06/08/98 - ociistemporary -> envhp
-   jhasenbe    05/27/98 - Remove definitions for U-Calls (Unicode)
-   nmallava    05/18/98 - add comments
-   sgollapu    05/19/98 - Change text to OraText
-   aroy        04/20/98 - merge forward 8.0.5 -> 8.1.3
-   nbhatt      05/14/98 -  aq listen call
-   lchidamb    03/02/98 - Client Notification prototypes
-   vyanaman    04/19/98 - System Timestamp
-   kkarun      04/17/98 - Add more Interval functions
-   vyanaman    04/17/98 - Fix min (proc error)
-   vyanaman    04/16/98 - Add get/set TZ
-   kkarun      04/13/98 - Add Datetime prototypes
-   rkasamse    04/13/98 - change OCIEnv* to dvoid* for context/memory cart serv
-   rkasamse    04/15/98 - chage pickler cart interface
-   slari       03/20/98 - change proto of OCIUserCallback
-   slari       02/17/98 - add OCIUserCallback
-   jiyang      04/02/98 - Accept both env and user handles for NLS
-   rkasamse    03/20/98 - remove prototypes for OCIMemoryDuration* functions.
-   tsaulys     03/20/98 - use environment or session handle
-   nmallava    04/09/98 - OCILobLocatorAssign
-   nmallava    04/07/98 - lobgetchunksize and writeappend apis
-   jhasenbe    04/06/98 - Add new interfaces for Unicode support
-   nmallava    03/17/98 - add interfaces
-   nmallava    03/16/98 - add open/close apis
-   nmallava    03/10/98 - add temporary lobs apis
-   sgollapu    07/10/97 - Add OCIReset
-   sgollapu    02/09/98 - OCI non-blocking
-   nramakri    01/16/98 - remove #ifdef NEVER clause for OCIExtract
-   rmurthy     01/08/98 - OCIContextGenerateKey: change ub1 to ub4
-   ewaugh      12/18/97 - Turn type wrappers into functions.
-   skabraha    12/02/97 - adding OCIFile functions
-   rhwu        12/02/97 - add OCI Thread
-   nramakri    12/15/97 - move to core4
-   nramakri    12/11/97 - modify OCIExtract prototype
-   ewaugh      12/10/97 - add OCIFormat prototypes
-   nmallava    12/17/97 - Add ilob open and close apis
-   rkasamse    12/03/97 - Change some of the function names for pickler cartrid
-   nramakri    11/12/97 - add OCIExtract prototypes
-   rkasamse    11/21/97 - add prototypes for memory cartridge services and cont
-   rkasamse    11/03/97 - Add pickler cartridge interfaces.
-   jiyang      11/11/97 - Add NLS service for cartridge
-   tanguyen    08/19/97 -
-   cxcheng     07/30/97 - replace OCISvcCtx with OCISvcCtx
-   schandra    06/25/97 - AQ OCI interface
-   bnainani    07/21/97 - add prototypes for Oracle XA extensions
-   esoyleme    05/13/97 - move failover callback prototype
-   skmishra    05/06/97 - stdc compiler fixes
-   skmishra    04/24/97 - C++ Compatibility changes
-   skotsovo    04/21/97 - make lob parameter names consistent
-   rwhitman    04/16/97 - Fix LOB prototypes - Olint OCI 8.0.3
-   ramkrish    04/15/97 - Add free flag to OCILobFlushBuffer
-   dchatter    04/10/97 - add nzt.h inclusion
-   cxcheng     04/09/97 - change objnamp from CONST text* to dvoid*
-   cxcheng     04/08/97 - fix prototype of OCIDescribeAny()
-   skotsovo    03/31/97 - remove OCILobLocatorSize
-   skotsovo    03/27/97 - add OCILobLoadFromFile
-   bcchang     02/18/97 - Fix syntax error
-   dchatter    01/13/97 - fix comments on LOB calls
-   aroy        01/10/97 - remove ocilobfilecreate delete
-   sgollapu    12/27/96 - Correct OCILogon prototype
-   dchatter    01/04/97 - comments to describe the functions
-   sgollapu    11/25/96 - Change OCILobFileIsExistent
-   schandra    11/18/96 - Remove xa.h include
-   sgollapu    11/09/96 - Change prototype of OCIDescribeAny
-   dchatter    10/31/96 - delete CONST from lob write cb fn
-   dchatter    10/30/96 - more changes
-   dchatter    10/26/96 - lob/file long name corrections
-   slari       10/16/96 - delete unused calls
-   rwessman    10/29/96 - Fixed OCISecurityGetIdentity prototype
-   bcchang     10/25/96 - Fix syntax error
-   sgollapu    10/22/96 - Add OCILogon and OCILogoff
-   rwessman    10/16/96 - Added cryptographic and digital signature functions
-   sgollapu    10/10/96 - Add ocibdp and ocibdn
-   rxgovind    10/07/96 - add oci file calls
-   skotsovo    10/01/96 - move orl lob fnts to oci
-   skotsovo    09/20/96 - in OCILobGetLength(), remove the 'isnull' parameter.
-   aroy        08/29/96 - change prototype for Nchar Lob support
-   dchatter    08/21/96 - OCIResultSetToStmt prototype change
-   sthakur     08/14/96 - add OCIParamSet
-   schandra    07/26/96 - TX OCI return values - sb4->sword
-   aroy        07/17/96 - terminology change: OCILobLocator => OCILobLocator
-   dchatter    07/01/96 - create ANSI prototypes
-   dchatter    07/01/96 - Creation
-
-*/
-
- 
-#ifndef OCIAP_ORACLE
-# define OCIAP_ORACLE
-
-# ifndef ORATYPES 
-#  include <oratypes.h> 
-# endif 
- 
-#ifndef ORASTDARG
-#include <stdarg.h>
-#define ORASTDARG
-#endif
-
-//#ifndef OCIDFN
-//#include <ocidfn.h>
-//#endif
-
-#ifndef NZT_ORACLE
-#include <nzt.h>
-#endif /* NZT_ORACLE */
- 
-//#ifndef OCI_ORACLE
-//#include <oci.h>
-//#endif
-
-#ifndef ORT_ORACLE
-#include <ort.h>
-#endif
-
-
-
-/*---------------------------------------------------------------------------
-                     PUBLIC TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                     PRIVATE TYPES AND CONSTANTS
-  ---------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
-                           PUBLIC FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-/*****************************************************************************
-                              DESCRIPTION
-******************************************************************************
-Note: the descriptions of the functions are alphabetically arranged. Please 
-maintain the arrangement when adding a new function description. The actual 
-prototypes are below this comment section and donot follow any alphabetical 
-ordering. 
-
-
---------------------------------OCIAttrGet------------------------------------
-
-OCIAttrGet()
-Name
-OCI Attribute Get
-Purpose
-This call is used to get a particular attribute of a handle. 
-Syntax
-sword OCIAttrGet ( CONST dvoid    *trgthndlp,
-                 ub4            trghndltyp,
-                 dvoid          *attributep,
-                 ub4            *sizep,
-                 ub4            attrtype,
-                 OCIError       *errhp );
-Comments
-This call is used to get a particular attribute of a handle.
-See Appendix B,  "Handle Attributes",  for a list of handle types and their 
-readable attributes.
-Parameters
-trgthndlp (IN) - is the pointer to a handle type. 
-trghndltyp (IN) - is the handle type. 
-attributep (OUT) - is a pointer to the storage for an attribute value. The 
-attribute value is filled in. 
-sizep (OUT) - is the size of the attribute value. 
-This can be passed in as NULL for most parameters as the size is well known. 
-For text* parameters, a pointer to a ub4 must be passed in to get the length 
-of the string. 
-attrtype (IN) - is the type of attribute.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-Related Functions
-OCIAttrSet()
-
---------------------------------OCIAttrSet------------------------------------
-
-
-OCIAttrSet()
-Name
-OCI Attribute Set
-Purpose
-This call is used to set a particular attribute of a handle or a descriptor. 
-Syntax
-sword OCIAttrSet ( dvoid       *trgthndlp,
-                 ub4         trghndltyp,
-                 dvoid       *attributep,
-                 ub4         size,
-                 ub4         attrtype,
-                 OCIError    *errhp );
-Comments
-This call is used to set a particular attribute of a handle or a descriptor. 
-See Appendix B for a list of handle types and their writeable attributes.
-Parameters
-trghndlp (IN/OUT) - the pointer to a handle type whose attribute gets 
-modified. 
-trghndltyp (IN/OUT) - is the handle type. 
-attributep (IN) - a pointer to an attribute value. 
-The attribute value is copied into the target handle. If the attribute value 
-is a pointer, then only the pointer is copied, not the contents of the pointer.
-size (IN) - is the size of an attribute value. This can be passed in as 0 for 
-most attributes as the size is already known by the OCI library. For text*
-attributes, a ub4 must be passed in set to the length of the string. 
-attrtype (IN) - the type of attribute being set.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-Related Functions
-OCIAttrGet()
-
-
-
---------------------------------OCIBindArrayOfStruct--------------------------
-
-
-
-OCIBindArrayOfStruct()
-Name
-OCI Bind for Array of Structures
-Purpose
-This call sets up the skip parameters for a static array bind.
-Syntax
-sword OCIBindArrayOfStruct ( OCIBind     *bindp,
-                           OCIError    *errhp,
-                           ub4         pvskip, 
-                           ub4         indskip, 
-                           ub4         alskip, 
-                           ub4         rcskip );
-Comments
-This call sets up the skip parameters necessary for a static array bind.
-This call follows a call to OCIBindByName() or OCIBindByPos(). The bind 
-handle returned by that initial bind call is used as a parameter for the 
-OCIBindArrayOfStruct() call.
-For information about skip parameters, see the section "Arrays of Structures" 
-on page 4-16.
-Parameters
-bindp (IN) - the handle to a bind structure. 
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-pvskip (IN) - skip parameter for the next data value. 
-indskip (IN) - skip parameter for the next indicator value or structure. 
-alskip (IN) - skip parameter for the next actual length value. 
-rcskip (IN) - skip parameter for the next column-level return code value. 
-Related Functions
-OCIAttrGet()
-
-
---------------------------------OCIBindByName---------------------------------
-
-OCIBindByName()
-Name
-OCI Bind by Name
-Purpose
-Creates an association between a program variable and a placeholder in a SQL 
-statement or PL/SQL block.
-Syntax
-sword OCIBindByName (
-              OCIStmt       *stmtp, 
-              OCIBind       **bindp,
-              OCIError      *errhp,
-              CONST OraText    *placeholder,
-              sb4           placeh_len,
-              dvoid         *valuep,
-              sb4           value_sz,
-              ub2           dty,
-              dvoid         *indp,
-              ub2           *alenp,
-              ub2           *rcodep,
-              ub4           maxarr_len,
-              ub4           *curelep, 
-              ub4           mode ); 
-Description
-This call is used to perform a basic bind operation. The bind creates an 
-association between the address of a program variable and a placeholder in a 
-SQL statement or PL/SQL block. The bind call also specifies the type of data 
-which is being bound, and may also indicate the method by which data will be 
-provided at runtime.
-This function also implicitly allocates the bind handle indicated by the bindp 
-parameter.
-Data in an OCI application can be bound to placeholders statically or 
-dynamically. Binding is static when all the IN bind data and the OUT bind 
-buffers are well-defined just before the execute. Binding is dynamic when the 
-IN bind data and the OUT bind buffers are provided by the application on 
-demand at execute time to the client library. Dynamic binding is indicated by 
-setting the mode parameter of this call to OCI_DATA_AT_EXEC.
-Related Functions: For more information about dynamic binding, see 
-the section "Runtime Data Allocation and Piecewise Operations" on 
-page 5-16.
-Both OCIBindByName() and OCIBindByPos() take as a parameter a bind handle, 
-which is implicitly allocated by the bind call A separate bind handle is 
-allocated for each placeholder the application is binding.
-Additional bind calls may be required to specify particular attributes 
-necessary when binding certain data types or handling input data in certain 
-ways:
-If arrays of structures are being utilized, OCIBindArrayOfStruct() must 
-be called to set up the necessary skip parameters.
-If data is being provided dynamically at runtime, and the application 
-will be using user-defined callback functions, OCIBindDynamic() must 
-be called to register the callbacks.
-If a named data type is being bound, OCIBindObject() must be called to 
-specify additional necessary information.
-Parameters
-stmth (IN/OUT) - the statement handle to the SQL or PL/SQL statement 
-being processed.
-bindp (IN/OUT) - a pointer to a pointer to a bind handle which is implicitly 
-allocated by this call.  The bind handle  maintains all the bind information for 
-this particular input value. The handle is feed implicitly when the statement 
-handle is deallocated.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-placeholder (IN) - the placeholder attributes are specified by name if ocibindn() 
-is being called.
-placeh_len (IN) - the length of the placeholder name specified in placeholder.
-valuep (IN/OUT) - a pointer to a data value or an array of data values of the 
-type specified in the dty parameter. An array of data values can be specified 
-for mapping into a PL/SQL table or for providing data for SQL multiple-row 
-operations. When an array of bind values is provided, this is called an array 
-bind in OCI terms. Additional attributes of the array bind (not bind to a 
-column of ARRAY type) are set up in OCIBindArrayOfStruct() call. 
-For a REF, named data type  bind, the valuep parameter is used only for IN 
-bind data. The pointers to OUT buffers are set in the pgvpp parameter 
-initialized by OCIBindObject(). For named data type and REF binds, the bind 
-values are unpickled into the Object Cache. The OCI object navigational calls 
-can then be used to navigate the objects and the refs in the Object Cache.
-If the OCI_DATA_AT_EXEC mode is specified in the mode parameter, valuep 
-is ignored for all data types. OCIBindArrayOfStruct() cannot be used and 
-OCIBindDynamic() must be invoked to provide callback functions if desired. 
-value_sz (IN) - the size of a data value. In the case of an array bind, this is the 
-maximum size of any element possible with the actual sizes being specified in 
-the alenp parameter. 
-If the OCI_DATA_AT_EXEC mode is specified, valuesz defines the maximum 
-size of the data that can be ever provided at runtime for data types other than 
-named data types or REFs. 
-dty (IN) - the data type of the value(s) being bound. Named data types 
-(SQLT_NTY) and REFs (SQLT_REF) are valid only if the application has been 
-initialized in object mode. For named data types, or REFs, additional calls 
-must be made with the bind handle to set up the datatype-specific attributes.
-indp (IN/OUT) - pointer to an indicator variable or array. For scalar data 
-types, this is a pointer to sb2 or an array of sb2s. For named data types, 
-this pointer is ignored and the actual pointer to the indicator structure or 
-an array of indicator structures is initialized by OCIBindObject(). 
-Ignored for dynamic binds.
-See the section "Indicator Variables" on page 2-43 for more information about 
-indicator variables.
-alenp (IN/OUT) - pointer to array of actual lengths of array elements. Each 
-element in alenp is the length of the data in the corresponding element in the 
-bind value array before and after the execute. This parameter is ignored for 
-dynamic binds.
-rcodep (OUT) - pointer to array of column level return codes. This parameter 
-is ignored for dynamic binds.
-maxarr_len (IN) - the maximum possible number of elements of type dty in a 
-PL/SQL binds. This parameter is not required for non-PL/SQL binds. If 
-maxarr_len is non-zero, then either OCIBindDynamic() or 
-OCIBindArrayOfStruct() can be invoked to set up additional bind attributes. 
-curelep(IN/OUT) - a pointer to the actual number of elements. This parameter 
-is only required for PL/SQL binds.
-mode (IN) - the valid modes for this parameter are:
-OCI_DEFAULT. This is default mode.
-OCI_DATA_AT_EXEC. When this mode is selected, the value_sz 
-parameter defines the maximum size of the data that can be ever 
-provided at runtime. The application must be ready to provide the OCI 
-library runtime IN data buffers at any time and any number of times. 
-Runtime data is provided in one of the two ways:
-callbacks using a user-defined function which must be registered 
-with a subsequent call to OCIBindDynamic(). 
-a polling mechanism using calls supplied by the OCI. This mode 
-is assumed if no callbacks are defined.
-For more information about using the OCI_DATA_AT_EXEC mode, see 
-the section "Runtime Data Allocation and Piecewise Operations" on 
-page 5-16.
-When the allocated buffers are not required any more, they should be 
-freed by the client. 
-Related Functions
-OCIBindDynamic(), OCIBindObject(), OCIBindArrayOfStruct(), OCIAttrGet()
-
-
-
--------------------------------OCIBindByPos-----------------------------------
-
-
-OCIBindByPos()
-Name
-OCI Bind by Position
-Purpose
-Creates an association between a program variable and a placeholder in a SQL 
-statement or PL/SQL block.
-Syntax
-sword OCIBindByPos ( 
-              OCIStmt      *stmtp, 
-              OCIBind      **bindp,
-              OCIError     *errhp,
-              ub4          position,
-              dvoid        *valuep,
-              sb4          value_sz,
-              ub2          dty,
-              dvoid        *indp,
-              ub2          *alenp,
-              ub2          *rcodep,
-              ub4          maxarr_len,
-              ub4          *curelep, 
-              ub4          mode);
-
-Description
-This call is used to perform a basic bind operation. The bind creates an 
-association between the address of a program variable and a placeholder in a 
-SQL statement or PL/SQL block. The bind call also specifies the type of data 
-which is being bound, and may also indicate the method by which data will be 
-provided at runtime.
-This function also implicitly allocates the bind handle indicated by the bindp 
-parameter.
-Data in an OCI application can be bound to placeholders statically or 
-dynamically. Binding is static when all the IN bind data and the OUT bind 
-buffers are well-defined just before the execute. Binding is dynamic when the 
-IN bind data and the OUT bind buffers are provided by the application on 
-demand at execute time to the client library. Dynamic binding is indicated by 
-setting the mode parameter of this call to OCI_DATA_AT_EXEC.
-Related Functions: For more information about dynamic binding, see 
-the section "Runtime Data Allocation and Piecewise Operations" on 
-page 5-16
-Both OCIBindByName() and OCIBindByPos() take as a parameter a bind handle, 
-which is implicitly allocated by the bind call A separate bind handle is 
-allocated for each placeholder the application is binding.
-Additional bind calls may be required to specify particular attributes 
-necessary when binding certain data types or handling input data in certain 
-ways:
-If arrays of structures are being utilized, OCIBindArrayOfStruct() must 
-be called to set up the necessary skip parameters.
-If data is being provided dynamically at runtime, and the application 
-will be using user-defined callback functions, OCIBindDynamic() must 
-be called to register the callbacks.
-If a named data type is being bound, OCIBindObject() must be called to 
-specify additional necessary information.
-Parameters
-stmth (IN/OUT) - the statement handle to the SQL or PL/SQL statement 
-being processed.
-bindp (IN/OUT) - a pointer to a pointer to a bind handle which is implicitly 
-allocated by this call.  The bind handle  maintains all the bind information for 
-this particular input value. The handle is feed implicitly when the statement 
-handle is deallocated.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-position (IN) - the placeholder attributes are specified by position if ocibindp() 
-is being called.
-valuep (IN/OUT) - a pointer to a data value or an array of data values of the 
-type specified in the dty parameter. An array of data values can be specified 
-for mapping into a PL/SQL table or for providing data for SQL multiple-row 
-operations. When an array of bind values is provided, this is called an array 
-bind in OCI terms. Additional attributes of the array bind (not bind to a 
-column of ARRAY type) are set up in OCIBindArrayOfStruct() call. 
-For a REF, named data type  bind, the valuep parameter is used only for IN 
-bind data. The pointers to OUT buffers are set in the pgvpp parameter 
-initialized by OCIBindObject(). For named data type and REF binds, the bind 
-values are unpickled into the Object Cache. The OCI object navigational calls 
-can then be used to navigate the objects and the refs in the Object Cache.
-If the OCI_DATA_AT_EXEC mode is specified in the mode parameter, valuep 
-is ignored for all data types. OCIBindArrayOfStruct() cannot be used and 
-OCIBindDynamic() must be invoked to provide callback functions if desired. 
-value_sz (IN) - the size of a data value. In the case of an array bind, this is the 
-maximum size of any element possible with the actual sizes being specified in 
-the alenp parameter. 
-If the OCI_DATA_AT_EXEC mode is specified, valuesz defines the maximum 
-size of the data that can be ever provided at runtime for data types other than 
-named data types or REFs. 
-dty (IN) - the data type of the value(s) being bound. Named data types 
-(SQLT_NTY) and REFs (SQLT_REF) are valid only if the application has been 
-initialized in object mode. For named data types, or REFs, additional calls 
-must be made with the bind handle to set up the datatype-specific attributes.
-indp (IN/OUT) - pointer to an indicator variable or array. For scalar data 
-types, this is a pointer to sb2 or an array of sb2s. For named data types, 
-this pointer is ignored and the actual pointer to the indicator structure or 
-an array of indicator structures is initialized by OCIBindObject(). Ignored 
-for dynamic binds.
-See the section "Indicator Variables" on page 2-43 for more information about 
-indicator variables.
-alenp (IN/OUT) - pointer to array of actual lengths of array elements. Each 
-element in alenp is the length of the data in the corresponding element in the 
-bind value array before and after the execute. This parameter is ignored for 
-dynamic binds.
-rcodep (OUT) - pointer to array of column level return codes. This parameter 
-is ignored for dynamic binds.
-maxarr_len (IN) - the maximum possible number of elements of type dty in a 
-PL/SQL binds. This parameter is not required for non-PL/SQL binds. If 
-maxarr_len is non-zero, then either OCIBindDynamic() or 
-OCIBindArrayOfStruct() can be invoked to set up additional bind attributes. 
-curelep(IN/OUT) - a pointer to the actual number of elements. This parameter 
-is only required for PL/SQL binds.
-mode (IN) - the valid modes for this parameter are:
-OCI_DEFAULT. This is default mode.
-OCI_DATA_AT_EXEC. When this mode is selected, the value_sz 
-parameter defines the maximum size of the data that can be ever 
-provided at runtime. The application must be ready to provide the OCI 
-library runtime IN data buffers at any time and any number of times. 
-Runtime data is provided in one of the two ways:
-callbacks using a user-defined function which must be registered 
-with a subsequent call to OCIBindDynamic() . 
-a polling mechanism using calls supplied by the OCI. This mode 
-is assumed if no callbacks are defined.
-For more information about using the OCI_DATA_AT_EXEC mode, see 
-the section "Runtime Data Allocation and Piecewise Operations" on 
-page 5-16.
-When the allocated buffers are not required any more, they should be 
-freed by the client. 
-Related Functions
-OCIBindDynamic(), OCIBindObject(), OCIBindArrayOfStruct(), OCIAttrGet()
-
-
-
--------------------------------OCIBindDynamic---------------------------------
-
-OCIBindDynamic()
-Name
-OCI Bind Dynamic Attributes
-Purpose
-This call is used to register user callbacks for dynamic data allocation. 
-Syntax
-sword OCIBindDynamic( OCIBind     *bindp,
-                    OCIError    *errhp,
-                    dvoid       *ictxp, 
-                    OCICallbackInBind         (icbfp)(
-                                dvoid            *ictxp,
-                                OCIBind          *bindp,
-                                ub4              iter, 
-                                ub4              index, 
-                                dvoid            **bufpp,
-                                ub4              *alenp,
-                                ub1              *piecep, 
-                                dvoid            **indp ),
-                    dvoid       *octxp,
-                    OCICallbackOutBind         (ocbfp)(
-                                dvoid            *octxp,
-                                OCIBind          *bindp,
-                                ub4              iter, 
-                                ub4              index, 
-                                dvoid            **bufp, 
-                                ub4              **alenpp,
-                                ub1              *piecep,
-                                dvoid            **indpp, 
-                                ub2              **rcodepp)   );
-Comments
-This call is used to register user-defined callback functions for providing 
-data for an UPDATE or INSERT if OCI_DATA_AT_EXEC mode was specified in a 
-previous call to OCIBindByName() or OCIBindByPos(). 
-The callback function pointers must return OCI_CONTINUE if it the call is 
-successful. Any return code other than OCI_CONTINUE signals that the client 
-wishes to abort processing immediately.
-For more information about the OCI_DATA_AT_EXEC mode, see the section 
-"Runtime Data Allocation and Piecewise Operations" on page 5-16.
-Parameters
-bindp (IN/OUT) - a bind handle returned by a call to OCIBindByName() or 
-OCIBindByPos(). 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-ictxp (IN) - the context pointer required by the call back function icbfp. 
-icbfp (IN) - the callback function which returns a pointer to the IN bind 
-value or piece at run time. The callback takes in the following parameters. 
-ictxp (IN/OUT) - the context pointer for this callback function. 
-bindp (IN) - the bind handle passed in to uniquely identify this bind 
-variable. 
-iter (IN) - 1-based execute iteration value. 
-index (IN) - index of the current array, for an array bind. 1 based not 
-greater than curele parameter of the bind call. 
-index (IN) - index of the current array, for an array bind. This parameter 
-is 1-based, and may not be greater than curele parameter of the bind call. 
-bufpp (OUT) - the pointer to the buffer. 
-piecep (OUT) - which piece of the bind value. This can be one of the 
-following values - OCI_ONE_PIECE, OCI_FIRST_PIECE, 
-OCI_NEXT_PIECE and OCI_LAST_PIECE.
-indp (OUT) - contains the indicator value. This is apointer to either an 
-sb2 value or a pointer to an indicator structure for binding named data 
-types. 
-indszp (OUT) - contains the indicator value size. A pointer containing 
-the size of either an sb2 or an indicator structure pointer. 
-octxp (IN) - the context pointer required by the callback function ocbfp. 
-ocbfp (IN) - the callback function which returns a pointer to the OUT bind 
-value or piece at run time. The callback takes in the following parameters. 
-octxp (IN/OUT) - the context pointer for this call back function. 
-bindp (IN) - the bind handle passed in to uniquely identify this bind 
-variable. 
-iter (IN) - 1-based execute iteration value. 
-index (IN) - index of the current array, for an array bind. This parameter 
-is 1-based, and must not be greater than curele parameter of the bind call. 
-bufpp (OUT) - a pointer to a buffer to write the bind value/piece. 
-buflp (OUT) - returns the buffer size. 
-alenpp (OUT) - a pointer to a storage for OCI to fill in the size of the bind 
-value/piece after it has been read. 
-piecep (IN/OUT) - which piece of the bind value. It will be set by the 
-library to be one of the following values - OCI_ONE_PIECE or 
-OCI_NEXT_PIECE. The callback function can leave it unchanged or set 
-it to OCI_FIRST_PIECE or OCI_LAST_PIECE. By default - 
-OCI_ONE_PIECE. 
-indpp (OUT) - returns a pointer to contain the indicator value which 
-either an sb2 value or a pointer to an indicator structure for named data 
-types. 
-indszpp (OUT) - returns a pointer to return the size of the indicator 
-value which is either size of an sb2 or size of an indicator structure. 
-rcodepp (OUT) - returns a pointer to contains the return code. 
-Related Functions
-OCIAttrGet()
-
-
----------------------------------OCIBindObject--------------------------------
-
-
-OCIBindObject()
-Name
-OCI Bind Object
-Purpose
-This function sets up additional attributes which are required for a named 
-data type (object)  bind.
-Syntax
-sword OCIBindObject ( OCIBind          *bindp,
-                    OCIError         *errhp, 
-                    CONST OCIType    *type,
-                    dvoid            **pgvpp, 
-                    ub4              *pvszsp, 
-                    dvoid            **indpp, 
-                    ub4              *indszp, );
-Comments
-This function sets up additional attributes which binding a named data type 
-or a REF. An error will be returned if this function is called when the OCI 
-environment has been initialized in non-object mode. 
-This call takes as a paramter a type descriptor object (TDO) of datatype 
-OCIType for the named data type being defined.  The TDO can be retrieved 
-with a call to OCITypeByName().
-If the OCI_DATA_AT_EXEC mode was specified in ocibindn() or ocibindp(), the 
-pointers to the IN buffers are obtained either using the callback icbfp 
-registered in the OCIBindDynamic() call or by the OCIStmtSetPieceInfo() call. 
-The buffers are dynamically allocated for the OUT data and the pointers to 
-these buffers are returned either by calling ocbfp() registered by the 
-OCIBindDynamic() or by setting the pointer to the buffer in the buffer passed 
-in by OCIStmtSetPieceInfo() called when OCIStmtExecute() returned 
-OCI_NEED_DATA. The memory of these client library- allocated buffers must be 
-freed when not in use anymore by using the OCIObjectFreee() call.
-Parameters
-bindp ( IN/OUT) - the bind handle returned by the call to OCIBindByName() 
-or OCIBindByPos(). 
-errhp ( IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-type ( IN) - points to the TDO which describes the type of the program 
-variable being bound. Retrieved by calling OCITypeByName().
-pgvpp ( IN/OUT) - points to a pointer to the program variable buffer. For an 
-array, pgvpp points to an array of pointers. When the bind variable is also an 
-OUT variable, the OUT Named Data Type value or REF is allocated 
-(unpickled) in the Object Cache, and a pointer to the value or REF is returned,
-At the end of execute, when all OUT values have been received, pgvpp points 
-to an array of pointer(s) to these newly allocated named data types in the 
-object cache. 
-pgvpp is ignored if the OCI_DATA_AT_EXEC mode is set. Then the Named 
-Data Type buffers are requested at runtime. For static array binds, skip 
-factors may be specified using the OCIBindArrayOfStruct() call. The skip 
-factors are used to compute the address of the next pointer to the value, the 
-indicator structure and their sizes.
-pvszsp ( IN/OUT) - points to the size of the program variable. The size of the 
-named data type is not required on input. For an array, pvszsp is an array of 
-ub4s. On return, for OUT bind variables, this points to size(s) of the Named 
-Data Types and REFs received. pvszsp is ignored if the OCI_DATA_AT_EXEC 
-mode is set. Then the size of the buffer is taken at runtime.
-indpp ( IN/OUT) - points to a pointer to the program variable buffer 
-containing the parallel indicator structure. For an array, points to an array of 
-pointers. When the bind variable is also an OUT bind variable, memory is 
-allocated in the object cache, to store the unpickled OUT indicator values. At 
-the end of the execute when all OUT values have been received, indpp points 
-to the pointer(s) to these newly allocated indicator structure(s). 
-indpp is ignored if the OCI_DATA_AT_EXEC mode is set. Then the indicator 
-is requested at runtime.
-indszp ( IN/OUT) - points to the size of the IN indicator structure program 
-variable. For an array, it is an array of sb2s. On return for OUT bind variables, 
-this points to size(s) of the received OUT indicator structures.
-indszp is ignored if the OCI_DATA_AT_EXEC mode is set. Then the indicator 
-size is requested at runtime.
-Related Functions
-OCIAttrGet()
-
-
-
-----------------------------------OCIBreak------------------------------------
-
-
-OCIBreak()
-Name
-OCI Break
-Purpose
-This call performs an immediate (asynchronous) abort of any currently 
-executing OCI function that is associated with a server .
-Syntax
-sword OCIBreak ( dvoid      *hndlp,
-                 OCIError   *errhp);
-Comments
-This call performs an immediate (asynchronous) abort of any currently 
-executing OCI function that is associated with a server. It is normally used 
-to stop a long-running OCI call being processed on the server.
-This call can take either the service context handle or the server context 
-handle as a parameter to identify the function to be aborted.
-Parameters
-hndlp (IN) - the service context handle or the server context handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-Related Functions
-
------------------------------OCIConnectionPoolCreate --------------------------
-Name:
-OCIConnectionPoolCreate
-
-Purpose:
-Creates the connections in the pool
-
-Syntax:
-OCIConnectionPoolCreate (OCIEnv *envhp, OCIError *errhp, OCICPool *poolhp,
-                         OraText **poolName, sb4 *poolNameLen, 
-                         CONST Oratext *dblink, sb4 dblinkLen,
-                         ub4 connMin, ub4 connMax, ub4 connIncr,
-                         CONST OraText *poolUsername, sb4 poolUserLen,
-                         CONST OraText *poolPassword, sb4 poolPassLen, ub4 mode)
-Comments:
-This call is used to create a connection pool. conn_min connections
-to the database are started on calling OCIConnectionPoolCreate.
-
-Parameters:
-envhp (IN/OUT)  - A pointer to the environment where the Conencton Pool
-                  is to be created
-errhp (IN/OUT)  - An error handle which can be passed to OCIErrorGet().
-poolhp (IN/OUT) - An uninitialiazed pool handle.
-poolName (OUT) - The connection pool name. 
-poolNameLen (OUT) - The length of the connection pool name 
-dblink (IN/OUT) - Specifies the database(server) to connect. This will also
-                  be used as the default pool name.
-dblinkLen (IN)  - The length of the string pointed to by dblink.
-connMin (IN)    - Specifies the minimum number of connections in the
-                  Connection Pool at any instant.
-                  connMin number of connections are started when
-                  OCIConnectionPoolCreate() is called.
-connMax (IN)    - Specifies the maximum number of connections that can be
-                  opened to the database. Once this value is reached, no
-                  more connections are opened.
-connIncr (IN)   - Allows application to set the next increment for
-                  connections to be opened to the database if the current
-                  number of connections are less than conn_max.
-poolUsername (IN/OUT) - Connection pooling requires an implicit proxy
-                         session and this attribute provides a username
-                         for that session.
-poolUserLen (IN) - This represents the length of pool_username.
-poolPassword (IN/OUT) - The password for the parameter pool_username passed
-                        above.
-poolPassLen (IN) - This represents the length of pool_password.
-
-mode (IN) - The modes supported are OCI_DEFAULT and 
-OCI_CPOOL_REINITIALIZE 
-
-Related Functions
-OCIConnectionPoolDestroy()
-
----------------------------------------------------------------------------
-
-----------------------------OCIConnectionPoolDestroy-------------------------
-Name:
-OCIConnectionPoolDestroy
-
-Purpose:
-Terminates the connections in the pool
-
-Syntax:
-OCIConnectionPoolDestroy (OCICPool *poolhp, OCIError *errhp, ub4 mode)
-
-Comments:
-On calling OCIConnectionPoolDestroy, all the open connections in the pool
-are closed and the pool is destroyed.
-
-Parameters:
-poolhp (IN/OUT) - An initialiazed pool handle.
-errhp (IN/OUT)  - An error handle which can be passed to OCIErrorGet().
-mode (IN)       - Currently, OCIConnectionPoolDestroy() will support only
-                  the OCI_DEFAULT mode.
-
-Related Functions:
-OCIConnectionPoolCreate()
-
------------------------------------------------------------------------------
-----------------------------OCISessionPoolCreate-----------------------------
-Name: 
-OCISessionPoolCreate
-
-Purpose:
-Creates the sessions in the session pool.
-
-Syntax:
-sword OCISessionPoolCreate (OCIEnv *envhp, OCIError *errhp, OCISpool *spoolhp, 
-                      OraText **poolName, ub4 *poolNameLen, 
-                      CONST OraText *connStr, ub4 connStrLen,
-                      ub4 sessMin, ub4 sessMax, ub4 sessIncr,
-                      OraText *userid, 	ub4 useridLen,
-                      OraText *password, ub4 passwordLen,
-                      ub4 mode)
-
-Comments:
-When OCISessionPoolCreate is called, a session pool is initialized for
-the associated environment and the database specified by the
-connStr parameter. This pool is named uniquely and the name
-is returned to the user in the poolname parameter.
-
-Parameters:
-envhp (IN/OUT) - A pointer to the environment handle in which the session
-                 pool needs to be created.
-errhp (IN/OUT) - An error handle which can be passed to OCIErrorGet().
-spoolhp (IN/OUT) - A pointer to the session pool handle that is created.
-poolName (OUT) - Session pool name returned to the user.
-poolNameLen (OUT) - Length of the PoolName
-connStr (IN) - The TNS alias of the database to connect to.
-connStrLen (IN) - Length of the connStr.
-sessMin (IN) - Specifies the minimum number of sessions in the Session Pool.
-               These are the number of sessions opened in the beginning, if
-               in Homogeneous mode. Else, the parameter is ignored.
-sessMax (IN) - Specifies the maximum number of sessions in the Session Pool.
-               Once this value is reached, no more sessions are opened,
-               unless the OCI_ATTR_SPOOL_FORCEGET is set.
-userid (IN) - Specifies the userid with which to start up the sessions.
-useridLen (IN) - Length of userid.
-password (IN) - Specifies the password for the corresponding userid.
-passwordLen (IN) - Specifies the length of the password
-mode(IN) - May be OCI_DEFAULT, OCI_SPC_SPOOL_REINITIALIZE, or
-           OCI_SPC_SPOOL_HOMOGENEOUS.
-
-Returns:
-SUCCESS - If pool could be allocated and created successfully.
-ERROR - If above conditions could not be met.
-
-Related Functions:
-OCISessionPoolDestroy()
------------------------------------------------------------------------------
------------------------------OCISessionPoolDestroy---------------------------
-Name:
-OCISessionPoolDestroy
-
-Purpose:
-Terminates all the sessions in the session pool.
-
-Syntax:
-sword OCISessionPoolDestroy (OCISPool *spoolhp, OCIError *errhp, ub4 mode)
-
-Comments:
-spoolhp (IN/OUT) - The pool handle of the session pool to be destroyed.
-errhp (IN/OUT) - An error handle which can be passed to OCIErrorGet().
-mode (IN) - Currently only OCI_DEFAULT mode is supported.
-
-Returns:
-SUCCESS - All the sessions could be closed.
-ERROR - If the above condition is not met.
-
-Related Functions:
-OCISessionPoolCreate()
------------------------------------------------------------------------------
--------------------------------OCISessionGet---------------------------------
-Name:
-OCISessionGet
-
-Purpose:
-Get a session. This could be from a session pool, connection pool or
-a new standalone session.
-
-Syntax:
-sword OCISessionGet(OCIenv *envhp, OCIError *errhp, OCISvcCtx **svchp,
-                    OCIAuthInfo *authhp,
-                    OraText *poolName, ub4 poolName_len,
-                    CONST OraText *tagInfo, ub4 tagInfo_len,
-                    OraText **retTagInfo, ub4 *retTagInfo_len,
-                    boolean *found,
-                    ub4 mode)
-
-Comments:
-envhp (IN/OUT) - OCI environment handle.
-errhp (IN/OUT) - OCI error handle to be passed to OCIErrorGet().
-svchp (IN/OUT) - Address of an OCI service context pointer. This will be
-                 filled with a server and session handle, attached to the
-                 pool.
-authhp (IN/OUT) - OCI Authentication Information handle.
-poolName (IN) - This indicates the session/connection pool to get the
-                session/connection from in the OCI_SPOOL/OCI_CPOOL mode.
-                In the OCI_DEFAULT mode it refers to the connect string.
-poolName_len (IN) - length of poolName.
-tagInfo (IN) - indicates the tag of the session that the user wants. If the
-                   user wants a default session, he must specify a NULL here.
-                   Only used for Session Pooling.
-tagInfo_len (IN) - the length of tagInfo.
-retTagInfo (OUT) - This indicates the type of session that is returned to
-                   the user. Only used for Session Pooling.
-retTagInfo_len (OUT) - the length of retTagInfo.
-found (OUT) - set to true if the user gets a session he had requested, else
-              set to false. Only used for Session Pooling.
-mode (IN) - The supported modes are OCI_DEFAULT, OCI_CRED_PROXY and
-            OCI_GET_SPOOL_MATCHANY, OCI_SPOOL and OCI_CPOOL. OCI_SPOOL and
-            OCI_CPOOL are mutually exclusive.
-
-Returns:
-SUCCESS -  if a session was successfully returned into svchp.
-SUCCESS_WITH_INFO - if a session was successfully returned into svchp and the
-                    total number of sessions > maxsessions. Only valid for
-                    Session Pooling.
-ERROR - If a session could not be retrieved.
-
-Related Functions:
-OCISessionRelease()
------------------------------------------------------------------------------
----------------------------OCISessionRelease---------------------------------
-Name:
-OCISessionRelease
-
-Purpose:
-Release the session.
-
-Syntax:
-sword OCISessionRelease ( OCISvcCtx *svchp, OCIError *errhp,
-                          OraText *tag, ub4 tag_len,
-                          ub4 mode);
-
-Comments:
-svchp (IN/OUT) - The service context associated with the session/connection.
-errhp (IN/OUT) - OCI error handle to be passed to OCIErrorGet().
-tag (IN) - Only used for Session Pooling.
-           This parameter will be ignored unless mode OCI_RLS_SPOOL_RETAG is
-           specified. In this case, the session is labelled with this tag and
-           returned to the pool. If this is NULL, then the session is untagged.
-tag_len (IN) - Length of the tag. This is ignored unless mode 
-               OCI_RLS_SPOOL_RETAG is set.
-mode (IN) - The supported modes are OCI_DEFAULT, OCI_RLS_SPOOL_DROPSESS,
-            OCI_RLS_SPOOL_RETAG. The last 2 are only valid for Session Pooling.
-            When OCI_RLS_SPOOL_DROPSESS is specified, the session
-            will be removed from the session pool. If OCI_RLS_SPOOL_RETAG 
-            is set, the tag on the session will be altered. If this mode is 
-            not set, the tag and tag_len parameters will be ignored.
-
-Returns:
-ERROR - If the session could not be released successfully.
-SUCCESS - In all other cases.
-
-Related Functions:
-OCISessionGet().
------------------------------------------------------------------------------
-------------------------------OCIDateTimeAssign --------------------------
-sword OCIDateTimeAssign(dvoid *hndl, OCIError *err, CONST OCIDateTime *from, 
-		        OCIDateTime *to);
-NAME: OCIDateTimeAssign - OCIDateTime Assignment
-PARAMETERS:
-hndl (IN) - Session/Env handle.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-from (IN) - datetime to be assigned
-to (OUT) - lhs of assignment
-DESCRIPTION:
-        Performs date assignment. The type of the output will be same as that
-	of input
-
-------------------------------OCIDateTimeCheck----------------------------
-sword OCIDateTimeCheck(dvoid *hndl, OCIError *err, CONST OCIDateTime *date, 
-		 ub4 *valid );
-NAME: OCIDateTimeCheck - OCIDateTime CHecK if the given date is valid
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-date (IN) - date to be checked
-valid (OUT) -  returns zero for a valid date, otherwise 
-  		the ORed combination of all error bits specified below:
-   Macro name                   Bit number      Error
-   ----------                   ----------      -----
-   OCI_DATE_INVALID_DAY         0x1             Bad day
-   OCI_DATE_DAY_BELOW_VALID     0x2             Bad DAy Low/high bit (1=low)
-   OCI_DATE_INVALID_MONTH       0x4             Bad MOnth
-   OCI_DATE_MONTH_BELOW_VALID   0x8             Bad MOnth Low/high bit (1=low)
-   OCI_DATE_INVALID_YEAR        0x10            Bad YeaR
-   OCI_DATE_YEAR_BELOW_VALID    0x20            Bad YeaR Low/high bit (1=low)
-   OCI_DATE_INVALID_HOUR        0x40            Bad HouR
-   OCI_DATE_HOUR_BELOW_VALID    0x80            Bad HouR Low/high bit (1=low)
-   OCI_DATE_INVALID_MINUTE      0x100           Bad MiNute
-   OCI_DATE_MINUTE_BELOW_VALID	0x200           Bad MiNute Low/high bit (1=low)
-   OCI_DATE_INVALID_SECOND      0x400           Bad SeCond
-   OCI_DATE_SECOND_BELOW_VALID  0x800           bad second Low/high bit (1=low)
-   OCI_DATE_DAY_MISSING_FROM_1582 0x1000        Day is one of those "missing"
-                                                from 1582
-   OCI_DATE_YEAR_ZERO           0x2000          Year may not equal zero
-   OCI_DATE_INVALID_TIMEZONE    0x4000          Bad Timezone
-   OCI_DATE_INVALID_FORMAT      0x8000          Bad date format input
-
-   So, for example, if the date passed in was 2/0/1990 25:61:10 in
-   (month/day/year hours:minutes:seconds format), the error returned
-   would be OCI_DATE_INVALID_DAY | OCI_DATE_DAY_BELOW_VALID |
-   OCI_DATE_INVALID_HOUR | OCI_DATE_INVALID_MINUTE
-
-DESCRIPTION:
-  	Check if the given date is valid.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-  	  'date' and 'valid' pointers are NULL pointers
-
-------------------------------- OCIDateTimeCompare----------------------------
-sword OCIDateTimeCompare(dvoid *hndl, OCIError *err, CONST OCIDateTime *date1, 
-                     CONST OCIDateTime *date2,  sword *result );
-NAME: OCIDateTimeCompare - OCIDateTime CoMPare dates
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-date1, date2 (IN) - dates to be compared
-result (OUT) - comparison result, 0 if equal, -1 if date1 < date2, 
-  		1 if date1 > date2
-DESCRIPTION:
-The function OCIDateCompare compares two dates. It returns -1 if 
-date1 is smaller than date2, 0 if they are equal, and 1 if date1 is 
-greater than date2.
-RETURNS:
-       OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-  	  invalid date
-	  input dates are not mutually comparable
-
-------------------------------OCIDateTimeConvert----------------------
-sword OCIDateTimeConvert(dvoid *hndl, OCIError *err, OCIDateTime *indate, 
-				OCIDateTime *outdate);
-NAME: OCIDateTimeConvert - Conversion between different DATETIME types
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-indate (IN) - pointer to input date
-outdate (OUT) - pointer to output datetime 
-DESCRIPTION: Converts one datetime type to another. The result type is
-       the type of the 'outdate' descriptor.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-	OCI_ERROR if
-	    conversion not possible.
-   
----------------------------- OCIDateTimeFromText-----------------------
-sword OCIDateTimeFromText(dvoid *hndl, OCIError *err, CONST OraText *date_str, 
-             size_t d_str_length, CONST OraText *fmt, ub1 fmt_length,
-             CONST OraText *lang_name, size_t lang_length, OCIDateTime *date );
-NAME: OCIDateTimeFromText - OCIDateTime convert String FROM Date
-PARAMETERS:
-hndl (IN) - Session/Env handle. If Session Handle is passed, the 
-		    conversion takes place in session NLS_LANGUAGE and
-		    session NLS_CALENDAR, otherwise the default is used.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-date_str (IN) - input string to be converted to Oracle date
-d_str_length (IN) - size of the input string, if the length is -1
-  		then 'date_str' is treated as a null terminated  string
-fmt (IN) - conversion format; if 'fmt' is a null pointer, then
-                the string is expected to be in the default format for
-		the datetime type.
-fmt_length (IN) - length of the 'fmt' parameter
-lang_name (IN) - language in which the names and abbreviations of
-  	        days and months are specified, if null i.e. (OraText *)0,
-  		the default language of session is used, 
-lang_length (IN) - length of the 'lang_name' parameter
-date (OUT) - given string converted to date
-DESCRIPTION:
-  	Converts the given string to Oracle datetime type set in the 
-        OCIDateTime descriptor according to the specified format. Refer to 
-        "TO_DATE" conversion function described in "Oracle SQL Language 
-        Reference Manual" for a description of format.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-  	  invalid format
-  	  unknown language
-  	  invalid input string
-
---------------------------- OCIDateTimeGetDate-------------------------
-sword OCIDateTimeGetDate(dvoid *hndl, OCIError *err,  CONST OCIDateTime *date, 
-	                   sb2 *year, ub1 *month, ub1 *day );
-NAME: OCIDateTimeGetDate - OCIDateTime Get Date (year, month, day)  
-				portion of DATETIME. 
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - Pointer to OCIDateTime 
-year      (OUT) - year value
-month     (OUT) - month value
-day       (OUT) - day value
-
---------------------------- OCIDateTimeGetTime ------------------------
-sword OCIDateTimeGetTime(dvoid *hndl, OCIError *err, OCIDateTime *datetime,
-		 ub1 *hour, ub1 *minute, ub1 *sec, ub4 *fsec);
-NAME: OCIDateTimeGetTime - OCIDateTime Get Time (hour, min, second, 
-			fractional second)  of DATETIME. 
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - Pointer to OCIDateTime 
-hour      (OUT) - hour value
-minute       (OUT) - minute value
-sec       (OUT) - second value
-fsec      (OUT) - Fractional Second value
-
---------------------------- OCIDateTimeGetTimeZoneOffset ----------------------
-sword OCIDateTimeGetTimeZoneOffset(dvoid *hndl,OCIError *err,CONST 
-              OCIDateTime *datetime,sb1 *hour,sb1  *minute);
-
-NAME: OCIDateTimeGetTimeZoneOffset - OCIDateTime Get TimeZone (hour, minute)  
-                         portion of DATETIME. 
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - Pointer to OCIDateTime 
-hour      (OUT) - TimeZone Hour value
-minute     (OUT) - TimeZone Minute value
-
---------------------------- OCIDateTimeSysTimeStamp---------------------
-sword OCIDateTimeSysTimeStamp(dvoid *hndl, OCIError *err, 
-              OCIDateTime *sys_date );
- 
-NAME: OCIDateTimeSysTimeStamp - Returns system date/time as a TimeStamp with 
-                      timezone
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-sys_date (OUT) - Pointer to output timestamp
- 
-DESCRIPTION: 
-        Gets the system current date and time as a timestamp with timezone
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-
-
-------------------------------OCIDateTimeIntervalAdd----------------------
-sword OCIDateTimeIntervalAdd(dvoid *hndl, OCIError *err, OCIDateTime *datetime,
-	 OCIInterval *inter, OCIDateTime *outdatetime);
-NAME: OCIDateTimeIntervalAdd - Adds an interval to datetime
-PARAMETERS:
-hndl (IN) - Session/Env handle.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - pointer to input datetime
-inter    (IN) - pointer to interval 
-outdatetime (IN) - pointer to output datetime. The output datetime 
-				will be of same type as input datetime
-DESCRIPTION: 
-	Adds an interval to a datetime to produce a resulting datetime
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-	OCI_ERROR if:
-		resulting date is before Jan 1, -4713
-		resulting date is after Dec 31, 9999
-
-------------------------------OCIDateTimeIntervalSub----------------------
-sword OCIDateTimeIntervalSub(dvoid *hndl, OCIError *err, OCIDateTime *datetime,
-              OCIInterval *inter, OCIDateTime *outdatetime);
-NAME: OCIDateTimeIntervalSub - Subtracts an interval from a datetime
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-datetime (IN) - pointer to input datetime
-inter    (IN) - pointer to interval 
-outdatetime (IN) - pointer to output datetime. The output datetime 
-				will be of same type as input datetime
-DESCRIPTION: 
- 	Subtracts an interval from a datetime and stores the result in a
-     	datetime
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-	OCI_ERROR if:
-		resulting date is before Jan 1, -4713
-		resulting date is after Dec 31, 9999
-
---------------------------- OCIDateTimeConstruct-------------------------
-sword OCIDateTimeConstruct(dvoid  *hndl,OCIError *err,OCIDateTime *datetime,
-               sb2 year,ub1 month,ub1 day,ub1 hour,ub1 min,ub1 sec,ub4 fsec,
-               OraText  *timezone,size_t timezone_length);
-
-NAME: OCIDateTimeConstruct - Construct an OCIDateTime. Only the relevant
-       fields for the OCIDateTime descriptor types are used.
-PARAMETERS:
-        hndl (IN) - Session/Env handle. 
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-        datetime (IN) - Pointer to OCIDateTime 
-        year      (IN) - year value
-        month     (IN) - month value
-        day       (IN) - day value        
-        hour      (IN) - hour value
-        min       (IN) - minute value
-        sec       (IN) - second value
-        fsec      (IN) - Fractional Second value
-        timezone  (IN) - Timezone string
-        timezone_length(IN) - Length of timezone string
-
-DESCRIPTION:
-       Constructs a DateTime descriptor. The type of the datetime is the
-       type of the OCIDateTime descriptor. Only the relevant fields based
-       on the type are used. For Types with timezone, the date and time
-       fields are assumed to be in the local time of the specified timezone.
-       If timezone is not specified, then session default timezone is
-       assumed.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_ERROR if datetime is not valid.
-
-------------------------------OCIDateTimeSubtract-----------------------
-sword OCIDateTimeSubtract(dvoid *hndl, OCIError *err, OCIDateTime *indate1, 
-		OCIDateTime *indate2, OCIInterval *inter);
-NAME: OCIDateTimeSubtract - subtracts two datetimes to return an interval
-PARAMETERS:
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-indate1(IN) - pointer to subtrahend
-indate2(IN) - pointer to minuend
-inter  (OUT) - pointer to output interval
-DESCRIPTION: 
-	Takes two datetimes as input and stores their difference in an 
-        interval. The type of the interval is the type of the 'inter'
-        descriptor.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-	OCI_ERROR if
-	   datetimes are not comparable.
-
---------------------------- OCIDateTimeToText--------------------------
-sword OCIDateTimeToText(dvoid *hndl, OCIError *err, CONST OCIDateTime *date, 
-                        CONST OraText *fmt, ub1 fmt_length, ub1 fsprec, 
-                        CONST OraText *lang_name, size_t lang_length, 
-                        ub4 *buf_size, OraText *buf );
-NAME: OCIDateTimeToText - OCIDateTime convert date TO String 
-PARAMETERS:
-hndl (IN) - Session/Env handle. If Session Handle is passed, the 
-		    conversion takes place in session NLS_LANGUAGE and
-		    session NLS_CALENDAR, otherwise the default is used.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-date (IN) - Oracle datetime to be converted
-fmt (IN) - conversion format, if null string pointer (OraText*)0, then
-                the date is converted to a character string in the
-                default format for that type.
-fmt_length (IN) - length of the 'fmt' parameter
-fsprec (IN) - specifies the fractional second precision in which the
-               fractional seconds is returned.
-lang_name (IN) - specifies the language in which the names and 
-  	        abbreviations of months and days are returned;
-  	        default language of session is used if 'lang_name' 
-  		is null i.e. (OraText *)0
-lang_length (IN) - length of the 'nls_params' parameter
-buf_size (IN/OUT) - size of the buffer; size of the resulting string
-                is returned via this parameter
-buf (OUT) - buffer into which the converted string is placed
-DESCRIPTION:
-        Converts the given date to a string according to the specified format.
-        Refer to "TO_DATE" conversion function described in
-        "Oracle SQL Language Reference Manual" for a description of format
-        and NLS arguments. The converted null-terminated date string is
-        stored in the buffer 'buf'.
-RETURNS:
-        OCI_SUCCESS if the function completes successfully.
-        OCI_INVALID_HANDLE if 'err' is NULL.
-        OCI_ERROR if
-  	  buffer too small
-  	  invalid format
-  	  unknown language
-          overflow error
-
-----------------------------OCIDateTimeGetTimeZoneName------------------------
-sword OCIDateTimeGetTimeZoneName(dvoid *hndl, 
-                                 OCIError *err,
-                                 CONST OCIDateTime *datetime,
-                                 ub1 *buf,
-                                 ub4 *buflen);
-NAME OCIDateTimeGetTimeZoneName - OCI DateTime Get the Time Zone Name
-PARAMETERS:
-hndl (IN)      - Session/Env handle.
-err (IN/OUT)   - error handle. If there is an error, it is
-                 recorded in 'err' and this function returns OCI_ERROR.
-                 The error recorded in 'err' can be retrieved by calling
-                 OCIErrorGet().
-datetime (IN)   - Pointer to an OCIDateTime.
-buf (OUT)       - User allocated storage for name string.
-buflen (IN/OUT) - length of buf on input, length of name on out
-DESCRIPTION:
-        Returns either the timezone region name or the absolute hour and minute
-        offset. If the DateTime was created with a region id then the region 
-        name will be returned in the buf.  If the region id is zero, then the 
-        hour and minute offset is returned as "[-]HH:MM".
-RETURNS:
-       OCI_SUCCESS if the function completes successfully.
-       OCI_INVALID_HANDLE if 'err' is NULL.
-       OCI_ERROR if
-         buffer too small
-         error retrieving timezone data
-         invalid region 
-         invalid LdiDateTime type
-
----------------------------------OCIDateTimeToArray----------------------------
-sword OCIDateTimeToArray(dvoid *hndl, 
-                         OCIError *err,
-                         CONST OCIDateTime *datetime,
-                         CONST OCIInterval *reftz,
-                         ub1 *outarray,
-                         ub4 *len
-                         ub1 *fsprec);
-NAME OCIDateTimeToArray - OCI DateTime convert To Array format
-PARAMETERS:
-hndl (IN)      - Session/Env handle.
-err (IN/OUT)   - error handle. If there is an error, it is
-                 recorded in 'err' and this function returns OCI_ERROR.
-                 The error recorded in 'err' can be retrieved by calling
-                 OCIErrorGet().
-datetime (IN)   - Pointer to OCIDateTime to be converted.
-outarray (OUT)  - Result array storage
-len (OUT)        - pointer to  length of outarray.
-fsprec (IN)     - Number of fractional seconds digits.
-DESCRIPTION:
-        Returns an array representing the input DateTime descriptor.
-RETURNS:
-       OCI_SUCCESS if the function completes successfully.
-       OCI_INVALID_HANDLE if 'err' is NULL.
-       OCI_ERROR if
-         buffer too small
-         error retrieving timezone data
-         invalid region 
-         invalid LdiDateTime type
-
---------------------------------OCIDateTimeFromArray---------------------------
-sword OCIDateTimeFromArray(dvoid *hndl, 
-                         OCIError *err,
-                         ub1 *inarray,
-                         ub4 len
-                         ub1 type
-                         OCIDateTime *datetime,
-                         OCIInterval *reftz,
-                         ub1 fsprec);
-NAME OCIDateTimeFromArray - OCI DateTime convert From Array format
-PARAMETERS:
-hndl (IN)      - Session/Env handle.
-err (IN/OUT)   - error handle. If there is an error, it is
-                 recorded in 'err' and this function returns OCI_ERROR.
-                 The error recorded in 'err' can be retrieved by calling
-                 OCIErrorGet().
-inarray (IN)   - Pointer to input array representtion of DateTime
-len (IN)       - len of inarray.
-type (IN)      - One of SQLT_DATE, SQLT_TIME, SQLT_TIME_TZ, SQLT_TIMESTAMP,
-                 SQLT_TIMESTAMP_TZ, or SQLT_TIMESTAMP_LTZ.
-datetime (OUT) - Pointer to the result OCIDateTime.
-reftz (IN)     - timezone interval used with SQLT_TIMESTAMP_LTZ.
-fsprec (IN)    - fractionl seconds digits of precision (0-9).
-DESCRIPTION:
-        Returns a pointer to an OCIDateTime of type type converted from 
-        the inarray.
-RETURNS:
-       OCI_SUCCESS if the function completes successfully.
-       OCI_INVALID_HANDLE if 'err' is NULL.
-       OCI_ERROR if
-         buffer too small
-         error retrieving timezone data
-         invalid region 
-         invalid LdiDateTime type
-
-----------------------------------OCIRowidToChar-----------------------------
-Name
-OCIRowidToChar
-
-Purpose
-Converts physical/logical (universal) ROWID to chracter extended (Base 64) 
-representation into user provided buffer outbfp of length outbflp. After 
-execution outbflp contains amount of bytes converted.In case of truncation 
-error, outbflp contains required size to make this conversion successful
-and returns ORA-1405.
-
-Syntax
-sword OCIRowidToChar( OCIRowid *rowidDesc, 
-                      OraText *outbfp, 
-                      ub2 *outbflp, 
-                      OCIError *errhp)
-
-Comments
-After this conversion, ROWID in character format can be bound using
-OCIBindByPos or OCIBindByName call and used to query a row at a
-desired ROWID. 
-
-Parameters
-rowidDesc (IN)   - rowid DESCriptor which is allocated from OCIDescritorAlloc
-                   and populated by a prior SQL statement execution
-outbfp (OUT)     - pointer to the buffer where converted rowid in character 
-                   representation is stored after successful execution.
-outbflp (IN/OUT) - pointer to output buffer length variable.
-                   Before execution (IN mode) *outbflp contains the size of
-                   outbfp, after execution (OUT mode) *outbflp contains amount
-                   of bytes converted. In an event of truncation during 
-                   conversion *outbflp contains the required length to make
-                   conversion successful.
-errhp (IN/OUT)   - an error handle which can be passed to OCIErrorGet() for
-                   diagnostic information in the event of an error.
-
-------------------------------OCIDefineArrayOfStruct--------------------------
-
-
-OCIDefineArrayOfStruct()
-Name
-OCI Define for Array of Structures
-Purpose
-This call specifies additional attributes necessary for a static array define.
-Syntax
-sword OCIDefineArrayOfStruct ( OCIDefine   *defnp,
-                             OCIError    *errhp,
-                             ub4         pvskip, 
-                             ub4         indskip, 
-                             ub4         rlskip,
-                             ub4         rcskip );
-Comments
-This call specifies additional attributes necessary for an array define, used in 
-an array of structures (multi-row, multi-column) fetch.
-For more information about skip parameters, see the section "Skip Parameters" 
-on page 4-17.
-Parameters
-defnp (IN) - the handle to the define structure which was returned by a call 
-to OCIDefineByPos().
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-pvskip (IN) - skip parameter for the next data value.
-indskip (IN) - skip parameter for the next indicator location. 
-rlskip (IN) - skip parameter for the next return length value.
-rcskip (IN) - skip parameter for the next return code.
-Related Functions
-OCIAttrGet()
-
-
-
-
-
-OCIDefineByPos()
-Name
-OCI Define By Position
-Purpose
-Associates an item in a select-list with the type and output data buffer. 
-Syntax
-sb4 OCIDefineByPos ( 
-              OCIStmt     *stmtp, 
-              OCIDefine   **defnp,
-              OCIError    *errhp,
-              ub4         position,
-              dvoid       *valuep,
-              sb4         value_sz,
-              ub2         dty,
-              dvoid       *indp,
-              ub2         *rlenp,
-              ub2         *rcodep,
-              ub4         mode );
-Comments
-This call defines an output buffer which will receive data retreived from 
-Oracle. The define is a local step which is necessary when a SELECT statement 
-returns data to your OCI application.
-This call also implicitly allocates the define handle for the select-list item.
-Defining attributes of a column for a fetch is done in one or more calls. The 
-first call is to OCIDefineByPos(), which defines the minimal attributes 
-required to specify the fetch. 
-This call takes as a parameter a define handle, which must have been 
-previously allocated with a call to OCIHandleAlloc().
-Following the call to OCIDefineByPos() additional define calls may be 
-necessary for certain data types or fetch modes:
-A call to OCIDefineArrayOfStruct() is necessary to set up skip parameters 
-for an array fetch of multiple columns.
-A call to OCIDefineObject() is necessary to set up the appropriate 
-attributes of a named data type fetch. In this case the data buffer pointer 
-in ocidefn() is ignored.
-Both OCIDefineArrayOfStruct() and OCIDefineObject() must be called 
-after ocidefn() in order to fetch multiple rows with a column of named 
-data types.
-For a LOB define, the buffer pointer must be a lob locator of type 
-OCILobLocator , allocated by the OCIDescAlloc() call. LOB locators, and not 
-LOB values, are always returned for a LOB column. LOB values can then be 
-fetched using OCI LOB calls on the fetched locator.
-For NCHAR (fixed and varying length), the buffer pointer must point to an 
-array of bytes sufficient for holding the required NCHAR characters. 
-Nested table columns are defined and fetched like any other named data type. 
-If the mode parameter is this call is set to OCI_DYNAMIC_FETCH, the client 
-application can fetch data dynamically at runtime.
-Runtime data can be provided in one of two ways:
-callbacks using a user-defined function which must be registered with a 
-subsequent call to OCIDefineDynamic(). When the client library needs a 
-buffer to return the fetched data, the callback will be invoked and the 
-runtime buffers provided will return a piece or the whole data. 
-a polling mechanism using calls supplied by the OCI. This mode is 
-assumed if no callbacks are defined. In this case, the fetch call returns the 
-OCI_NEED_DATA error code, and a piecewise polling method is used 
-to provide the data.
-Related Functions: For more information about using the 
-OCI_DYNAMIC_FETCH mode, see the section "Runtime Data 
-Allocation and Piecewise Operations" on page 5-16 of Volume 1..
-For more information about the define step, see the section "Defining" 
-on page 2-30.
-Parameters
-stmtp (IN) - a handle to the requested SQL query operation.
-defnp (IN/OUT) - a pointer to a pointer to a define handle which is implicitly 
-allocated by this call.  This handle is used to  store the define information 
-for this column.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-position (IN) - the position of this value in the select list. Positions are 
-1-based and are numbered from left to right. For example, in the SELECT 
-statement
-SELECT empno, ssn, mgrno FROM employees;
-empno is at position 1, ssn is at position 2, and mgrno is at position 3.
-valuep (IN/OUT) - a pointer to a buffer or an array of buffers of the type 
-specified in the dty parameter. A number of buffers can be specified when 
-results for more than one row are desired in a single fetch call.
-value_sz (IN) - the size of each valuep buffer in bytes. If the data is stored 
-internally in VARCHAR2 format, the number of characters desired, if different 
-from the buffer size in bytes, may be additionally specified by the using 
-OCIAttrSet(). 
-In an NLS conversion environment, a truncation error will be generated if the 
-number of bytes specified is insufficient to handle the number of characters 
-desired.
-dty (IN) - the data type. Named data type (SQLT_NTY) and REF (SQLT_REF) 
-are valid only if the environment has been intialized with in object mode. 
-indp - pointer to an indicator variable or array. For scalar data types, 
-pointer to sb2 or an array of sb2s. Ignored for named data types. For named 
-data types, a pointer to a named data type indicator structure or an array of 
-named data type indicator structures is associated by a subsequent 
-OCIDefineObject() call. 
-See the section "Indicator Variables" on page 2-43 for more information about 
-indicator variables.
-rlenp (IN/OUT) - pointer to array of length of data fetched. Each element in 
-rlenp is the length of the data in the corresponding element in the row after 
-the fetch. 
-rcodep (OUT) - pointer to array of column-level return codes
-mode (IN) - the valid modes are:
-OCI_DEFAULT. This is the default mode.
-OCI_DYNAMIC_FETCH. For applications requiring dynamically 
-allocated data at the time of fetch, this mode must be used. The user may 
-additionally call OCIDefineDynamic() to set up a callback function that 
-will be invoked to receive the dynamically allocated buffers and to set 
-up the memory allocate/free callbacks and the context for the callbacks. 
-valuep and value_sz are ignored in this mode. 
-Related Functions
-OCIDefineArrayOfStruct(), OCIDefineDynamic(), OCIDefineObject()
-
-
-
-
-OCIDefineDynamic()
-Name
-OCI Define Dynamic Fetch Attributes
-Purpose
-This call is used to set the additional attributes required if the 
-OCI_DYNAMIC_FETCH mode was selected in OCIDefineByPos(). 
-Syntax
-sword OCIDefineDynamic( OCIDefine   *defnp,
-                      OCIError    *errhp,
-                      dvoid       *octxp, 
-                      OCICallbackDefine (ocbfp)(
-                                  dvoid             *octxp,
-                                  OCIDefine         *defnp,
-                                  ub4               iter, 
-                                  dvoid             **bufpp,
-                                  ub4               **alenpp,
-                                  ub1               *piecep,
-                                  dvoid             **indpp,
-                                  ub2               **rcodep)  );
-Comments
-This call is used to set the additional attributes required if the 
-OCI_DYNAMIC_FETCH mode has been selected in a call to 
-OCIDefineByPos(). 
-When the OCI_DYNAMIC_FETCH mode is selected, buffers will be 
-dynamically allocated for REF, and named data type, values to receive the 
-data. The pointers to these buffers will be returned. 
-If OCI_DYNAMIC_FETCH mode was selected, and the call to 
-OCIDefineDynamic() is skipped, then the application can fetch data piecewise 
-using OCI calls.
-For more information about OCI_DYNAMIC_FETCH mode, see the section 
-"Runtime Data Allocation and Piecewise Operations" on page 5-16.
-Parameters
-defnp (IN/OUT) - the handle to a define structure returned by a call to 
-OCIDefineByPos().
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-octxp (IN) - points to a context for the callback function. 
-ocbfp (IN) - points to a callback function. This is invoked at runtime to get 
-a pointer to the buffer into which the fetched data or a piece of it will be 
-retreived. The callback also specifies the indicator, the return code and the 
-lengths of the data piece and indicator. The callback has the following 
-parameters:
-octxp (IN) - a context pointer passed as an argument to all the callback 
-functions.
-defnp (IN) - the define handle.
-iter (IN) - which row of this current fetch.
-bufpp (OUT) - returns a pointer to a buffer to store the column value, ie. 
-*bufp points to some appropriate storage for the column value.
-alenpp (OUT) - returns a pointer to the length of the buffer. *alenpp 
-contains the size of the buffer after return from callback. Gets set to 
-actual data size after fetch.
-piecep (IN/OUT) - returns a piece value, as follows:
-The IN value can be OCI_ONE_PIECE, OCI_FIRST_PIECE or 
-OCI_NEXT_PIECE.
-The OUT value can be OCI_ONE_PIECE if the IN value was 
-OCI_ONE_PIECE.
-The OUT value can be OCI_ONE_PIECE or OCI_FIRST_PIECE if 
-the IN value was OCI_FIRST_PIECE.
-The OUT value can only be OCI_NEXT_PIECE or 
-OCI_LAST_PIECE if the IN value was OCI_NEXT_PIECE. 
-indpp (IN) - indicator variable pointer
-rcodep (IN) - return code variable pointer
-Related Functions
-OCIAttrGet()
-OCIDefineObject()
-
-
-
-
-OCIDefineObject()
-Name
-OCI Define Named Data Type attributes
-Purpose
-Sets up additional attributes necessary for a Named Data Type define.
-Syntax
-sword OCIDefineObject ( OCIDefine       *defnp,
-                      OCIError        *errhp,
-                      CONST OCIType   *type,
-                      dvoid           **pgvpp, 
-                      ub4             *pvszsp, 
-                      dvoid           **indpp, 
-                      ub4             *indszp );
-Comments
-This call sets up additional attributes necessary for a Named Data Type define.An error will be returned if this function is called when the OCI environment 
-has been initialized in non-Object mode.
-This call takes as a paramter a type descriptor object (TDO) of datatype 
-OCIType for the named data type being defined.  The TDO can be retrieved 
-with a call to OCITypeByName().
-See the description of OCIInitialize() on page 13 - 43 for more information 
-about initializing the OCI process environment.
-Parameters
-defnp (IN/OUT) - a define handle previously allocated in a call to 
-OCIDefineByPos(). 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-type (IN, optional) - points to the Type Descriptor Object (TDO) which 
-describes the type of the program variable. Only used for program variables 
-of type SQLT_NTY. This parameter is optional, and may be passed as NULL 
-if it is not being used.
-pgvpp (IN/OUT) - points to a pointer to a program variable buffer. For an 
-array, pgvpp points to an array of pointers. Memory for the fetched named data 
-type instance(s) is dynamically allocated in the object cache. At the end of the 
-fetch when all the values have been received, pgvpp points to the pointer(s) to
-these newly allocated named data type instance(s). The application must call 
-OCIObjectMarkDel() to deallocate the named data type instance(s) when they 
-are no longer needed. 
-pvszsp (IN/OUT) - points to the size of the program variable. For an array, it 
-is an array of ub4s. On return points to the size(s) of unpickled fetched 
-values.
-indpp (IN/OUT) - points to a pointer to the program variable buffer 
-containing the parallel indicator structure. For an array, points to an array 
-of pointers. Memory is allocated to store the indicator structures in the 
-object cache. At the end of the fetch when all values have been received, 
-indpp points to the pointer(s) to these newly allocated indicator structure(s).
-indszp (IN/OUT) - points to the size(s) of the indicator structure program 
-variable. For an array, it is an array of ub4s. On return points to the size(s)
-of the unpickled fetched indicator values.
-Related Functions
-OCIAttrGet()
-
-
-
-OCIDescAlloc()
-Name
-OCI Get DESCriptor or lob locator
-Purpose
-Allocates storage to hold certain data types. The descriptors can be used as 
-bind or define variables.
-Syntax
-sword OCIDescAlloc ( CONST dvoid   *parenth,
-                   dvoid         **descpp, 
-                   ub4           type,
-                   size_t        xtramem_sz,
-                   dvoid         **usrmempp);
-Comments
-Returns a pointer to an allocated and initialized structure, corresponding to 
-the type specified in type. A non-NULL descriptor or LOB locator is returned 
-on success. No diagnostics are available on error.
-This call returns OCI_SUCCESS if successful, or OCI_INVALID_HANDLE if 
-an out-of-memory error occurs. 
-Parameters
-parenth (IN) - an environment handle. 
-descpp (OUT) - returns a descriptor or LOB locator of desired type. 
-type (IN) - specifies the type of descriptor or LOB locator to be allocated. 
-The specific types are:
-OCI_DTYPE_SNAP - specifies generation of snapshot descriptor of C 
-type - OCISnapshot
-OCI_DTYPE_LOB - specifies generation of a LOB data type locator of C 
-type - OCILobLocator
-OCI_DTYPE_RSET - specifies generation of a descriptor of C type 
-OCIResult that references a result set (a number of rows as a result of a 
-query). This descriptor is bound to a bind variable of data type 
-SQLT_RSET (result set). The descriptor has to be converted into a 
-statement handle using a function - OCIResultSetToStmt() - which can 
-then be passed to OCIDefineByPos() and OCIStmtFetch() to retrieve the 
-rows of the result set.
-OCI_DTYPE_ROWID - specifies generation of a ROWID descriptor of C 
-type OCIRowid.
-OCI_DTYPE_COMPLEXOBJECTCOMP - specifies generation of a 
-complex object retrieval descriptor of C type 
-OCIComplexObjectComp.
-xtramemsz (IN) - specifies an amount of user memory to be allocated for use 
-by the application. 
-usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz 
-allocated by the call for the user. 
-Related Functions
-OCIDescFree()
-
-
-
-
-OCIDescFree()
-Name
-OCI Free DESCriptor
-Purpose
-Deallocates a previously allocated descriptor.
-Syntax
-sword OCIDescFree ( dvoid    *descp,
-                  ub4      type);
-Comments
-This call frees up storage associated with the descriptor, corresponding to the
-type specified in type. Returns OCI_SUCCESS or OCI_INVALID_HANDLE. 
-All descriptors must be explicitly deallocated. OCI will not deallocate a 
-descriptor if the environment handle is deallocated.
-Parameters
-descp (IN) - an allocated descriptor. 
-type (IN) - specifies the type of storage to be freed. The specific types are: 
-OCI_DTYPE_SNAP - snapshot descriptor
-OCI_DTYPE_LOB - a LOB data type descriptor
-OCI_DTYPE_RSET - a descriptor that references a result set (a number 
-of rows as a result of a query).
-OCI_DTYPE_ROWID - a ROWID descriptor
-OCI_DTYPE_COMPLEXOBJECTCOMP - a complex object retrieval 
-descriptor
-Related Functions
-OCIDescAlloc()
-
-
-
-OCIDescribeAny()
-Name
-OCI DeSCribe Any
-Purpose
-Describes existing schema objects.
-Syntax
-sword OCIDescribeAny ( OCISvcCtx     *svchp,
-                     OCIError      *errhp,
-                     dvoid         *objptr,
-                     ub4           objnm_len,
-		     ub1           objptr_typ,
-                     ub1 	   info_level,
-		     ub1           objtype,
-                     OCIDesc       *dschp );
-Comments
-This is a generic describe call that describes existing schema objects: tables,
-views, synonyms, procedures, functions, packages, sequences, and types. As a 
-result of this call, the describe handle is populated with the object-specific 
-attributes which can be obtained through an OCIAttrGet() call.
-An OCIParamGet() on the describe handle returns a parameter descriptor for a 
-specified position. Parameter positions begin with 1. Calling OCIAttrGet() on 
-the parameter descriptor returns the specific attributes of a stored procedure 
-or function parameter or a table column descriptor as the case may be. 
-These subsequent calls do not need an extra round trip to the server because 
-the entire schema object description cached on the client side by 
-OCIDescribeAny(). Calling OCIAttrGet() on the describe handle can also return 
-the total number of positions.
-See the section "Describing" on page 2-33 for more information about describe 
-operations.
-Parameters
-TO BE UPDATED
-svchp (IN/OUT) - a service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-objptr (IN) - the name of the object (a null-terminated string) to be 
-described. Only procedure or function names are valid when connected to an 
-Oracle7 Server.
-objptr_len (IN) - the length of the string. Must be non-zero.
-objptr_typ (IN) - Must be OCI_OTYPE_NAME, OCI_OTYPE_REF, or OCI_OTYPE_PTR.
-info_level (IN) - reserved for future extensions. Pass OCI_DEFAULT.
-objtype (IN/OUT) - object type.
-dschp (IN/OUT) - a describe handle that is populated with describe 
-information about the object after the call.
-Related Functions
-OCIAttrGet()
-
-
-
-OCIEnvCreate()
-Name
-OCI ENVironment CREATE
-Purpose
-This function creates and initializes an environment for the rest of
-the OCI functions to work under.  This call is a replacement for both
-the OCIInitialize and OCIEnvInit calls.
-Syntax
-sword OCIEnvCreate  ( OCIEnv        **envhpp, 
-                      ub4           mode, 
-                      CONST dvoid   *ctxp, 
-                      CONST dvoid   *(*malocfp) 
-                                    (dvoid *ctxp, 
-                                        size_t size), 
-                      CONST dvoid   *(*ralocfp) 
-                                    (dvoid *ctxp, 
-                                       dvoid *memptr, 
-                                       size_t newsize), 
-                      CONST void    (*mfreefp) 
-                                    ( dvoid *ctxp, 
-                                       dvoid *memptr))
-                      size_t    xtramemsz,
-                      dvoid     **usrmempp );
- 
-Comments
-This call creates an environment for all the OCI calls using the modes
-specified by the user. This call can be used instead of the two calls
-OCIInitialize and OCIEnvInit. This function returns an environment handle
-which is then used by the remaining OCI functions. There can be multiple
-environments in OCI each with its own environment modes.  This function 
-also performs any process level initialization if required by any mode.
-For example if the user wants to initialize an environment as OCI_THREADED,
-then all libraries that are used by OCI are also initialized in the
-threaded mode. 
-
-This call should be invoked before anny other OCI call and should be used
-instead of the OCIInitialize and OCIEnvInit calls. This is the recommended
-call, although OCIInitialize and OCIEnvInit calls will still be supported
-for backward compatibility. 
- 
-envpp (OUT) - a pointer to a handle to the environment. 
-mode (IN) - specifies initialization of the mode. The valid modes are:
-OCI_DEFAULT - default mode.
-OCI_THREADED - threaded environment. In this mode, internal data 
-structures are protected from concurrent accesses by multiple threads. 
-OCI_OBJECT - will use navigational object interface. 
-ctxp (IN) - user defined context for the memory call back routines. 
-malocfp (IN) - user-defined memory allocation function. If mode is 
-OCI_THREADED, this memory allocation routine must be thread safe.
-ctxp - context pointer for the user-defined memory allocation function.
-size - size of memory to be allocated by the user-defined memory 
-allocation function
-ralocfp (IN) - user-defined memory re-allocation function. If mode is 
-OCI_THREADED, this memory allocation routine must be thread safe.
-ctxp - context pointer for the user-defined memory reallocation 
-function.
-memp - pointer to memory block
-newsize - new size of memory to be allocated
-mfreefp (IN) - user-defined memory free function. If mode is 
-OCI_THREADED, this memory free routine must be thread safe.
-ctxp - context pointer for the user-defined memory free function.
-memptr - pointer to memory to be freed
-xtramemsz (IN) - specifies the amount of user memory to be allocated. 
-usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz 
-allocated by the call for the user.
-
-Example
-
-Related Functions
-OCIInitialize, OCIEnvInit
-
-OCIEnvNlsCreate()
-Name
-OCI ENVironment CREATE with NLS info
-Purpose
-This function does almost everything OCIEnvCreate does, plus enabling setting
-of charset and ncharset programmatically, except OCI_UTF16 mode.
-Syntax
-sword OCIEnvNlsCreate(OCIEnv        **envhpp,
-                      ub4           mode,
-                      dvoid         *ctxp,
-                      dvoid         *(*malocfp)
-                                    (dvoid *ctxp,
-                                        size_t size),
-                      dvoid         *(*ralocfp)
-                                    (dvoid *ctxp,
-                                       dvoid *memptr,
-                                       size_t newsize),
-                      void          (*mfreefp)
-                                    (dvoid *ctxp,
-                                       dvoid *memptr),
-                      size_t        xtramemsz,
-                      dvoid         **usrmempp,
-                      ub2           charset,
-                      ub2           ncharset)
-Comments
-The charset and ncharset must be both zero or non-zero.
-The parameters have the same meaning as the ones in OCIEnvCreate().
-When charset or ncharset is non-zero, the corresponding character set will
-be used to replace the ones specified in NLS_LANG or NLS_NCHAR. Moreover,
-OCI_UTF16ID is allowed to be set as charset and ncharset.
-On the other hand, OCI_UTF16 mode is deprecated with this function. 
-Applications can achieve the same effects by setting 
-both charset and ncharset as OCI_UTF16ID.
-
-
-OCIEnvInit()
-Name
-OCI INITialize environment
-Purpose
-This call initializes the OCI environment handle.
-Syntax
-sword OCIEnvInit ( OCIEnv    **envp,
-                 ub4       mode,
-                 size_t    xtramemsz,
-                 dvoid     **usrmempp );
-Comments
-Initializes the OCI environment handle. No changes are done on an initialized 
-handle. If OCI_ERROR or OCI_SUCCESS_WITH_INFO is returned, the 
-environment handle can be used to obtain ORACLE specific errors and 
-diagnostics.
-This call is processed locally, without a server round-trip.
-Parameters
-envpp (OUT) - a pointer to a handle to the environment. 
-mode (IN) - specifies initialization of an environment mode. The only valid 
-mode is OCI_DEFAULT for default mode
-xtramemsz (IN) - specifies the amount of user memory to be allocated. 
-usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz 
-allocated by the call for the user.
-Example
-See the description of OCISessionBegin() on page 13-84 for an example showing 
-the use of OCIEnvInit(). 
-Related Functions
-
-
-
-
-OCIErrorGet()
-Name
-OCI Get Diagnostic Record
-Purpose
-Returns an error message in the buffer provided and an ORACLE error.
-Syntax
-sword OCIErrorGet ( dvoid      *hndlp, 
-                  ub4        recordno,
-                  OraText       *sqlstate,
-                  ub4        *errcodep, 
-                  OraText       *bufp,
-                  ub4        bufsiz,
-                  ub4        type );
-Comments
-Returns an error message in the buffer provided and an ORACLE error. 
-Currently does not support SQL state. This call can be called a multiple 
-number of times if there are more than one diagnostic record for an error.
-The error handle is originally allocated with a call to OCIHandleAlloc().
-Parameters
-hndlp (IN) - the error handle, in most cases, or the environment handle (for 
-errors on OCIEnvInit(), OCIHandleAlloc()).
-recordno (IN) - indicates the status record from which the application seeks 
-info. Starts from 1. 
-sqlstate (OUT) - Not supported in Version 8.0.
-errcodep (OUT) - an ORACLE Error is returned.
-bufp (OUT) - the error message text is returned.
-bufsiz (IN) - the size of the buffer provide to get the error message.
-type (IN) - the type of the handle.
-Related Functions
-OCIHandleAlloc()
-
-OCIExtractInit
-Name
-OCI Extract Initialize 
-Purpose
-This function initializes the parameter manager. 
-Syntax
-sword OCIExtractInit(dvoid *hndl, OCIError *err);
-Comments
-It must be called before calling any other parameter manager routine. The NLS 
-information is stored inside the parameter manager context and used in 
-subsequent calls to OCIExtract routines.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-Related Functions
-OCIExtractTerm()
-
-OCIExtractTerm
-Name
-OCI Extract Terminate
-Purpose
-This function releases all dynamically allocated storage and may perform 
-other internal bookkeeping functions.
-Syntax
-sword OCIExtractTerm(dvoid *hndl, OCIError *err);
-Comments
-It must be called when the parameter manager is no longer being used.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-Related Functions
-OCIExtractInit()
-
-OCIExtractReset
-Name
-OCI Extract Reset
-Purpose
-The memory currently used for parameter storage, key definition storage, and 
-parameter value lists is freed and the structure is reinitialized.
-Syntax
-sword OCIExtractReset(dvoid *hndl, OCIError *err);
-Comments
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-Related Functions
-
-OCIExtractSetNumKeys
-Name
-OCI Extract Set Number of Keys
-Purpose
-Informs the parameter manager of the number of keys that will be registered.
-Syntax
-sword OCIExtractSetNumKeys(dvoid *hndl, OCIError *err, uword numkeys);
-Comments
-This routine must be called prior to the first call of OCIExtractSetKey().  
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-numkeys (IN) - The number of keys that will be registered with 
-               OCIExtractSetKey().
-Related Functions
-OCIExtractSetKey()
-
-OCIExtractSetKey
-Name
-OCI Extract Set Key definition
-Purpose
-Registers information about a key with the parameter manager.
-Syntax
-sword OCIExtractSetKey(dvoid *hndl, OCIError *err, CONST OraText *name, 
-                       ub1 type, ub4 flag, CONST dvoid *defval,                                        CONST sb4 *intrange, CONST OraText *CONST *strlist);
-Comments
-This routine must be called after calling OCIExtractSetKey() and before 
-calling OCIExtractFromFile() or OCIExtractFromStr().  
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-name (IN) - The name of the key.
-type (IN) - The type of the key (OCI_EXTRACT_TYPE_INTEGER, 
-            OCI_EXTRACT_TYPE_OCINUM, OCI_EXTRACT_TYPE_STRING, or 
-            OCI_EXTRACT_TYPE_BOOLEAN).
-flag (IN) - Set to OCI_EXTRACT_MULTIPLE if the key can take multiple values 
-            or 0 otherwise.
-defval (IN) - Set to the default value for the key.  May be NULL if there is 
-               no default.  A string default must be a (text*) type, an 
-               integer default must be an (sb4*) type, and a boolean default 
-               must be a (ub1*) type.
-intrange (IN) - Starting and ending values for the allowable range of integer 
-                values.  May be NULL if the key is not an integer type or if 
-                all integer values are acceptable.
-strlist (IN) - List of all acceptable text strings for the key.  May be NULL 
-               if the key is not a string type or if all text values are 
-               acceptable.
-Related Functions
-OCIExtractSetNumKeys()
-
-OCIExtractFromFile
-Name
-OCI Extract parameters From File
-Purpose
-The keys and their values in the given file are processed. 
-Syntax
-sword OCIExtractFromFile(dvoid *hndl, OCIError *err, ub4 flag, 
-                         OraText *filename);
-Comments
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-flag (IN) - Zero or has one or more of the following bits set: 
-           OCI_EXTRACT_CASE_SENSITIVE, OCI_EXTRACT_UNIQUE_ABBREVS, or 
-           OCI_EXTRACT_APPEND_VALUES. 
-filename (IN) - Null-terminated filename string.
-Related Functions
-
-OCIExtractFromStr
-Name
-OCI Extract parameters From String
-Purpose
-The keys and their values in the given string are processed. 
-Syntax
-sword OCIExtractFromStr(dvoid *hndl, OCIError *err, ub4 flag, OraText *input);
-Comments
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-flag (IN) - Zero or has one or more of the following bits set: 
-           OCI_EXTRACT_CASE_SENSITIVE, OCI_EXTRACT_UNIQUE_ABBREVS, or 
-           OCI_EXTRACT_APPEND_VALUES. 
-input (IN) - Null-terminated input string.
-Related Functions
-
-OCIExtractToInt
-Name
-OCI Extract To Integer
-Purpose
-Gets the integer value for the specified key.
-Syntax
-sword OCIExtractToInt(dvoid *hndl, OCIError *err, OraText *keyname, uword valno, 
-                      sb4 *retval);
-Comments
-The valno'th value (starting with 0) is returned.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. 
-OCI_NO_DATA means that there is no valno'th value for this key.
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-keyname (IN) - Key name.
-valno (IN) - Which value to get for this key.
-retval (OUT) - The actual integer value.
-Related Functions
-
-OCIExtractToBool
-Name
-OCI Extract To Boolean
-Purpose
-Gets the boolean value for the specified key. 
-Syntax
-sword OCIExtractToBool(dvoid *hndl, OCIError *err, OraText *keyname, 
-                       uword valno, ub1 *retval);
-Comments
-The valno'th value (starting with 0) is returned.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. 
-OCI_NO_DATA means that there is no valno'th value for this key.
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-keyname (IN) - Key name.
-valno (IN) - Which value to get for this key.
-retval (OUT) - The actual boolean value.
-Related Functions
-
-OCIExtractToStr
-Name
-OCI Extract To String
-Purpose
-Gets the string value for the specified key.
-Syntax
-sword OCIExtractToStr(dvoid *hndl, OCIError *err, OraText *keyname, 
-                      uword valno, OraText *retval, uword buflen);
-Comments
-The valno'th value (starting with 0) is returned.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. 
-OCI_NO_DATA means that there is no valno'th value for this key.
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-keyname (IN) - Key name.
-valno (IN) - Which value to get for this key.
-retval (OUT) - The actual null-terminated string value.
-buflen (IN) - The length of the buffer for retval.
-Related Functions
-
-Note: The following OCIExtract functions are unavailable in this release
-
-OCIExtractToOCINum
-Name
-OCI Extract To OCI Number
-Purpose
-Gets the OCINumber value for the specified key.
-Syntax
-sword OCIExtractToOCINum(dvoid *hndl, OCIError *err, OraText *keyname, 
-                         uword valno, OCINumber *retval);
-Comments
-The valno'th value (starting with 0) is returned.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. 
-OCI_NO_DATA means that there is no valno'th value for this key.
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-keyname (IN) - Key name.
-valno (IN) - Which value to get for this key.
-retval (OUT) - The actual OCINumber value.
-Related Functions
-
-OCIExtractToList
-Name
-OCI Extract To parameter List
-Purpose
-Generates a list of parameters from the parameter structures that are stored 
-in memory. 
-Syntax
-sword OCIExtractToList(dvoid *hndl, OCIError *err, uword *numkeys);
-Comments
-Must be called before OCIExtractValues() is called.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-numkeys (OUT) - Number of distinct keys stored in memory.
-Related Functions
-OCIExtractFromList()
-
-OCIExtractFromList
-Name
-OCI Extract From parameter List
-Purpose
-Generates a list of values for the a parameter in the parameter list.
-Syntax
-sword OCIExtractFromList(dvoid *hndl, OCIError *err, uword index, OraText *name, 
-                         ub1 *type, uword *numvals, dvoid ***values);
-Comments
-Parameters are specified by an index. OCIExtractToList() must be called prior 
-to calling this routine to generate the parameter list from the parameter 
-structures that are stored in memory. 
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN) - The OCI environment or session handle.
-err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-               err and this function returns OCI_ERROR. Diagnostic information 
-               can be obtained by calling OCIErrorGet().
-name (OUT) - Name of the key for the current parameter.
-type (OUT) - Type of the current parameter (OCI_EXTRACT_TYPE_STRING, 
-             OCI_EXTRACT_TYPE_INTEGER, OCI_EXTRACT_TYPE_OCINUM, or 
-             OCI_EXTRACT_TYPE_BOOLEAN)
-numvals (OUT) - Number of values for this parameter.
-values (OUT) - The values for this parameter.
-Related Functions
-OCIExtractToList()
-
-
-************************  OCIFileClose() ***********************************
- 
-Name
- OCIFileClose - Oracle Call Interface FILE i/o CLOSE
-
-Purpose
- Close a previously opened file.
-
-Syntax
- sword OCIFileClose ( dvoid             *hndl, 
-             	      OCIError          *err,
-                      OCIFileObject     *filep )
-
-Comments
- This function will close a previously opened file. If the function succeeds
- then OCI_SUCCESS will be returned, else OCI_ERROR. 
- 
-Parameters
- hndl  (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle
- filep (IN) - the OCIFile file object
-
-Related Functions
- OCIFileOpen.  
-
-
-
-********************* OCIFileExists() **************************************
-
-Name
- OCIFileExists - Oracle Call Interface FILE i/o EXIST
-
-Purpose
- Check to see if the file exists.
-
-Syntax
- sword OCIFileExists ( dvoid           *hndl, 
-            	      OCIError         *err, 
-                      OraText          *filename,
-                      OraText          *path,
-                      ub1              *flag )
-
-Comments
- This function will set the flag to TRUE if the file exists else it will
- be set to FALSE.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR. 
-
-Parameters
- hndl(IN) - OCI environment or session handle
- err(OUT) - OCI error handle
- filename(IN) - filename
- path(IN) - path of the file
- flag(OUT) - whether the file exists or not
-
-Related Functions.
- None.
-     
-
- **************************** OCIFileFlush() ******************************
-
-
-Name
- OCIFileFlush - Oracle Call Interface File i/o FLUSH
-
-Purpose
- Flush the buffers associated with the file to the disk.
-
-Syntax
- sword OCIFileFlush ( dvoid             *hndl, 
-             	      OCIError          *err,
-                      OCIFileObject     *filep )
-
-Comments
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters 
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle
- filep (IN) - the OCIFile file object
-
-Related Functions
- OCIFileOpen, OCIFileWrite
-
-
-
- *************************** OCIFileGetLength() ****************************
-
-Name
- OCIFileGetLength - Oracle Call Interface FILE i/o GET file LENGTH
-
-Purpose
- Get the length of a file.
-
-Syntax
- OCIFileGetLength(dvoid           *hndl, 
-	          OCIError        *err,
-                  OraText         *filename,
-                  OraText         *path,
-                  ubig_ora        *lenp )
-
-Comments
- The length of the file will be returned in lenp.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
- 
-Parameters
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filename (IN) - file name.
- path (IN) - path of the file.
- lenp (OUT) - On output, it is the length of the file in bytes.
- is the number of bytes in the file.
-
-Related Functions
- None.
-
-
-
-******************************** OCIFileInit() *****************************
-   
-Name
- OCIFileInit - Oracle Call Interface FILE i/o INITialize
-
-Purpose
- Initialize the OCI File I/O package and create the OCIFile context.
-
-Syntax
- sword OCIFileInit ( dvoid *hndl, 
-                     OCIError *err)
-
-Comments
- This function should be called before any of the OCIFile functions are
- used.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
- 
-Parameters
- hndl(IN) - OCI environment or session handle.
- err(OUT) - OCI error structure.
-
-Related Functions
- OCIFileTerm
-     
-
-
-********************************* OCIFileOpen() *****************************
-
-Name
- OCIFileOpen - Oracle Call Interface File i/o OPEN
-
-Purpose
-     Open a file.
-
-Syntax
- sword OCIFileOpen ( dvoid               *hndl, 
-	             OCIError            *err,
-                     OCIFileObject      **filep,
-                     OraText             *filename,
-                     OraText             *path,
-                     ub4                  mode,
-                     ub4                  create, 
-                     ub4                  type )
-
-Comments
- OCIFileOpen returns a handle to the open file in filep if the file is
- successfully opened. 
- If one wants to use the standard file objects (stdin, stdout & stderr)
- then OCIFileOpen whould be called with the type filed containing the 
- appropriate type (see the parameter type). If any of the standard files 
- are specified then filename, path, mode and create are ignored.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters
- hndl (OUT) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filep (OUT) - the file object to be returned.
- filename (IN) - file name (NULL terminated string).
- path (IN) - path of the file (NULL terminated string).
- mode - mode in which to open the file (valid modes are OCI_FILE_READONLY,
- OCI_FILE_WRITEONLY, OCI_FILE_READ_WRITE).
- create - should the file be created if it does not exist. Valid values
- are: 
-     OCI_FILE_TRUNCATE - create a file regardless of whether or not it exists. 
-                        If the file already exists overwrite it.
-     OCI_FILE_EXIST - open it if it exists, else fail.
-     OCI_FILE_EXCL - fail if the file exists, else create.
-     OCI_FILE_CREATE - open the file if it exists, and create it if it doesn't.
-     OCI_FILE_APPEND - set the file pointer to the end of the file prior to 
-                      writing(this flag can be OR'ed with OCI_FILE_EXIST or
-                      OCI_FILE_CREATE).
-type - file type. Valid values are OCI_FILE_TEXT, OCI_FILE_BIN, 
-       OCI_FILE_STDIN, OCI_FILE_STDOUT and OCI_FILE_STDERR.
-       If any of the standard files are specified then filename, path, mode
-       and create are ignored.
-
-Related Functions.
- OCIFileClose
-
-
-
-************************** OCIFileRead() ************************************
-   
-Name
- OCIFileRead - Oracle Call Interface FILE i/o READ
-
-Purpose
- Read from a file into a buffer.
-
-Syntax
- sword OCIFileRead ( dvoid            *hndl, 
-          	     OCIError         *err,
-                     OCIFileObject    *filep,
-                     dvoid            *bufp,
-                     ub4               bufl,
-                     ub4              *bytesread )
-
-Comments
- Upto bufl bytes from the file will be read into bufp. The user should
- allocate memory for the buffer.
- The number of bytes read would be in bytesread.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filep (IN/OUT) - a File Object that uniquely references the file.
- bufp (IN) - the pointer to a buffer into which the data will be read. The 
- length of the allocated memory is assumed to be bufl. 
- bufl - the length of the buffer in bytes. 
- bytesread (OUT) - the number of bytes read.
-
-Related Functions
- OCIFileOpen, OCIFileSeek, OCIFileWrite
-
-
-
-****************************** OCIFileSeek() ******************************
-
-Name
- OCIFileSeek - Oracle Call Interface FILE i/o SEEK
-
-Purpose
- Perfom a seek to a byte position.
-
-Syntax
- sword OCIFileSeek ( dvoid           *hndl, 
-        	     OCIError        *err,  
-                     OCIFileObject   *filep,
-                     uword            origin,
-                     ubig_ora         offset,
-                     sb1              dir)
-
-Comments
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filep (IN/OUT) - a file handle that uniquely references the file.
- origin - The starting point we want to seek from. NOTE: The starting 
- point may be OCI_FILE_SEEK_BEGINNING (beginning), OCI_FILE_SEEK_CURRENT 
- (current position), or OCI_FILE_SEEK_END (end of file). 
- offset - The number of bytes from the origin we want to start reading from. 
- dir - The direction we want to go from the origin. NOTE: The direction 
- can be either OCI_FILE_FORWARD or OCI_FILE_BACKWARD. 
- 
-Related Function
- OCIFileOpen, OCIFileRead, OCIFileWrite
-
-
-
-*************************** OCIFileTerm() **********************************
-
-Name
- OCIFileTerm - Oracle Call Interface FILE i/o TERMinate
-
-Purpose
- Terminate the OCI File I/O package and destroy the OCI File context.
-
-Syntax
- sword OCIFileTerm ( dvoid *hndl, 
-                     OCIError *err )
-
-Comments
- After this function has been called no OCIFile function should be used.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
- 
-Parameters
- hndl(IN) - OCI environment or session handle.
- err(OUT) - OCI error structure. 
-  
-Related Functions 
- OCIFileInit   
- 
-
-********************************* OCIFileWrite() **************************** 
-
-Name 
- OCIFileWrite - Oracle Call Interface FILE i/o WRITE
-
-Purpose
-  Write data from buffer into a file.
-
-Syntax
- sword OCIFileWrite ( dvoid            *hndl, 
-            	      OCIError         *err,  
-                      OCIFileObject    *filep,
-                      dvoid            *bufp, 
-                      ub4               buflen
-                      ub4              *byteswritten )
-
-Comments
- The number of bytes written will be in *byteswritten.
- The function will return OCI_ERROR if any error is encountered, else
- it will return OCI_ERROR.
-
-Parameters
- hndl (IN) - the OCI environment or session handle.
- err (OUT) - the OCI error handle.  If  there is an error, it is recorded 
- in err and this function returns OCI_ERROR.  Diagnostic information can be 
- obtained by calling OCIErrorGet().
- filep (IN/OUT) - a file handle that uniquely references the file.
- bufp (IN) - the pointer to a buffer from which the data will be written. 
- The length of the allocated memory is assumed to be the value passed
- in bufl. 
- bufl - the length of the buffer in bytes.
- byteswritten (OUT) - the number of bytes written.
- 
-Related Functions
- OCIFileOpen, OCIFileSeek, OCIFileRead 
-
-
-
-
-
-OCIHandleAlloc() 
-Name
-OCI Get HaNDLe
-Purpose
-This call returns a pointer to an allocated and initialized handle.
-Syntax
-sword OCIHandleAlloc ( CONST dvoid   *parenth,
-                     dvoid         **hndlpp, 
-                     ub4           type, 
-                     size_t        xtramem_sz,
-                     dvoid         **usrmempp);
-Comments
-Returns a pointer to an allocated and initialized structure, corresponding to 
-the type specified in type. A non-NULL handle is returned on success. Bind 
-handle and define handles are allocated with respect to a statement handle. All
-other handles are allocated with respect to an environment handle which is 
-passed in as a parent handle.
-No diagnostics are available on error. This call returns OCI_SUCCESS if 
-successful, or OCI_INVALID_HANDLE if an out-of-memory error occurs.
-Handles must be allocated using OCIHandleAlloc() before they can be passed 
-into an OCI call.
-Parameters
-parenth (IN) - an environment or a statement handle. 
-hndlpp (OUT) - returns a handle to a handle type. 
-type (IN) - specifies the type of handle to be allocated. The specific types 
-are: 
-OCI_HTYPE_ERROR - specifies generation of an error report handle of 
-C type OCIError
-OCI_HTYPE_SVCCTX - specifies generation of a service context handle 
-of C type OCISvcCtx
-OCI_HTYPE_STMT - specifies generation of a statement (application 
-request) handle of C type OCIStmt
-OCI_HTYPE_BIND - specifies generation of a bind information handle 
-of C type OCIBind
-OCI_HTYPE_DEFINE - specifies generation of a column definition 
-handle of C type OCIDefine
-OCI_HTYPE_DESCRIBE  - specifies generation of a select list 
-description handle of C type OCIDesc
-OCI_HTYPE_SERVER - specifies generation of a server context handle 
-of C type OCIServer
-OCI_HTYPE_SESSION - specifies generation of an authentication 
-context handle of C type OCISession
-OCI_HTYPE_TRANS - specifies generation of a transaction context
-handle of C type OCITrans
-OCI_HTYPE_COMPLEXOBJECT - specifies generation of a complex 
-object retrieval handle of C type OCIComplexObject
-OCI_HTYPE_SECURITY - specifies generation of a security handle of C 
-type OCISecurity
-xtramem_sz (IN) - specifies an amount of user memory to be allocated.
-usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz 
-allocated by the call for the user. 
-Related Functions
-OCIHandleFree()
-
-
-
-OCIHandleFree()
-Name
-OCI Free HaNDLe
-Purpose
-This call explicitly deallocates a handle.
-Syntax
-sword OCIHandleFree ( dvoid     *hndlp,
-                    ub4       type);
-Comments
-This call frees up storage associated with a handle, corresponding to the type 
-specified in the type parameter.
-This call returns either OCI_SUCCESS or OCI_INVALID_HANDLE.
-All handles must be explicitly deallocated. OCI will not deallocate a child 
-handle if the parent is deallocated.
-Parameters
-hndlp (IN) - an opaque pointer to some storage.
-type (IN) - specifies the type of storage to be allocated. The specific types are:
-OCI_HTYPE_ENV - an environment handle
-OCI_HTYPE_ERROR - an error report handle
-OCI_HTYPE_SVCCTX - a service context handle
-OCI_HTYPE_STMT - a statement (application request) handle
-OCI_HTYPE_BIND - a bind information handle
-OCI_HTYPE_DEFINE - a column definition handle
-OCI_HTYPE_DESCRIBE  - a select list description handle
-OCI_HTYPE_SERVER - a server handle
-OCI_HTYPE_SESSION - a user authentication handle
-OCI_HTYPE_TRANS - a transaction handle
-OCI_HTYPE_COMPLEXOBJECT - a complex object retrieval handle
-OCI_HTYPE_SECURITY - a security handle
-Related Functions
-OCIHandleAlloc()
-
-
-
-
-OCIInitialize()
-Name
-OCI Process Initialize
-Purpose
-Initializes the OCI process environment.
-Syntax
-sword OCIInitialize ( ub4           mode,
-                    CONST dvoid   *ctxp, 
-                    CONST dvoid   *(*malocfp) 
-                                  ( dvoid *ctxp,
-                                    size_t size ),
-                    CONST dvoid   *(*ralocfp)
-                                  ( dvoid *ctxp,
-                                    dvoid *memp,
-                                    size_t newsize ),
-                    CONST void    (*mfreefp)
-                                  ( dvoid *ctxp,
-                                    dvoid *memptr ));
-Comments
-This call initializes the OCI process environment.
-OCIInitialize() must be invoked before any other OCI call. 
-Parameters
-mode (IN) - specifies initialization of the mode. The valid modes are:
-OCI_DEFAULT - default mode.
-OCI_THREADED - threaded environment. In this mode, internal data 
-structures are protected from concurrent accesses by multiple threads. 
-OCI_OBJECT - will use navigational object interface. 
-ctxp (IN) - user defined context for the memory call back routines. 
-malocfp (IN) - user-defined memory allocation function. If mode is 
-OCI_THREADED, this memory allocation routine must be thread safe.
-ctxp - context pointer for the user-defined memory allocation function.
-size - size of memory to be allocated by the user-defined memory 
-allocation function
-ralocfp (IN) - user-defined memory re-allocation function. If mode is 
-OCI_THREADED, this memory allocation routine must be thread safe.
-ctxp - context pointer for the user-defined memory reallocation 
-function.
-memp - pointer to memory block
-newsize - new size of memory to be allocated
-mfreefp (IN) - user-defined memory free function. If mode is 
-OCI_THREADED, this memory free routine must be thread safe.
-ctxp - context pointer for the user-defined memory free function.
-memptr - pointer to memory to be freed
-Example
-See the description of OCIStmtPrepare() on page 13-96 for an example showing 
-the use of OCIInitialize().
-Related Functions
-
---------------------------------OCITerminate------------------------------------
-
-OCITerminate()
-Name
-OCI process Terminate
-Purpose
-Do cleanup before process termination
-Syntax
-sword OCITerminate (ub4 mode);
-
-Comments
-This call performs  OCI related clean up before the OCI process terminates.
-If the process is running in shared mode then the OCI process is disconnected
-from the shared memory subsystem.
-
-OCITerminate() should be the last OCI call in any process.
-
-Parameters
-mode (IN) - specifies different termination modes.
-
-OCI_DEFAULT - default mode.
-
-Example
-
-Related Functions
-OCIInitialize()
-
----------------------- OCIIntervalAssign --------------------------------- 
-sword OCIIntervalAssign(dvoid *hndl, OCIError *err, 
-                    CONST OCIInterval *inpinter, OCIInterval *outinter );
-
-  DESCRIPTION
-    Copies one interval to another to create a replica
-  PARAMETERS
-     hndl (IN) - Session/Env handle.
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  inpinter - Input Interval 
-    (OUT) outinter - Output Interval 
-  RETURNS
-     OCI_INVALID_HANDLE if 'err' is NULL.
-     OCI_SUCCESS otherwise
-
- ---------------------- OCIIntervalCheck ------------------------------------ 
-sword OCIIntervalCheck(dvoid *hndl, OCIError *err, CONST OCIInterval *interval,
-			 ub4 *valid );
-
-  DESCRIPTION
-    Checks the validity of an interval
-  PARAMETERS
-     hndl (IN) - Session/Env handle.
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  interval - Interval to be checked 
-    (OUT) valid     - Zero if the interval is valid, else returns an Ored
-	combination of the following codes.
-
-   Macro name                   Bit number      Error
-   ----------                   ----------      -----
-   OCI_INTER_INVALID_DAY         0x1           Bad day
-   OCI_INTER_DAY_BELOW_VALID     0x2           Bad DAy Low/high bit (1=low)
-   OCI_INTER_INVALID_MONTH       0x4           Bad MOnth
-   OCI_INTER_MONTH_BELOW_VALID   0x8           Bad MOnth Low/high bit (1=low)
-   OCI_INTER_INVALID_YEAR        0x10          Bad YeaR
-   OCI_INTER_YEAR_BELOW_VALID    0x20          Bad YeaR Low/high bit (1=low)
-   OCI_INTER_INVALID_HOUR        0x40          Bad HouR
-   OCI_INTER_HOUR_BELOW_VALID    0x80          Bad HouR Low/high bit (1=low)
-   OCI_INTER_INVALID_MINUTE      0x100         Bad MiNute
-   OCI_INTER_MINUTE_BELOW_VALID	 0x200         Bad MiNute Low/high bit(1=low)
-   OCI_INTER_INVALID_SECOND      0x400         Bad SeCond
-   OCI_INTER_SECOND_BELOW_VALID  0x800         bad second Low/high bit(1=low)
-   OCI_INTER_INVALID_FRACSEC     0x1000        Bad Fractional second
-   OCI_INTER_FRACSEC_BELOW_VALID 0x2000        Bad fractional second Low/High
-
-	
-  RETURNS
-    OCI_SUCCESS if interval is okay
-    OCI_INVALID_HANDLE if 'err' is NULL.
-
- ---------------------- OCIIntervalCompare ----------------------------------- 
-sword OCIIntervalCompare(dvoid *hndl, OCIError *err, OCIInterval *inter1, 
-			OCIInterval *inter2, sword *result );
-
-  DESCRIPTION
-	Compares two intervals, returns 0 if equal, -1 if inter1 < inter2, 
-      	1 if inter1 > inter2
-  PARAMETERS
-     hndl (IN) - Session/Env handle. 
-     err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-     inter1  (IN)   - Interval to be compared 
-     inter2  (IN)   - Interval to be compared 
-     result  (OUT)  - 	comparison result, 0 if equal, -1 if inter1 < inter2, 
-                	1 if inter1 > inter2
-
-  RETURNS
-     OCI_SUCCESS on success
-     OCI_INVALID_HANDLE if 'err' is NULL.
-     OCI_ERROR if 
-	the two input datetimes are not mutually comparable.
-
----------------------- OCIIntervalDivide ------------------------------------ 
-sword OCIIntervalDivide(dvoid *hndl, OCIError *err, OCIInterval *dividend, 
-		OCINumber *divisor, OCIInterval *result );
- 
-  DESCRIPTION
-     Divides an interval by an Oracle Number to produce an interval
-  PARAMETERS
-	hndl (IN) - Session/Env handle. 
-     err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-     dividend  (IN)   - Interval to be divided 
-     divisor   (IN)   - Oracle Number dividing `dividend' 
-     result    (OUT)  - resulting interval (dividend / divisor) 
-  RETURNS
-     OCI_SUCCESS on success
-     OCI_INVALID_HANDLE if 'err' is NULL.
-
- ---------------------- OCIIntervalFromNumber -------------------- 
-sword OCIIntervalFromNumber(dvoid *hndl, OCIError *err, 
-               OCIInterval *inter, OCINumber *number);
-  DESCRIPTION
-    Converts an interval to an Oracle Number
-  PARAMETERS
-     hndl (IN) - Session/Env handle. 
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (OUT)  interval - Interval to be converted 
-    (IN) number - Oracle number result  (in years for YEARMONTH interval
-                     and in days for DAYSECOND)
-  RETURNS
-    OCI_SUCCESS on success 
-    OCI_INVALID_HANDLE if 'err' is NULL.
-    OCI_ERROR on error.
-  NOTES
-    Fractional portions of the date (for instance, minutes and seconds if
-    the unit chosen is hours) will be included in the Oracle number produced.
-    Excess precision will be truncated.
- 
- ---------------------- OCIIntervalFromText --------------------------------- 
-sword OCIIntervalFromText( dvoid *hndl, OCIError *err, CONST OraText *inpstr, 
-		size_t str_len, OCIInterval *result );
-
-  DESCRIPTION
-    Given an interval string produce the interval represented by the string.
-    The type of the interval is the type of the 'result' descriptor.
-  PARAMETERS
-
-     hndl (IN) - Session/Env handle. 
-     err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  inpstr - Input string 
-    (IN)  str_len - Length of input string 
-    (OUT) result - Resultant interval 
-  RETURNS
-    OCI_SUCCESS on success
-    OCI_INVALID_HANDLE if 'err' is NULL.
-    OCI_ERROR if
-     	there are too many fields in the literal string
-	the year is out of range (-4713 to 9999)
-  	if the month is out of range (1 to 12)
- 	if the day of month is out of range (1 to 28...31)
-    	if hour is not in range (0 to 23)
-     	if hour is not in range (0 to 11)
-  	if minute is not in range (0 to 59)
-    	if seconds in minute not in range (0 to 59)
-   	if seconds in day not in range (0 to 86399)
-  	if the interval is invalid
-
-
- ---------------------- OCIIntervalGetDaySecond -------------------- 
-
-  DESCRIPTION
-     Gets values of day second interval
-  PARAMETERS
-	hndl (IN) - Session/Env handle.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-        day     (OUT) - number of days
-        hour    (OUT) - number of hours
-        min     (OUT) - number of mins
-        sec     (OUT) - number of secs
-        fsec    (OUT) - number of fractional seconds
-	result     (IN)  - resulting interval 
-  RETURNS
-	OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-
-
- ---------------------- OCIIntervalGetYearMonth -------------------- 
-
-  DESCRIPTION
-     Gets year month from an interval
-  PARAMETERS
-	hndl (IN) - Session/Env handle.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-	year    (OUT)   - year value
-	month   (OUT)   - month value
-	result     (IN)  - resulting interval 
-  RETURNS
-	OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-
-
-
--------------------------- OCIIntervalAdd ------------------------------
-sword OCIIntervalAdd(dvoid *hndl, OCIError *err, OCIInterval *addend1, 
-			OCIInterval *addend2, OCIInterval *result );
-NAME OCIIntervalAdd - Adds two intervals 
-PARAMETERS
-hndl (IN) - Session/Env handle. 
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-addend1  (IN)   - Interval to be added 
-addend2  (IN)   - Interval to be added 
-result   (OUT)  - resulting interval (addend1 + addend2) 
-DESCRIPTION
-     Adds two intervals to produce a resulting interval
-RETURNS
-     OCI_SUCCESS on success
-     OCI_ERROR if:
-	the two input intervals are not mutually comparable.
-	the resulting year would go above SB4MAXVAL
-	the resulting year would go below SB4MINVAL
-     OCI_INVALID_HANDLE if 'err' is NULL.
-NOTES
-     The two input intervals must be mutually comparable
-
- ---------------------- OCIIntervalSubtract ------------------------------- 
-sword OCIIntervalSubtract(dvoid *hndl, OCIError *err, OCIInterval *minuend, 
-			    OCIInterval *subtrahend, OCIInterval *result );
-NAME - OCIIntervalSubtract - subtracts two intervals
-PARAMETERS
-hndl (IN) - Session/Env handle.
-err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-minuend    (IN)   - interval to be subtracted from 
-subtrahend (IN)   - interval subtracted from minuend 
-result     (OUT)  - resulting interval (minuend - subtrahend) 
-DESCRIPTION
-     Subtracts two intervals and stores the result in an interval
-RETURNS
-	OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-	OCI_ERROR if:
-	   the two input intervals are not mutually comparable.
-	   the resulting leading field would go below SB4MINVAL	
-	   the resulting leading field would go above SB4MAXVAL
-
----------------------- OCIIntervalMultiply --------------------------------- 
-sword OCIIntervalMultiply(dvoid *hndl, OCIError *err, CONST OCIInterval *inter,
-			OCINumber *nfactor, OCIInterval *result );
-
-  DESCRIPTION
-     Multiplies an interval by an Oracle Number to produce an interval
-  PARAMETERS
-	hndl (IN) - Session/Env handle. 
-     err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-     inter  (IN)   - Interval to be multiplied 
-     nfactor  (IN)   - Oracle Number to be multiplied 
-     result   (OUT)  - resulting interval (ifactor * nfactor) 
-  RETURNS
-     OCI_SUCCESS on success
-     OCI_INVALID_HANDLE if 'err' is NULL.
-     OCI_ERROR if:
-	the resulting year would go above SB4MAXVAL
-	the resulting year would go below SB4MINVAL
-
-
- ---------------------- OCIIntervalSetDaySecond -------------------- 
-
-  DESCRIPTION
-     Sets day second interval
-  PARAMETERS
-	hndl (IN) - Session/Env handle.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-        day     (IN) - number of days
-        hour    (IN) - number of hours
-        min     (IN) - number of mins
-        sec     (IN) - number of secs
-        fsec    (IN) - number of fractional seconds
-	result     (OUT)  - resulting interval 
-  RETURNS
-	OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-
-
- ---------------------- OCIIntervalSetYearMonth -------------------- 
-
-  DESCRIPTION
-     Sets year month interval
-  PARAMETERS
-	hndl (IN) - Session/Env handle.
-        err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().     
-	year    (IN)   - year value
-	month   (IN)   - month value
-	result     (OUT)  - resulting interval 
-  RETURNS
-	OCI_SUCCESS on success
-        OCI_INVALID_HANDLE if 'err' is NULL.
-
-
------------------------ OCIIntervalToNumber ---------------------------------
-sword OCIIntervalToNumber(dvoid *hndl, OCIError *err, CONST OCIInterval *inter,
-			  OCINumber *number);
-
-  DESCRIPTION
-    Converts an interval to an Oracle Number
-  PARAMETERS
-     hndl (IN) - Session/Env handle. 
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  inter - Interval to be converted 
-    (OUT) number - Oracle number result  (in years for YEARMONTH interval
-                     and in days for DAYSECOND)
-  RETURNS
-    OCI_INVALID_HANDLE if 'err' is NULL.
-    OCI_SUCCESS on success 
-  NOTES
-    Fractional portions of the date (for instance, minutes and seconds if
-    the unit chosen is hours) will be included in the Oracle number produced.
-    Excess precision will be truncated.
- 
-------------------------------- OCIIntervalToText -------------------------
-sword OCIIntervalToText( dvoid *hndl, OCIError *err, CONST OCIInterval *inter,
-			ub1 lfprec, ub1 fsprec, OraText *buffer, 
-                        size_t buflen, size_t *resultlen );
-
-  DESCRIPTION
-    Given an interval, produces a string representing the interval.
-  PARAMETERS
-     hndl (IN) - Session/Env handle. 
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    (IN)  inter - Interval to be converted 
-    (IN)  lfprec  - Leading field precision. Number of digits used to
-                represent the leading field.
-    (IN)  fsprec  - Fractional second precision of the interval. Number of
-                digits used to represent the fractional seconds.
-    (OUT) buffer - buffer to hold result 
-    (IN)  buflen - length of above buffer 
-    (OUT) resultlen - length of result placed into buffer 
- 
-  RETURNS
-    OCI_SUCCESS on success
-    OCI_INVALID_HANDLE if 'err' is NULL.
-    OCI_ERROR 
-    	if the buffer is not large enough to hold the result
-  NOTES
-    The interval literal will be output as `year' or `[year-]month' for
-    YEAR-MONTH intervals and as `seconds' or `minutes[:seconds]' or
-    `hours[:minutes[:seconds]]' or `days[ hours[:minutes[:seconds]]]' for
-    DAY-TIME intervals (where optional fields are surrounded by brackets).
-
- ---------------------- OCIIntervalFromTZ -------------------- 
-sword OCIIntervalFromTZ(dvoid *hndl, OCIError *err, CONST oratext *inpstring,
-                        size_t str_len, OCIInterval *result);
-
-  DESCRIPTION
-    Retuns an OCI_DTYPE_INTERVAL_DS OCIInterval with the region id (if
-    the region is specified in the input string) set and the current
-    absolute offset or an absolut offset with the region id set to 0.
-  PARAMETERS
-    hndl (IN) - Session/Env handle.
-    err (IN/OUT) - error handle. If there is an error, it is
-                recorded in 'err' and this function returns OCI_ERROR.
-                The error recorded in 'err' can be retrieved by calling
-                OCIErrorGet().
-    inpstring (IN) - pointer to the input string
-    str_len (IN) - inpstring length
-    result - Output Interval 
-  RETURNS
-     OCI_SUCCESS on success
-     OCI_INVALID_HANDLE if 'err' is NULL.
-     OCI_ERROR on error
-        Bad interval type
-        Timezone errors
-  NOTES
-     The input string must be of the form [+/-]TZH:TZM or 'TZR [TZD]'
-
-OCILdaToSvcCtx()
-Name
-OCI toggle version 7 Lda_Def to SerVice context handle
-Purpose
-Converts a V7 Lda_Def to a V8 service context handle.
-Syntax
-sword OCILdaToSvcCtx ( OCISvcCtx  **svchpp,
-                     OCIError   *errhp,
-                     Lda_Def    *ldap );
-Comments
-Converts a V7 Lda_Def to a V8 service context handle. The action of this call 
-can be reversed by passing the resulting service context handle to the 
-OCISvcCtxToLda() function.
-Parameters
-svchpp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-ldap (IN/OUT) - the V7 logon data area returned by OCISvcCtxToLda() from 
-this service context.
-Related Functions
-OCISvcCtxToLda()
-
-
-
-
-OCILobAppend()
-
-Name
-OCI Lob APpend
-
-Purpose
-Appends a LOB value at the end of another LOB. 
-
-Syntax
-sword OCILobAppend ( OCISvcCtx        *svchp,
-                   OCIError         *errhp,
-                   OCILobLocator    *dst_locp,
-                   OCILobLocator    *src_locp );
-Comments
-Appends a LOB value at the end of LOB. The data is 
-copied from the source to the destination at the end of the destination. The 
-source and the destination must already exist. The destination LOB is 
-extended to accommodate the newly written data.
-
-It is an error to extend the destination LOB beyond the maximum length 
-allowed or to try to copy from a NULL LOB. 
-
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-dst_locp (IN/OUT) - a locator uniquely referencing the destination LOB. 
-src_locp (IN/OUT) - a locator uniquely referencing the source LOB. 
-
-Related Functions
-OCILobTrim()
-OCIErrorGet()
-OCILobWrite()
-OCILobCopy()
-
-
-
-OCILobAssign()
-
-Name
-OCI Lob ASsiGn
-
-Purpose
-Assigns one LOB/FILE locator to another.
-
-Syntax
-sword OCILobAssign ( OCIEnv                *envhp, 
-                     OCIError              *errhp, 
-                     CONST OCILobLocator   *src_locp, 
-                     OCILobLocator         **dst_locpp );
-
-Comments
-Assign source locator to destination locator.  After the assignment, both 
-locators refer to the same LOB data.  For internal LOBs, the source locator's 
-LOB data gets copied to the destination locator's LOB data only when the 
-destination locator gets stored in the table.  Therefore, issuing a flush of 
-the object containing the destination locator will copy the LOB data. For 
-FILEs only the locator that refers to the OS file is copied to the table. The
-OS file is not copied.
-Note: The only difference between this and OCILobLocatorAssign is that this
-takes an environment handle whereas OCILobLocatorAssign takes an OCI service
-handle
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded 
-in errhp and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-src_locp (IN) - LOB locator to copy from.
-dst_locpp (IN/OUT) - LOB locator to copy to.  The caller must allocate space 
-for the OCILobLocator by calling OCIDescriptorAlloc().
-
-See also
-OCIErrorGet()
-OCILobIsEqual()
-OCILobLocatorIsInit()
-OCILobLocatorAssign()
-
-
-OCILobCharSetForm()
-
-Name
-OCI Lob Get Character Set Form
-
-Purpose
-Gets the LOB locator's character set fpr,, if any.
-
-Syntax
-sword OCILobCharSetForm ( OCIEnv                    *envhp, 
-                          OCIError                  *errhp, 
-                          CONST OCILobLocator       *locp, 
-                          ub1                       *csfrm );
-
-Comments
-Returns the character set form of the input LOB locator in the csfrm output 
-parameter. 
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it 
-is recorded in err and this function returns OCI_ERROR. Diagnostic 
-information can be obtained by calling OCIErrorGet().
-locp (IN) - LOB locator for which to get the character set form.
-csfrm(OUT) - character set form of the input LOB locator.  If the input 
-locator is for a BLOB or a BFILE, csfrm is set to 0 since there is no concept 
-of a character set for binary LOBs/FILEs.  The caller must allocate space for 
-the csfrm (ub1) and not write into the space.
-See also
-OCIErrorGet(), OCILobCharSetId(), OCILobLocatorIsInit
-
-
-
-OCILobCharSetId()
-
-Name
-OCI Lob get Character Set IDentifier
-
-Purpose
-Gets the LOB locator's character set ID, if any.
-
-Syntax
-sword OCILobCharSetId ( OCIEnv                    *envhp, 
-                        OCIError                  *errhp, 
-                        CONST OCILobLocator       *locp, 
-                        ub2                       *csid );
-
-Comments
-Returns the character set ID of the input LOB locator in the cid output 
-parameter. 
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it 
-is recorded in err and this function returns OCI_ERROR. Diagnostic 
-information can be obtained by calling OCIErrorGet().
-locp (IN) - LOB locator for which to get the character set ID.
-csid (OUT) - character set ID of the input LOB locator.  If the input locator 
-is for a BLOB or a BFILE, csid is set to 0 since there is no concept of a 
-character set for binary LOBs/FILEs.  The caller must allocate space for the 
-character set id of type ub2 and not write into the space.
-
-See also
-OCIErrorGet(), OCILobCharSetForm(), OCILobLocatorIsInit()
-
-
-
-OCILobCopy()
-
-Name
-OCI Lob Copy
-
-Purpose
-Copies a portion of a LOB value into another LOB value.
-
-Syntax
-sword OCILobCopy ( OCISvcCtx        *svchp,
-                   OCIError         *errhp,
-                   OCILobLocator    *dst_locp,
-                   OCILobLocator    *src_locp,
-                   ub4              amount,
-                   ub4              dst_offset,
-                   ub4              src_offset );
-
-Comments
-Copies a portion of a LOB value into another LOB as specified. The data 
-is copied from the source to the destination. The source (src_locp) and the 
-destination (dlopb) LOBs must already exist.
-If the data already exists at the destination's start position, it is 
-overwritten with the source data. If the destination's start position is 
-beyond the end of the current data, a hole is created from the end of the data
-to the beginning of the newly written data from the source. The destination 
-LOB is extended to accommodate the newly written data if it extends 
-beyond the current length of the destination LOB. 
-It is an error to extend the destination LOB beyond the maximum length 
-allowed or to try to copy from a NULL LOB.
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-dst_locp (IN/OUT) - a locator uniquely referencing the destination LOB. 
-src_locp (IN/OUT) - a locator uniquely referencing the source LOB. 
-amount (IN) - the number of character or bytes, as appropriate, to be copied.
-dst_offset (IN) - this is the absolute offset for the destination LOB. 
-For character LOBs it is the number of characters from the beginning of the 
-LOB at which to begin writing. For binary LOBs it is the number of bytes from 
-the beginning of the lob from which to begin reading. The offset starts at 1.
-src_offset (IN) - this is the absolute offset for the source LOB. 
-For character LOBs it is the number of characters from the beginning of the 
-LOB, for binary LOBs it is the number of bytes. Starts at 1.
-
-See Also 
-OCIErrorGet(), OCILobAppend(), OCILobWrite(), OCILobTrim()
-
-OCILobCreateTemporary()
-
-Name
-OCI Lob Create Temporary
-
-Purpose
-Create a Temporary Lob
-
-Syntax
-sword OCILobCreateTemporary(OCISvcCtx          *svchp,
-                            OCIError           *errhp,
-                            OCILobLocator      *locp,
-                            ub2                 csid,
-                            ub1                 csfrm,
-                            ub1                 lobtype,
-                            boolean             cache,
-                            OCIDuration         duration);
-
-
-Comments
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator which points to the temporary Lob
-csid (IN) - the character set id
-csfrm(IN) - the character set form
-lobtype (IN) - the lob type - one of the three constants OCI_TEMP_BLOB, 
-               OCI_TEMP_CLOB and OCI_TEMP_NCLOB
-cache(IN)-  TRUE if the temporary LOB goes through the cache; FALSE, if not.
-duration(IN)- duration of the temporary LOB; Can be a valid duration id or one 
-              of the values: OCI_DURATION_SESSION, OCI_DURATION_CALL
-              Note: OCI_DURATION_TRANSACTION is NOT supported in 8.1
-Related functions
-OCILobFreeTemporary()
-OCILobIsTemporary()
-
-OCILobDisableBuffering()
-
-Name
-OCI Lob Disable Buffering
-
-Purpose
-Disable lob buffering for the input locator.
-
-
-Syntax
-sword OCILobDisableBuffering ( OCISvcCtx      *svchp,
-                               OCIError       *errhp,
-                               OCILobLocator  *locp);
-
-Comments
-
-Disable lob buffering for the input locator.  The next time data is
-read/written from/to the lob through the input locator, the lob
-buffering subsystem is *not* used.  Note that this call does *not*
-implicitly flush the changes made in the buffering subsystem.  The 
-user must explicitly call OCILobFlushBuffer() to do this.
-
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator uniquely referencing the LOB. 
-
-Related Functions
-OCILobEnableBuffering()
-OCIErrorGet()
-OCILobFlushBuffer()
-
-
-
-
-OCILobEnableBuffering()
-
-Name
-OCI Lob Enable Buffering
-
-Purpose
-Enable lob buffering for the input locator.
-
-
-Syntax
-sword OCILobEnableBuffering ( OCISvcCtx      *svchp,
-                              OCIError       *errhp,
-                              OCILobLocator  *locp);
-
-Comments
-
-Enable lob buffering for the input locator.  The next time data is
-read/written from/to the lob through the input locator, the lob
-buffering subsystem is used.  
-
-Once lob buffering is enabled for a locator, if that locator is passed to 
-one of the following routines, an error is returned:
-        OCILobCopy, OCILobAppend, OCILobErase, OCILobGetLength, OCILobTrim
-
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator uniquely referencing the LOB. 
-
-Related Functions
-OCILobDisableBuffering()
-OCIErrorGet()
-OCILobWrite()
-OCILobRead()
-OCILobFlushBuffer()
-
-
-
-
-OCILobErase()
-
-Name
-OCI Lob ERase
-
-Purpose
-Erases a specified portion of the LOB data starting at a specified offset.
-
-Syntax
-sword OCILobErase ( OCISvcCtx       *svchp,
-                  OCIError        *errhp,
-                  OCILobLocator   *locp,
-                  ub4             *amount,
-                  ub4             offset );
-
-Comments
-Erases a specified portion of the LOB data starting at a specified offset.
-The actual number of characters/bytes erased is returned. The actual number 
-of characters/bytes and the requested number of characters/bytes will differ 
-if the end of the LOB data is reached before erasing the requested number of 
-characters/bytes.
-If a section of data from the middle of the LOB data is erased, a hole is 
-created. When data from that hole is read, 0's are returned. If the LOB is
-NULL, this routine will indicate that 0 characters/bytes were erased.
-
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - the LOB for which to erase a section of data.
-amount (IN/OUT) - On IN, the number of characters/bytes to erase. On OUT, 
-the actual number of characters/bytes erased.
-offset (IN) - absolute offset from the beginning of the LOB data from which 
-to start erasing data. Starts at 1.
-
-See Also
-OCIErrorGet(), OCILobRead(), OCILobWrite()
-
-OCILobOpen()
-
-Name
-OCI Lob Open
-
-Purpose
-Opens an internal or external Lob.
-
-Syntax
-sword OCILobOpen( OCISvcCtx        *svchp,
-                  OCIError         *errhp,
-                  OCILobLocator    *locp,
-                  ub1               mode );
-
-Comments
-It is an error if the same lob is opened more than once in
-the same transaction. Lobs are opened implicitly if they are
-not opened before using them. A LOB has to be closed before
-the transaction commits else the transaction is rolled back.
-Open locators are closed if the transaction aborts. Multiple 
-users can open the same lob on different locators.
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - locator points to the LOB to be opened
-mode (IN) - mode in which to open the lob. The valid modes are
-read-only - OCI_FILE_READONLY, read-write - OCI_FILE_READWRITE 
-
-OCILobClose()
-
-Name
-OCI Lob Close
-
-Purpose
-Closes an open internal or external Lob.
-
-Syntax
-sword OCILobClose( OCISvcCtx        *svchp,
-                   OCIError         *errhp,
-                   OCILobLocator    *locp );
-
-
-Comments
-It is an error if the lob is not open at this time. All LOBs
-that have been opened in a transaction have to be closed 
-before the transaction commits, else the transaction gets
-rolled back.
-
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp  (IN)  - A locator that was opened using OCILobOpen()
-
-
-OCILobFileClose()
-
-Name
-OCI Lob File CLoSe
-
-Purpose
-Closes a previously opened FILE.
-
-Syntax
-sword OCILobFileClose ( OCISvcCtx            *svchp,
-                        OCIError             *errhp,
-                        OCILobLocator        *filep );
-
-Comments
-Closes a previously opened FILE. It is an error if this function is called for
-an internal LOB. No error is returned if the FILE exists but is not opened.
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-filep (IN/OUT) - a pointer to a FILE locator to be closed.
-
-See Also
-OCIErrorGet(), OCILobFileOpen(), OCILobFileCloseAll(), OCILobFileIsOpen(),
-OCILobFileExists(), CREATE DIRECTORY DDL
-
-
-
-
-OCILobFileCloseAll()
-
-Name
-OCI LOB FILE Close All
-
-Purpose
-Closes all open FILEs on a given service context.
-
-Syntax
-sword OCILobFileCLoseAll ( OCISvcCtx *svchp, 
-                           OCIError  *errhp );
-
-Comments
-Closes all open FILEs on a given service context.
-
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-
-See also
-OCILobFileClose(),
-OCIErrorGet(), OCILobFileOpen(), OCILobFileIsOpen(),
-OCILobFileExists(), CREATE DIRECTORY DDL
-
-
-
-
-OCILobFileExists()
-
-Name
-OCI LOB FILE exists
-
-Purpose
-Tests to see if the FILE exists on the server
-
-Syntax
-sword OCILobFileExists ( OCISvcCtx     *svchp,
-                         OCIError      *errhp,
-                         OCILobLocator *filep,
-                         boolean       *flag );
-
-Comments
-Checks to see if a FILE exists for on the server.
-
-Parameters
-svchp (IN) - the OCI service context handle.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, 
-it is recorded in err and this function returns OCI_ERROR. Diagnostic 
-information can be obtained by calling OCIErrorGet().
-filep (IN) - pointer to the FILE locator that refers to the file.
-flag (OUT) - returns TRUE if the FILE exists; FALSE if it does not.
-
-See also
-OCIErrorGet, CREATE DIRECTORY (DDL)
-
-
-
-
-OCILobFileGetName()
-
-Name
-OCI LOB FILE Get file Name
-
-Purpose
-Gets the FILE locator's directory alias and file name.
-
-Syntax
-sword OCILobFileGetName ( OCIEnv                   *envhp,
-                          OCIError                 *errhp, 
-                          CONST OCILobLocator      *filep, 
-                          OraText                     *dir_alias,
-                          ub2                      *d_length, 
-                          OraText                     *filename, 
-                          ub2                      *f_length );
-
-Comments
-Returns the directory alias and file name associated with this file locator.  
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) -The OCI error handle. If there is an error, it is recorded in 
-errhp and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-filep (IN) - FILE locator for which to get the directory alias and file name.
-dir_alias (OUT) - buffer into which the directory alias name is placed. The 
-caller must allocate enough space for the directory alias name and must not 
-write into the space.
-d_length (IN/OUT)                 
-        - IN: length of the input dir_alias string;
-        - OUT: length of the returned dir_alias string.
-filename (OUT) - buffer into which the file name is placed. The caller must 
-allocate enough space for the file name and must not write into the space.
-f_length (IN/OUT) 
-        - IN: length of the input filename string;
-         - OUT: lenght of the returned filename string.
-
-See also
-OCILobFileSetName(), OCIErrorGet()
-
-
-
-
-OCILobFileIsOpen()
-
-Name
-OCI LOB FILE Is Open?
-
-Purpose
-Tests to see if the FILE is open
-
-Syntax
-sword OCILobFileIsOpen ( OCISvcCtx *svchp,
-                         OCIError  *errhp,
-                         OCILobLocator *filep,
-                         boolean       *flag );
-
-Comments
-Checks to see if the FILE on the server is open for a given LobLocator.
-
-Parameters
-svchp (IN) - the OCI service context handle.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it 
-is recorded in err and this function returns OCI_ERROR. Diagnostic 
-information can be obtained by calling OCIErrorGet().
-filep (IN) - pointer to the FILE locator being examined. If the input file 
-locator was never passed to OCILobFileOpen(), the file is considered not to 
-be opened by this locator. However, a different locator may have opened the 
-file. More than one file opens can be performed on the same file using 
-different locators.
-flag (OUT) - returns TRUE if the FILE is opened using this locator; FALSE if 
-it is not. 
-
-See also
-OCIErrorGet, OCILobFileOpen, OCILobFileClose, OCILobFileCloseAll, CREATE 
-DIRECTORY SQL command
-
-
-OCILobFileOpen()
-
-Name
-OCI LOB FILE open
-
-Purpose
-Opens a FILE for read-only access
-
-Syntax
-sword OCILobFileOpen ( OCISvcCtx            *svchp,
-                     OCIError             *errhp,
-                     OCILobLocator        *filep,
-                     ub1                  mode );
-
-Comments
-Opens a FILE. The FILE can be opened for read-only access only. FILEs may not 
-be written to throough ORACLE.
-
-Parameters 
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-filep (IN/OUT) - the FILE to open. Error if the locator does not refer to a 
-FILE. 
-mode (IN) - mode in which to open the file. The only valid mode is 
-read-only - OCI_FILE_READONLY. 
-
-See Also
-OCILobFileClose, OCIErrorGet, OCILobFileCloseAll, OCILobFileIsOpen, 
-OCILobFileSetName, CREATE DIRECTORY 
-
-
-
-
-OCILobFileSetName()
-
-Name
-OCI Lob File Set NaMe
-
-Purpose
-Sets directory alias and file name in the FILE locator.
-
-Syntax
-sword OCILobFileSetName ( OCIEnv             *envhp,
-                          OCIError           *errhp,
-                          OCILobLocator      **filepp,
-                          OraText               *dir_alias,
-                          ub2                d_length, 
-                          OraText               *filename, 
-                          ub2                f_length );
-Comments
-Sets the directory alias and file name in the LOB file locator.  
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded 
-in errhp and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-filepp (IN/OUT) - FILE locator for which to set the directory alias name.
-The caller must have already allocated space for the locator by calling
-OCIDescriptorAlloc().
-dir_alias (IN) - buffer that contains the directory alias name to set in the 
-locator.
-d_length (IN) - length of the input dir_alias parameter.
-filename (IN) - buffer that contains the file name is placed.
-f_length (IN) - length of the input filename parameter.
-See also
-OCILobFileGetName, OCIErrorGet, CREATE DIRECTORY
-
-
-
-
-OCILobFlushBuffer()
-
-Name
-OCI Lob Flush all Buffers for this lob.
-
-Purpose
-Flush/write all buffers for this lob to the server.
-
-
-Syntax
-sword OCILobFlushBuffer ( OCISvcCtx       *svchp,
-                          OCIError        *errhp,
-                          OCILobLocator   *locp,
-                          ub4              flag);
-
-Comments
-
-Flushes to the server, changes made to the buffering subsystem that 
-are associated with the lob referenced by the input locator.  This 
-routine will actually write the data in the buffer to the lob in 
-the database.  Lob buffering must have already been enabled for the 
-input lob locator.
-
-This routine, by default, does not free the buffer resources for
-reallocation to another buffered LOB operation. However, if you
-want to free the buffer explicitly, you can set the flag parameter
-to OCI_LOB_BUFFER_FREE.
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator uniquely referencing the LOB. 
-flag    (IN)     - to indicate if the buffer resources need to be freed
-                   after a flush. Default value is OCI_LOB_BUFFER_NOFREE.
-                   Set it to OCI_LOB_BUFFER_FREE if you want the buffer
-                   resources to be freed.
-Related Functions
-OCILobEnableBuffering()
-OCILobDisableBuffering()
-OCIErrorGet()
-OCILobWrite()
-OCILobRead()
-
-
-OCILobFreeTemporary()
-
-Name
-OCI Lob Free Temporary
-
-Purpose
-Free a temporary LOB
-
-Syntax
-sword OCILobFreeTemporary(OCISvcCtx          *svchp,
-                          OCIError           *errhp,
-                          OCILobLocator      *locp);
-
-Comments
-  Frees the contents of the temporary Lob this locator is pointing to. Note
-  that the locator itself is not freed until a OCIDescriptorFree is done.
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a locator uniquely referencing the LOB
-
-Related functions
-OCILobCreateTemporary()
-OCILobIsTemporary()
-
-
-Name
-OCI Lob/File Get Chunk Size
-
-Purpose
-When creating the table, the user can specify the chunking factor, which can
-be a multiple of Oracle blocks. This corresponds to the chunk size used by the
-LOB data layer when accessing/modifying the LOB value. Part of the chunk is
-used to store system-related information and the rest stores the LOB value.
-This function returns the amount of space used in the LOB chunk to store 
-the LOB value.
-
-Syntax
-sword OCILobGetChunkSize ( OCISvcCtx      *svchp,
-                           OCIError       *errhp,
-                           OCILobLocator  *locp,
-                           ub4            *chunksizep );
-
-Comments
- Performance will be improved if the user issues read/write
-requests using a multiple of this chunk size. For writes, there is an added 
-benefit since LOB chunks are versioned and, if all writes are done on chunk
-basis, no extra/excess versioning is done nor duplicated. Users could batch 
-up the write until they have enough for a chunk instead of issuing several
-write calls for the same chunk.
-
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - a LOB locator that uniquely references the LOB. For internal
-LOBs, this locator must be a locator that was obtained from the server 
-specified by svchp. For FILEs, this locator can be initialized by a Select or
-OCILobFileSetName.
-chunksizep (OUT) - On output, it is the length of the LOB if not NULL - for 
-character LOBs it is the number of characters, for binary LOBs it is the 
-number of bytes in the LOB.
-
-Related Functions
-
-OCILobGetLength()
-
-Name
-OCI Lob/File Length
-
-Purpose
-Gets the length of a LOB/FILE. 
-
-Syntax
-sword OCILobGetLength ( OCISvcCtx      *svchp,
-                        OCIError       *errhp,
-                        OCILobLocator  *locp,
-                        ub4            *lenp );
-
-Comments
-Gets the length of a LOB/FILE. If the LOB/FILE is NULL, the length is 
-undefined.
-
-Parameters
-svchp (IN) - the service context handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - a LOB locator that uniquely references the LOB. For internal
-LOBs, this locator must be a locator that was obtained from the server 
-specified by svchp. For FILEs, this locator can be initialized by a Select or
-OCILobFileSetName.
-lenp (OUT) - On output, it is the length of the LOB if not NULL - for 
-character LOBs it is the number of characters, for binary LOBs it is the 
-number of bytes in the LOB.
-
-Related Functions
-OCIErrorGet, OCIFileSetName
-
-
-
-OCILobIsEqual()
-
-Name
-
-OCI Lob Is Equal
-
-Purpose
-Compares two LOB locators for equality.
-
-Syntax
-sword OCILobIsEqual ( OCIEnv                  *envhp,
-                      CONST OCILobLocator     *x,
-                      CONST OCILobLocator     *y,
-                      boolean                 *is_equal );
-
-Comments
-Compares the given LOB locators for equality.  Two LOB locators are equal if 
-and only if they both refer to the same LOB data.
-Two NULL locators are considered not equal by this function.
-Parameters
-envhp (IN) - the OCI environment handle.
-x (IN) - LOB locator to compare.
-y (IN) - LOB locator to compare.
-is_equal (OUT) - TRUE, if the LOB locators are equal; FALSE if they are not.
-
-See also
-OCILobAssign, OCILobLocatorIsInit
-OCILobLocatorAssign,
-OCILobIsOpen()
-
-Name
-
-OCI Lob Is Open
-sword OCILobIsOpen(svchp, errhp, locp, flag)
-OCISvcCtx     *svchp;
-OCIError      *errhp;
-OCILobLocator *locp;
-boolean       *flag;
-
-Comments
-   Checks if the LOB locator was opened before. flag is set to TRUE
-   if opened; FALSE otherwise 
-
-
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN) - the locator to test for temporary LOB
-flag(OUT) - TRUE, if the LOB locator points to is open
-                    FALSE, if not.
-
-OCILobIsTemporary()
-
-Name
-
-OCI Lob Is Temporary
-
-Purpose
-  Tests if this locator points to a temporary LOB
-
-Syntax
-sword OCILobIsTemporary(OCIEnv            *envhp,
-                        OCIError          *errhp,
-                        OCILobLocator     *locp,
-                        boolean           *is_temporary);
-
-Comments
-Tests the locator to determine if it points to a temporary LOB.
-If so, is_temporary is set to TRUE. If not, is_temporary is set
-to FALSE.
-
-Parameters
-envhp (IN) - the environment handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN) - the locator to test for temporary LOB
-is_temporary(OUT) - TRUE, if the LOB locator points to a temporary LOB;
-                    FALSE, if not.
-
-See Also
-OCILobCreateTemporary, OCILobFreeTemporary
-
-
-OCILobLoadFromFile()
-
-Name
-OCI Lob Load From File
-
-Purpose
-Load/copy all or a portion of the file into an internal LOB.
-
-Syntax
-sword OCILobLoadFromFile ( OCISvcCtx        *svchp,
-                           OCIError         *errhp,
-                           OCILobLocator    *dst_locp,
-                           OCILobLocator    *src_filep,
-                           ub4              amount,
-                           ub4              dst_offset,
-                           ub4              src_offset );
-
-Comments
-Loads/copies a portion or all of a file value into an internal LOB as 
-specified.  The data is copied from the source file to the destination 
-internal LOB (BLOB/CLOB).  No character set conversions are performed 
-when copying the bfile data to a clob/nclob.  The bfile data must already
-be in the same character set as the clob/nclob in the database.  No
-error checking is performed to verify this.
-The source (src_filep) and the destination (dst_locp) LOBs must already exist.
-If the data already exists at the destination's start position, it is 
-overwritten with the source data. If the destination's start position is 
-beyond the end of the current data, a hole is created from the end of the data
-to the beginning of the newly written data from the source. The destination 
-LOB is extended to accommodate the newly written data if it extends 
-beyond the current length of the destination LOB. 
-It is an error to extend the destination LOB beyond the maximum length 
-allowed or to try to copy from a NULL LOB.
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-dst_locp (IN/OUT) - a locator uniquely referencing the destination internal 
-LOB which may be of type blob, clob, or nclob. 
-src_filep (IN/OUT) - a locator uniquely referencing the source BFILE. 
-amount (IN) - the number of bytes to be copied.
-dst_offset (IN) - this is the absolute offset for the destination LOB. 
-For character LOBs it is the number of characters from the beginning of the 
-LOB at which to begin writing. For binary LOBs it is the number of bytes from 
-the beginning of the lob from which to begin reading. The offset starts at 1.
-src_offset (IN) - this is the absolute offset for the source BFILE.  It is 
-the number of bytes from the beginning of the LOB.  The offset starts at 1.
-
-See Also 
-OCIErrorGet(), OCILobAppend(), OCILobWrite(), OCILobTrim(), OCILobCopy()
-
-OCILobLocatorAssign()
-
-Name
-OCI Lob LOCATOR ASsiGn
-
-Purpose
-Assigns one LOB/FILE locator to another.
-
-Syntax
-sword OCILobLocatorAssign ( OCISvcCtx             *svchp, 
-                            OCIError              *errhp, 
-                            CONST OCILobLocator   *src_locp, 
-                            OCILobLocator         **dst_locpp );
-
-Comments
-Assign source locator to destination locator.  After the assignment, both 
-locators refer to the same LOB data.  For internal LOBs, the source locator's 
-LOB data gets copied to the destination locator's LOB data only when the 
-destination locator gets stored in the table.  Therefore, issuing a flush of 
-the object containing the destination locator will copy the LOB data. For 
-FILEs only the locator that refers to the OS file is copied to the table. The
-OS file is not copied.
-Note : the only difference between this and OCILobAssign is that this takes
-a OCI service handle pointer instead of a OCI environment handle pointer
-
-Parameters
-svchp (IN/OUT) - OCI service handle initialized in object mode.
-errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded 
-in errhp and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-src_locp (IN) - LOB locator to copy from.
-dst_locpp (IN/OUT) - LOB locator to copy to.  The caller must allocate space 
-for the OCILobLocator by calling OCIDescriptorAlloc().
-
-See also
-OCIErrorGet()
-OCILobIsEqual()
-OCILobLocatorIsInit()
-OCILobAssign()
-
-
-
-
-OCILobLocatorIsInit()
-
-Name
-OCI LOB locator is initialized?
-
-Purpose
-Tests to see if a given LOB locator is initialized.
-
-Syntax
-sword OCILobLocatorIsInit ( OCIEnv   *envhp,
-                            OCIError *errhp,
-                            CONST OCILobLocator *locp,
-                            boolean *is_initialized );
-
-Comments
-Tests to see if a given LOB locator is initialized.
-
-Parameters
-envhp (IN/OUT) - OCI environment handle initialized in object mode.
-errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it 
-is recorded in err and this function returns OCI_ERROR. Diagnostic 
-information can be obtained by calling OCIErrorGet().
-locp (IN) - the LOB locator being tested
-is_initialized (OUT) - returns TRUE if the given LOB locator is initialized; 
-FALSE if it is not.
-
-See also
-OCIErrorGet, OCILobIsEqual
-
-
-
-
-OCILobRead()
-
-Name
-OCI Lob/File ReaD
-
-Purpose
-Reads a portion of a LOB/FILE as specified by the call into a buffer. 
-
-Syntax
-sword OCILobRead ( OCISvcCtx       *svchp,
-                   OCIError        *errhp,
-                   OCILobLocator   *locp,
-                   ub4             offset,
-                   ub4             *amtp,
-                   dvoid           *bufp,
-                   ub4             bufl,
-                   dvoid           *ctxp,  
-                   OCICallbackLobRead (cbfp)
-                                   (
-                                    dvoid         *ctxp,
-                                    CONST dvoid   *bufp,
-                                    ub4           len,
-                                    ub1           piece )
-                   ub2             csid,
-                   ub1             csfrm );
-
-Comments
-Reads a portion of a LOB/FILE as specified by the call into a buffer. Data 
-read from a hole is returned as 0s. It is an error to try to read from a NULL
-LOB/FILE. The OS FILE must already exist on the server and must have been 
-opened using the input locator. Oracle must hav epermission to read the OS 
-file and user must have read permission on the directory object.
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-locp (IN/OUT) - a LOB locator that uniquely references a LOB. 
-offset (IN) - On input, it is the absolute offset, for character LOBs in the 
-number of characters from the beginning of the LOB, for binary LOBs it is the 
-number of bytes. Starts from 1.
-amtp (IN/OUT) - On input, the number of character or bytes to be read. On 
-output, the actual number of bytes or characters read. 
-If the amount of bytes to be read is larger than the buffer length it is 
-assumed that the LOB is being read in a streamed mode. On input if this value 
-is 0, then the data shall be read in streamed mode from the LOB until the end 
-of LOB. If the data is read in pieces, *amtp always contains the length of 
-the last piece read.  If a callback function is defined, then this callback 
-function will be invoked each time bufl bytes are read off the pipe. Each 
-piece will be written into bufp.
-If the callback function is not defined, then OCI_NEED_DATA error code will 
-be returned. The application must invoke the LOB read over and over again to 
-read more pieces of the LOB until the OCI_NEED_DATA error code is not 
-returned. The buffer pointer and the length can be different in each call 
-if the pieces are being read into different sizes and location. 
-bufp (IN) - the pointer to a buffer into which the piece will be read. The 
-length of the allocated memory is assumed to be bufl. 
-bufl (IN) - the length of the buffer in octets. 
-ctxp (IN) - the context for the call back function. Can be NULL.
-cbfp (IN) - a callback that may be registered to be called for each piece. If 
-this is NULL, then OCI_NEED_DATA will be returned for each piece. 
-The callback function must return OCI_CONTINUE for the read to continue. 
-If any other error code is returned, the LOB read is aborted. 
-  ctxp (IN) - the context for the call back function. Can be NULL.
-  bufp (IN) - a buffer pointer for the piece.
-  len (IN) - the length of length of current piece in bufp.
-  piece (IN) - which piece - OCI_FIRST_PIECE, OCI_NEXT_PIECE or 
-  OCI_LAST_PIECE.
-csid - the character set ID of the buffer data
-csfrm - the character set form of the buffer data
-
-Related Functions
-OCIErrorGet, OCILobWrite, OCILobFileOpen, OCILobFileSetName, CREATE DIRECTORY
-
-
-
-
-OCILobTrim()
-
-Name
-
-OCI Lob  Trim
-
-Purpose
-Trims the lob value to a shorter length
-
-Syntax
-sword OCILobTrim ( OCISvcCtx       *svchp,
-                 OCIError        *errhp,
-                 OCILobLocator   *locp,
-                 ub4             newlen );
-
-Comments
-Truncates LOB data to a specified shorter length. 
-
-Parameters
-svchp (IN) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a LOB locator that uniquely references the LOB. This locator 
-must be a locator that was obtained from the server specified by svchp. 
-newlen (IN) - the new length of the LOB data, which must be less than or equal
-to the current length. 
-
-Related Functions
-OCIErrorGet, OCILobWrite, OCiLobErase, OCILobAppend, OCILobCopy
-
-
-
-
-
-OCILobWrite()
-
-Name
-OCI Lob Write
-
-Purpose
-Writes a buffer into a LOB
-
-Syntax
-sword OCILobWrite ( OCISvcCtx       *svchp,
-                    OCIError        *errhp,
-                    OCILobLocator   *locp,
-                    ub4             offset,
-                    ub4             *amtp,
-                    dvoid           *bufp, 
-                    ub4             buflen,
-                    ub1             piece,
-                    dvoid           *ctxp,  
-                    OCICallbackLobWrite   (cbfp)
-                                    (
-                                    dvoid    *ctxp,
-                                    dvoid    *bufp,
-                                    ub4      *lenp,
-                                    ub1      *piecep ) 
-                    ub2             csid
-                    ub1             csfrm );
-
-
-Comments
-Writes a buffer into a LOB as specified. If LOB data already exists 
-it is overwritten with the data stored in the buffer.
-The buffer can be written to the LOB in a single piece with this call, or
-it can be provided piecewise using callbacks or a standard polling method.
-If this value of the piece parameter is OCI_FIRST_PIECE, data must be 
-provided through callbacks or polling.
-If a callback function is defined in the cbfp parameter, then this callback 
-function will be invoked to get the next piece after a piece is written to 
-the pipe. Each piece will be written from bufp.
-If no callback function is defined, then OCILobWrite() returns the 
-OCI_NEED_DATA error code. The application must all OCILobWrite() again 
-to write more pieces of the LOB. In this mode, the buffer pointer and the 
-length can be different in each call if the pieces are of different sizes and 
-from different locations. A piece value of OCI_LAST_PIECE terminates the 
-piecewise write. 
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a LOB locator that uniquely references a LOB. 
-offset (IN) - On input, it is the absolute offset, for character LOBs in 
-the number of characters from the beginning of the LOB, for binary LOBs it 
-is the number of bytes. Starts at 1.
-bufp (IN) - the pointer to a buffer from which the piece will be written. The 
-length of the allocated memory is assumed to be the value passed in bufl. 
-Even if the data is being written in pieces, bufp must contain the first 
-piece of the LOB when this call is invoked.
-bufl (IN) - the length of the buffer in bytes.
-Note: This parameter assumes an 8-bit byte. If your platform uses a 
-longer byte, the value of bufl must be adjusted accordingly.
-piece (IN) - which piece of the buffer is being written. The default value for
-this parameter is OCI_ONE_PIECE, indicating the buffer will be written in a 
-single piece.
-The following other values are also possible for piecewise or callback mode: 
-OCI_FIRST_PIECE, OCI_NEXT_PIECE and OCI_LAST_PIECE.
-amtp (IN/OUT) - On input, takes the number of character or bytes to be 
-written. On output, returns the actual number of bytes or characters written. 
-If the data is written in pieces, *amtp will contain the total length of the 
-pieces written at the end of the call (last piece written) and is undefined in
-between. 
-(Note it is different from the piecewise read case)
-ctxp (IN) - the context for the call back function. Can be NULL.
-cbfp (IN) - a callback that may be registered to be called for each piece in 
-a piecewise write. If this is NULL, the standard polling method will be used.
-The callback function must return OCI_CONTINUE for the write to continue. 
-If any other error code is returned, the LOB write is aborted. The 
-callback takes the following parameters:
-  ctxp (IN) - the context for the call back function. Can be NULL.
-  bufp (IN/OUT) - a buffer pointer for the piece.
-  lenp (IN/OUT) - the length of the buffer (in octets) and the length of 
-  current piece in bufp (out octets).
-  piecep (OUT) - which piece - OCI_NEXT_PIECE or OCI_LAST_PIECE.
-csid - the character set ID of the buffer data
-csfrm - the character set form of the buffer data
-Related Functions
-
-OCILobWriteAppend()
-
-Name
-OCI Lob Write Append
-
-Purpose
-Writes data to the end of a LOB value. This call provides the ability
-to get the length of the data and append it to the end of the LOB in
-a single round trip to the server.
-
-Syntax
-sword OCILobWriteAppend ( OCISvcCtx       *svchp,
-                    OCIError        *errhp,
-                    OCILobLocator   *locp,
-                    ub4             *amtp,
-                    dvoid           *bufp, 
-                    ub4             buflen,
-                    ub1             piece,
-                    dvoid           *ctxp,  
-                    OCICallbackLobWrite   (cbfp)
-                                    (
-                                    dvoid    *ctxp,
-                                    dvoid    *bufp,
-                                    ub4      *lenp,
-                                    ub1      *piecep ) 
-                    ub2             csid
-                    ub1             csfrm );
-
-
-Comments
-Writes a buffer to the end of a LOB as specified. If LOB data already exists 
-it is overwritten with the data stored in the buffer.
-The buffer can be written to the LOB in a single piece with this call, or
-it can be provided piecewise using callbacks or a standard polling method.
-If this value of the piece parameter is OCI_FIRST_PIECE, data must be 
-provided through callbacks or polling.
-If a callback function is defined in the cbfp parameter, then this callback 
-function will be invoked to get the next piece after a piece is written to the 
-pipe. Each piece will be written from bufp.
-If no callback function is defined, then OCILobWriteAppend() returns the 
-OCI_NEED_DATA error code. The application must all OCILobWriteAppend() again 
-to write more pieces of the LOB. In this mode, the buffer pointer and the 
-length can be different in each call if the pieces are of different sizes and 
-from different locations. A piece value of OCI_LAST_PIECE terminates the 
-piecewise write. 
-
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-locp (IN/OUT) - a LOB locator that uniquely references a LOB. 
-bufp (IN) - the pointer to a buffer from which the piece will be written. The 
-length of the allocated memory is assumed to be the value passed in bufl. Even 
-if the data is being written in pieces, bufp must contain the first piece of 
-the LOB when this call is invoked.
-bufl (IN) - the length of the buffer in bytes.
-Note: This parameter assumes an 8-bit byte. If your platform uses a 
-longer byte, the value of bufl must be adjusted accordingly.
-piece (IN) - which piece of the buffer is being written. The default value for
-this parameter is OCI_ONE_PIECE, indicating the buffer will be written in a 
-single piece.
-The following other values are also possible for piecewise or callback mode: 
-OCI_FIRST_PIECE, OCI_NEXT_PIECE and OCI_LAST_PIECE.
-amtp (IN/OUT) - On input, takes the number of character or bytes to be 
-written. On output, returns the actual number of bytes or characters written. 
-If the data is written in pieces, *amtp will contain the total length of the 
-pieces written at the end of the call (last piece written) and is undefined in
-between. 
-(Note it is different from the piecewise read case)
-ctxp (IN) - the context for the call back function. Can be NULL.
-cbfp (IN) - a callback that may be registered to be called for each piece in a 
-piecewise write. If this is NULL, the standard polling method will be used.
-The callback function must return OCI_CONTINUE for the write to continue. 
-If any other error code is returned, the LOB write is aborted. The 
-callback takes the following parameters:
-  ctxp (IN) - the context for the call back function. Can be NULL.
-  bufp (IN/OUT) - a buffer pointer for the piece.
-  lenp (IN/OUT) - the length of the buffer (in octets) and the length of 
-  current piece in bufp (out octets).
-  piecep (OUT) - which piece - OCI_NEXT_PIECE or OCI_LAST_PIECE.
-csid - the character set ID of the buffer data
-csfrm - the character set form of the buffer data
-Related Functions
-
-
-
-
-OCILogoff()
-Name
-OCI simplified Logoff
-Purpose
-This function is used to terminate a session created with OCILogon() or
-OCILogon2().
-Syntax
-sword OCILogoff ( OCISvcCtx      *svchp
-                   OCIError       *errhp );
-Comments
-This call is used to terminate a session which was created with OCILogon() or
-OCILogon2().  
-This call implicitly deallocates the server, authentication, and service 
-context handles.
-Note: For more information on logging on and off in an application, 
-refer to the section "Application Initialization, Connection, and 
-Authorization" on page 2-16.
-Parameters
-svchp (IN) - the service context handle which was used in the call to 
-OCILogon() or OCILogon2().
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-See Also
-OCILogon(), OCILogon2().
-
-
-
-
-
-
-OCILogon()
-Name
-OCI Service Context Logon
-Purpose
-This function is used to create a simple logon session.
-Syntax
-sword OCILogon ( OCIEnv          *envhp,
-                       OCIError        *errhp,
-                       OCISvcCtx       *svchp,
-                       CONST OraText      *username,
-                       ub4             uname_len,
-                       CONST OraText      *password,
-                       ub4             passwd_len,
-                       CONST OraText      *dbname,
-                       ub4             dbname_len );
-Comments
-This function is used to create a simple logon session for an application. 
-Note: Users requiring more complex session (e.g., TP monitor 
-applications) should refer to the section "Application Initialization, 
-Connection, and Authorization" on page 2-16.
-This call allocates the error and service context handles which are passed to 
-it. This call also implicitly allocates server and authentication handles 
-associated with the session.  These handles can be retrieved by calling 
-OCIAttrGet() on the service context handle.
-Parameters
-envhp (IN) - the OCI environment handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-svchp (OUT) - the service context pointer.
-username (IN) - the username.
-uname_len (IN) - the length of username.
-password (IN) - the user's password.
-passwd_len (IN) - the length of password.
-dbname (IN) - the name of the database to connect to.
-dbname_len (IN) - the length of dbname.
-See Also
-OCILogoff()
-
-
-
-
-
-OCILogon2()
-Name
-OCI Service Context Logon
-Purpose
-This function is used to create a logon session in connection pooling mode.
-Syntax
-sword OCILogon2 ( OCIEnv          *envhp,
-                       OCIError        *errhp,
-                       OCISvcCtx       **svchp,
-                       CONST OraText      *username,
-                       ub4             uname_len,
-                       CONST OraText      *password,
-                       ub4             passwd_len,
-                       CONST OraText      *dbname,
-                       ub4             dbname_len,
-                       ub4             mode);
-Comments
-This function is used to create a simple logon session for an application in
-Connection Pooling mode. The valid values for mode are currently OCI_POOL and
-OCI_DEFAULT. Call to this function with OCI_DEFAULT mode is equivalent to 
-OCILogon() call.
-This call allocates the error and service context handles which are passed to 
-it. This call also implicitly allocates server and authentication handles 
-associated with the session.  These handles can be retrieved by calling 
-OCIAttrGet() on the service context handle. This call assumes that 
-OCIConnectionPoolCreate() has already been called for the same dbname.
-Parameters
-envhp (IN) - the OCI environment handle.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-svchp (OUT) - the service context pointer.
-username (IN) - the username.
-uname_len (IN) - the length of username.
-password (IN) - the user's password. If this is null, it is assumed that a
-                proxy session has to be created and the required grants on 
-                the database are already done.
-passwd_len (IN) - the length of password.
-dbname (IN) - the name of the database to connect to.
-dbname_len (IN) - the length of dbname.
-mode (IN) - the mode for doing the server attach. Should be OCI_POOL for
-            using Connection Pooling.
-
-
-See Also
-OCILogoff()
-
-
-
-
-
-OCIMemoryFree()
-Name
-OCI FREE Memory
-Purpose
-Frees up storage associated with the pointer.
-Syntax
-void OCIMemoryFree ( CONST OCIStmt   *stmhp,
-                     dvoid           *memptr);
-Comments
-Frees up dynamically allocated data pointers associated with the pointer using 
-either the default memory free function or the registered memory free 
-function, as the case may be.
-A user-defined memory free function can be registered during the initial call 
-to OCIInitialize(). 
-This call is always successful. 
-Parameters
-stmhp (IN) - statement handle which returned this data buffer.
-memptr (IN) - pointer to data allocated by the client library. 
-Related Functions
-OCIInitialize()
-
-
-
-
-
-OCIParamGet()
-Name
-OCI Get PARaMeter
-Purpose
-Returns a descriptor of a parameter specified by position in the describe 
-handle or statement handle.
-Syntax
-sword OCIParamGet ( CONST dvoid       *hndlp,
-                  ub4         htype,
-                  OCIError    *errhp,
-                  dvoid    **parmdpp,
-                  ub4         pos );
-Comments
-This call returns a descriptor of a parameter specified by position in the 
-describe handle or statement handle. Parameter descriptors are always 
-allocated internally by the OCI library. They are read-only.
-OCI_NO_DATA may be returned if there are no parameter descriptors for this 
-position. 
-See Appendix B for more detailed information about parameter descriptor 
-attributes.
-Parameters
-hndlp (IN) - a statement handle or describe handle. The OCIParamGet() 
-function will return a parameter descriptor for this handle. 
-htype (IN) - the type of the handle passed in the handle parameter. Valid 
-types are OCI_HTYPE_DESCRIBE, for a describe handle OCI_HTYPE_STMT, for a 
-statement handle
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-parmdpp (OUT) - a descriptor of the parameter at the position given in the pos 
-parameter.
-pos (IN) - position number in the statement handle or describe handle. A 
-parameter descriptor will be returned for this position.
-Note: OCI_NO_DATA may be returned if there are no parameter 
-descriptors for this position. 
-Related Functions
-OCIAttrGet(), OCIAttrSet()
-
-
-
-
-
-OCIParamSet()
-Name
-OCI Parameter Set in handle
-Purpose
-Used to set a complex object retrieval descriptor into a complex object 
-retrieval handle.
-Syntax
-sword   OCIParamGet ( dvoid *hndlp,
-                       ub4 htyp,
-                      OCIError *errhp,
-                      CONST dvoid *dscp,
-                      ub4 dtyp,
-                      ub4 pos );
-Comments
-This call sets a given complex object retrieval descriptor into a complex 
-object retrieval handle.
-The handle must have been previously allocated using OCIHandleAlloc(), and 
-the descriptor must have been previously allocated using OCIDescAlloc(). 
-Attributes of the descriptor are set using OCIAttrSet().
-Parameters
-hndlp (IN/OUT) - handle pointer.
-htype (IN) - handle type.
-errhp (IN/OUT) - error handle.
-dscp (IN) - complex object retrieval descriptor pointer.
-dtyp (IN) - 
-pos (IN) - position number.
-See Also
-
-
-
-
-
-OCIPasswordChange()
-Name
-OCI Change PassWord
-Purpose
-This call allows the password of an account to be changed.
-Syntax
-sword OCIPasswordChange ( OCISvcCtx     *svchp,
-                        OCIError      *errhp,
-                        CONST OraText    *user_name,
-                        ub4           usernm_len,
-                        CONST OraText    *opasswd,
-                        ub4           opasswd_len,
-                        CONST OraText    *npasswd,
-                        sb4           npasswd_len,
-                        ub4           mode);
-Comments
-This call allows the password of an account to be changed. This call is 
-similar to OCISessionBegin() with the following differences:
-If the user authentication is already established, it authenticates 
-the account using the old password and then changes the 
-password to the new password
-If the user authentication is not established, it establishes a user 
-authentication and authenticates the account using the old 
-password, then changes the password to the new password.
-This call is useful when the password of an account is expired and 
-OCISessionBegin() returns an error or warning which indicates that the 
-password has expired. 
-Parameters
-svchp (IN/OUT) - a handle to a service context. The service context handle 
-must be initialized and have a server context handle associated with it.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-user_name (IN) - specifies the user name. It points to a character string, 
-whose length is specified in usernm_len. This parameter must be NULL if the 
-service context has been initialized with an authentication handle.
-usernm_len (IN) - the length of the user name string specified in user_name. 
-For a valid user name string, usernm_len must be non-zero.
-opasswd (IN) - specifies the user's old password. It points to a character 
-string, whose length is specified in opasswd_len .
-opasswd_len (IN) - the length of the old password string specified in opasswd. 
-For a valid password string, opasswd_len must be non-zero.
-npasswd (IN) - specifies the user's new password. It points to a character 
-string, whose length is specified in npasswd_len which must be non-zero for a 
-valid password string. If the password complexity verification routine is 
-specified in the user's profile to verify the new password's complexity, the 
-new password must meet the complexity requirements of the verification 
-function.
-npasswd_len (IN)  - then length of the new password string specified in 
-npasswd. For a valid password string, npasswd_len must be non-zero.
-mode - pass as OCI_DEFAULT.
-Related Functions
-OCISessionBegin()
-
-
-----------------------------------OCIReset------------------------------------
-
-
-OCIReset()
-Name
-OCI Reset
-Purpose
-Resets the interrupted asynchronous operation and protocol. Must be called
-if a OCIBreak call had been issued while a non-blocking operation was in
-progress.
-Syntax
-sword OCIReset ( dvoid      *hndlp,
-                 OCIError   *errhp);
-Comments
-This call is called in non-blocking mode ONLY. Resets the interrupted
-asynchronous operation and protocol. Must be called if a OCIBreak call 
-had been issued while a non-blocking operation was in progress. 
-Parameters
-hndlp (IN) - the service context handle or the server context handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-Related Functions
-
-
-OCIResultSetToStmt()
-Name
-OCI convert Result Set to Statement Handle
-Purpose
-Converts a descriptor to statement handle for fetching rows.
-Syntax
-sword OCIResultSetToStmt ( OCIResult     *rsetdp,
-                         OCIError      *errhp );
-Comments
-Converts a descriptor to statement handle for fetching rows.
-A result set descriptor can be allocated with a call to OCIDescAlloc().
-Parameters
-rsetdp (IN/OUT) - a result set descriptor pointer. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-Related Functions
-OCIDescAlloc()
-
-
-
-
-OCIServerAttach()
-Name
-OCI ATtaCH to server
-Purpose
-Creates an access path to a data source for OCI operations.
-Syntax
-sword OCIServerAttach ( OCIServer    *srvhp,
-                      OCIError     *errhp,
-                      CONST OraText   *dblink,
-                      sb4          dblink_len,
-                      ub4          mode);
-Comments
-This call is used to create an association between an OCI application and a 
-particular server. 
-This call initializes a server context handle, which must have been previously 
-allocated with a call to OCIHandleAlloc().
-The server context handle initialized by this call can be associated with a 
-service context through a call to OCIAttrSet(). Once that association has been 
-made, OCI operations can be performed against the server.
-If an application is operating against multiple servers, multiple server 
-context handles can be maintained. OCI operations are performed against 
-whichever server context is currently associated with the service context.
-Parameters
-srvhp (IN/OUT) - an uninitialized server context handle, which gets 
-initialized by this call. Passing in an initialized server handle causes an 
-error. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-dblink (IN) - specifies the database (server) to use. This parameter points to
-a character string which specifies a connect string or a service point. If the 
-connect string is NULL, then this call attaches to the default host. The length
-of connstr is specified in connstr_len. The connstr pointer may be freed by the
-caller on return.
-dblink_len (IN) - the length of the string pointed to by connstr. For a valid 
-connect string name or alias, connstr_len must be non-zero.
-mode (IN) - specifies the various modes of operation.  For release 8.0, pass as
-OCI_DEFAULT - in this mode, calls made to the server on this server context 
-are made in blocking mode. 
-Example
-See the description of OCIStmtPrepare() on page 13-96 for an example showing 
-the use of OCIServerAttach().
-Related Functions
-OCIServerDetach()
-
-
-
-OCIServerDetach()
-Name
-OCI DeTaCH server
-Purpose
-Deletes an access to a data source for OCI operations.
-Syntax
-sword OCIServerDetach ( OCIServer   *svrhp,
-                      OCIError    *errhp,
-                      ub4         mode); 
-Comments
-This call deletes an access to data source for OCI operations, which was 
-established by a call to OCIServerAttach(). 
-Parameters
-srvhp (IN) - a handle to an initialized server context, which gets reset to 
-uninitialized state. The handle is not de-allocated. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-mode (IN) - specifies the various modes of operation. The only valid mode is 
-OCI_DEFAULT for the default mode. 
-Related Functions
-OCIServerAttach()
-
-
-
-OCIServerVersion()
-Name
-OCI VERSion
-Purpose
-Returns the version string of the Oracle server.
-Syntax
-sword OCIServerVersion ( dvoid        *hndlp, 
-                       OCIError     *errhp, 
-                       OraText         *bufp,
-                       ub4          bufsz
-                       ub1          hndltype );
-Comments
-This call returns the version string of the Oracle server. 
-For example, the following might be returned as the version string if your 
-application is running against a 7.3.2 server:
-Oracle7 Server Release 7.3.2.0.0 - Production Release
-PL/SQL Release 2.3.2.0.0 - Production
-CORE Version 3.5.2.0.0 - Production
-TNS for SEQUENT DYNIX/ptx: Version 2.3.2.0.0 - Production
-NLSRTL Version 3.2.2.0.0 - Production
-
-Parameters
-hndlp (IN) - the service context handle or the server context handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-bufp (IN) - the buffer in which the version information is returned.
-bufsz (IN) - the length of the buffer.
-hndltype (IN) - the type of handle passed to the function.
-Related Functions
-
-
-
-
-
-OCISessionBegin()
-Name
-OCI Session Begin and authenticate user
-Purpose
-Creates a user authentication and begins a user session for a given server.
-Syntax
-sword OCISessionBegin ( OCISvcCtx     *svchp,
-                      OCIError      *errhp,
-                      OCISession    *usrhp,
-                      ub4           credt,
-                      ub4           mode);
-
-Comments
-For Oracle8, OCISessionBegin() must be called for any given server handle 
-before requests can be made against it. Also, OCISessionBegin() only supports 
-authenticating the user for access to the Oracle server specified by the 
-server handle in the service context. In other words, after OCIServerAttach() 
-is called to initialize a server handle, OCISessionBegin() must be called to 
-authenticate the user for that given server. 
-When OCISessionBegin() is called for the first time for the given server 
-handle, the initialized authentication handle is called a primary 
-authentication context. A primary authentication context may not be created 
-with the OCI_MIGRATE mode. Also, only one primary authentication context can 
-be created for a given server handle and the primary authentication context c
-an only ever be used with that server handle. If the primary authentication 
-context is set in a service handle with a different server handle, then an 
-error will result.
-After OCISessionBegin() has been called for the server handle, and the primary 
-authentication context is set in the service handle, OCISessionBegin() may be 
-called again to initialize another authentication handle with different (or 
-the same) credentials. When OCISessionBegin() is called with a service handle 
-set with a primary authentication context, the returned authentication context
-in authp is called a user authentication context. As many user authentication 
-contexts may be initialized as desired.
-User authentication contexts may be created with the OCI_MIGRATE mode. 
-If the OCI_MIGRATE mode is not specified, then the user authentication 
-context can only ever be used with the same server handle set in svchp. If 
-OCI_MIGRATE mode is specified, then the user authentication may be set 
-with different server handles. However, the user authentication context is 
-restricted to use with only server handles which resolve to the same database 
-instance and that have equivalent primary authentication contexts. Equivalent 
-authentication contexts are those which were authenticated as the same 
-database user.
-OCI_SYSDBA, OCI_SYSOPER, and OCI_PRELIM_AUTH may only be used 
-with a primary authentication context.
-To provide credentials for a call to OCISessionBegin(), one of two methods are 
-supported. The first is to provide a valid username and password pair for 
-database authentication in the user authentication handle passed to 
-OCISessionBegin(). This involves using OCIAttrSet() to set the 
-OCI_ATTR_USERNAME and OCI_ATTR_PASSWORD attributes on the 
-authentication handle. Then OCISessionBegin() is called with 
-OCI_CRED_RDBMS.
-Note: When the authentication handle is terminated using 
-OCISessionEnd(), the username and password attributes remain 
-unchanged and thus can be re-used in a future call to OCISessionBegin(). 
-Otherwise, they must be reset to new values before the next 
-OCISessionBegin() call.
-The second type of credentials supported are external credentials. No 
-attributes need to be set on the authentication handle before calling 
-OCISessionBegin(). The credential type is OCI_CRED_EXT. This is equivalent 
-to the Oracle7 `connect /' syntax. If values have been set for 
-OCI_ATTR_USERNAME and OCI_ATTR_PASSWORD, then these are 
-ignored if OCI_CRED_EXT is used.
-Parameters
-svchp (IN) - a handle to a service context. There must be a valid server 
-handle set in svchp.
-errhp (IN) - an error handle to the retrieve diagnostic information.
-usrhp (IN/OUT) - a handle to an authentication context, which is initialized 
-by this call.
-credt (IN) - specifies the type of credentials to use for authentication. 
-Valid values for credt are:
-OCI_CRED_RDBMS - authenticate using a database username and 
-password pair as credentials. The attributes OCI_ATTR_USERNAME 
-and OCI_ATTR_PASSWORD should be set on the authentication 
-context before this call.
-OCI_CRED_EXT - authenticate using external credentials. No username 
-or password is provided.
-mode (IN) - specifies the various modes of operation. Valid modes are:
-OCI_DEFAULT - in this mode, the authentication context returned may 
-only ever be set with the same server context specified in svchp. This 
-establishes the primary authentication context.
-OCI_MIGRATE - in this mode, the new authentication context may be 
-set in a service handle with a different server handle. This mode 
-establishes the user authentication context. 
-OCI_SYSDBA - in this mode, the user is authenticated for SYSDBA 
-access.
-OCI_SYSOPER - in this mode, the user is authenticated for SYSOPER 
-access.
-OCI_PRELIM_AUTH - this mode may only be used with OCI_SYSDBA 
-or OCI_SYSOPER to authenticate for certain administration tasks.
-Related Functions
-OCISessionEnd()
-
-
-
-
-
-
-OCISessionEnd()
-Name
-OCI Terminate user Authentication Context
-Purpose
-Terminates a user authentication context created by OCISessionBegin()
-Syntax
-sword OCISessionEnd ( OCISvcCtx       *svchp,
-                    OCIError        *errhp,
-                    OCISession      *usrhp,
-                    ub4             mode);
-
-Comments
-The user security context associated with the service context is invalidated 
-by this call. Storage for the authentication context is not freed. The 
-transaction specified by the service context is implicitly committed. The 
-transaction handle, if explicitly allocated, may be freed if not being used.
-Resources allocated on the server for this user are freed.
-The authentication handle may be reused in a new call to OCISessionBegin().
-Parameters
-svchp (IN/OUT) - the service context handle. There must be a valid server 
-handle and user authentication handle associated with svchp.
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-usrhp (IN) - de-authenticate this user. If this parameter is passed as NULL, the 
-user in the service context handle is de-authenticated.
-mode (IN) - the only valid mode is OCI_DEFAULT.
-Example
-In this example, an authentication context is destroyed.
-Related Functions
-OCISessionBegin()
-
-
-
-
-OCIStmtExecute()
-Name
-OCI EXECute
-Purpose
-This call associates an application request with a server.
-Syntax
-sword OCIStmtExecute ( OCISvcCtx           *svchp,
-                     OCIStmt             *stmtp,
-                     OCIError            *errhp,
-                     ub4                 iters,
-                     ub4                 rowoff,
-                     CONST OCISnapshot   *snap_in,
-                     OCISnapshot         *snap_out,
-                     ub4                 mode );
-Comments
-This function  is used to execute a prepared SQL statement.
-Using an execute call, the application associates a request with a server. On 
-success, OCI_SUCCESS is returned.
-If a SELECT statement is executed, the description of the select list follows 
-implicitly as a response. This description is buffered on the client side for 
-describes, fetches and define type conversions. Hence it is optimal to 
-describe a select list only after an execute. 
-Also for SELECT statements, some results are available implicitly. Rows will 
-be received and buffered at the end of the execute. For queries with small row 
-count, a prefetch causes memory to be released in the server if the end of 
-fetch is reached, an optimization that may result in memory usage reduction. 
-Set attribute call has been defined to set the number of rows to be prefetched
-per result set.
-For SELECT statements, at the end of the execute, the statement handle 
-implicitly maintains a reference to the service context on which it is 
-executed. It is the user's responsibility to maintain the integrity of the 
-service context. If the attributes of a service context is changed for 
-executing some operations on this service context, the service context must 
-be restored to have the same attributes, that a statement was executed with, 
-prior to a fetch on the statement handle. The implicit reference is maintained 
-until the statement handle is freed or the fetch is cancelled or an end of 
-fetch condition is reached.
-Note: If output variables are defined for a SELECT statement before a 
-call to OCIStmtExecute(), the number of rows specified by iters will be 
-fetched directly into the defined output buffers and additional rows 
-equivalent to the prefetch count will be prefetched. If there are no 
-additional rows, then the fetch is complete without calling 
-OCIStmtFetch().
-The execute call will return errors if the statement has bind data types that 
-are not supported in an Oracle7 server.
-Parameters
-svchp (IN/OUT) - service context handle. 
-stmtp (IN/OUT) - an statement handle - defines the statement and the 
-associated data to be executed at the server. It is invalid to pass in a 
-statement handle that has bind of data types only supported in release 8.0 
-when srvchp points to an Oracle7 server. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. If the statement is being 
-batched and it is successful, then this handle will contain this particular 
-statement execution specific errors returned from the server when the batch is 
-flushed.
-iters (IN) - the number of times this statement is executed for non-Select 
-statements. For Select statements, if iters is non-zero, then defines must 
-have been done for the statement handle. The execution fetches iters rows into 
-these predefined buffers and prefetches more rows depending upon the prefetch 
-row count. This function returns an error if iters=0 for non-SELECT 
-statements.
-rowoff (IN) - the index from which the data in an array bind is relevant for 
-this multiple row execution. 
-snap_in (IN) - this parameter is optional. if supplied, must point to a 
-snapshot descriptor of type OCI_DTYPE_SNAP.  The contents of this descriptor 
-must be obtained from the snap_out parameter of a previous call.  The 
-descriptor is ignored if the SQL is not a SELECT.  This facility allows 
-multiple service contexts to ORACLE to see the same consistent snapshot of the 
-database's committed data.  However, uncommitted data in one context is not 
-visible to another context even using the same snapshot.
-snap_out (OUT) - this parameter optional. if supplied, must point to a 
-descriptor of type OCI_DTYPE_SNAP. This descriptor is filled in with an 
-opaque representation which is the current ORACLE "system change 
-number" suitable as a snap_in input to a subsequent call to OCIStmtExecute().  
-This descriptor should not be used any longer than necessary in order to avoid 
-"snapshot too old" errors. 
-mode (IN) - The modes are:
-If OCI_DEFAULT_MODE, the default mode, is selected, the request is 
-immediately executed. Error handle contains diagnostics on error if any. 
-OCI_EXACT_FETCH - if the statement is a SQL SELECT, this mode is 
-only valid if the application has set the prefetch row count prior to this 
-call. In this mode, the OCI library will get up to the number of rows 
-specified (i.e., prefetch row count plus iters). If the number of rows 
-returned by the query is greater than this value, OCI_ERROR will be 
-returned with ORA-01422 as the implementation specific error in a 
-diagnostic record. If the number of rows returned by the query is 
-smaller than the prefetch row count, OCI_SUCCESS_WITH_INFO will 
-be returned with ORA-01403 as the implementation specific error. The 
-prefetch buffer size is ignored and the OCI library tries to allocate all the 
-space required to contain the prefetched rows. The exact fetch semantics 
-apply to only the top level rows. No more rows can be fetched for this 
-query at the end of the call. 
-OCI_KEEP_FETCH_STATE - the result set rows (not yet fetched) of this 
-statement executed in this transaction will be maintained when the 
-transaction is detached for migration. By default, a query is cancelled 
-when a transaction is detached for migration. This mode is the default 
-mode when connected to a V7 server. 
-Related Functions
-OCIStmtPrepare()
-
-
-
-
-
-OCIStmtFetch()
-Name
-OCI FetCH
-Purpose
-Fetches rows from a query.
-Syntax
-sword OCIStmtFetch ( OCIStmt     *stmtp,
-                   OCIError    *errhp, 
-                   ub4         nrows,
-                   ub2         orientation,
-                   ub4         mode);
-Comments
-The fetch call is a local call, if prefetched rows suffice. However, this is 
-transparent to the application. If LOB columns are being read, LOB locators 
-are fetched for subsequent LOB operations to be performed on these locators. 
-Prefetching is turned off if LONG columns are involved. 
-A fetch with nrows set to 0 rows effectively cancels the fetch for this 
-statement.
-Parameters
-stmtp (IN) - a statement (application request) handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-nrows (IN) - number of rows to be fetched from the current position.
-orientation (IN) - for release 8.0, the only acceptable value is 
-OCI_FETCH_NEXT, which is also the default value. 
-mode (IN) - for release 8.0, beta-1, the following mode is defined.
-OCI_DEFAULT - default mode
-OCI_EOF_FETCH - indicates that it is the last fetch from the result set. 
-If nrows is non-zero, setting this mode effectively cancels fetching after 
-retrieving nrows, otherwise it cancels fetching immediately. 
-Related Functions
-OCIAttrGet()
-
-OCIStmtFetch2()
-Name
-OCI FetCH2
-Purpose
-Fetches rows from a query.
-Syntax
-sword OCIStmtFetch2 ( OCIStmt     *stmtp,
-                   OCIError    *errhp, 
-                   ub4         nrows,
-                   ub2         orientation,
-                   ub4         scrollOffset,
-                   ub4         mode);
-Comments
-The fetch call works similar to the OCIStmtFetch call with the 
-addition of the fetchOffset parameter. It can be used on any 
-statement handle, whether it is scrollable or not. For a 
-non-scrollable statement handle, the only acceptable value 
-will be OCI_FETCH_NEXT, and the fetchOffset parameter will be 
-ignored. Applications are encouraged to use this new call. 
-
-A fetchOffset with OCI_FETCH_RELATIVE is equivalent to 
-OCI_FETCH_CURRENT with a value of 0, is equivalent to 
-OCI_FETCH_NEXT with a value of 1, and equivalent to 
-OCI_FETCH_PRIOR with a value of -1. Note that the range of 
-accessible rows is [1,OCI_ATTR_ROW_COUNT] beyond which an 
-error could be raised if sufficient rows do not exist in 
-
-The fetch call is a local call, if prefetched rows suffice. However, this is 
-transparent to the application. If LOB columns are being read, LOB locators 
-are fetched for subsequent LOB operations to be performed on these locators. 
-Prefetching is turned off if LONG columns are involved. 
-A fetch with nrows set to 0 rows effectively cancels the fetch for this 
-statement.
-Parameters
-stmtp (IN) - a statement (application request) handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-nrows (IN) - number of rows to be fetched from the current position.
-It defaults to 1 for orientation OCI_FETCH_LAST.
-orientation (IN) -  The acceptable values are as follows, with 
-OCI_FETCH_NEXT being the default value.
-OCI_FETCH_CURRENT gets the current row, 
-OCI_FETCH_NEXT gets the next row from the current position,
-OCI_FETCH_FIRST gets the first row in the result set,
-OCI_FETCH_LAST gets the last row in the result set, 
-OCI_FETCH_PRIOR gets the previous row from the current row in the result set, 
-OCI_FETCH_ABSOLUTE will fetch the row number (specified by fetchOffset 
-parameter) in the result set using absolute positioning,
-OCI_FETCH_RELATIVE will fetch the row number (specified by fetchOffset 
-parameter) in the result set using relative positioning.
-scrollOffset(IN) - offset used with the OCI_FETCH_ABSOLUTE and 
-OCI_FETCH_RELATIVE orientation parameters only. It specify
-the new current position for scrollable result set. It is 
-ignored for non-scrollable result sets. 
-mode (IN) - for release 8.0, beta-1, the following mode is defined.
-OCI_DEFAULT - default mode
-OCI_EOF_FETCH - indicates that it is the last fetch from the result set. 
-If nrows is non-zero, setting this mode effectively cancels fetching after 
-retrieving nrows, otherwise it cancels fetching immediately. 
-Related Functions
-OCIAttrGet()
-
-
-
-OCIStmtGetPieceInfo()
-Name
-OCI Get Piece Information
-Purpose
-Returns piece information for a piecewise operation.
-Syntax
-sword OCIStmtGetPieceInfo( CONST OCIStmt  *stmtp,
-                         OCIError       *errhp,
-                         dvoid          **hndlpp,
-                         ub4            *typep,
-                         ub1            *in_outp,
-                         ub4            *iterp, 
-                         ub4            *idxp,
-                         ub1            *piecep );
-
-Comments
-When an execute/fetch call returns OCI_NEED_DATA to get/return a 
-dynamic bind/define value or piece, OCIStmtGetPieceInfo() returns the 
-relevant information: bind/define handle, iteration or index number and 
-which piece.
-See the section "Runtime Data Allocation and Piecewise Operations" on page 
-5-16 for more information about using OCIStmtGetPieceInfo().
-Parameters
-stmtp (IN) - the statement when executed returned OCI_NEED_DATA. 
-errhp (OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-hndlpp (OUT) - returns a pointer to the bind or define handle of the bind or 
-define whose runtime data is required or is being provided.
-typep (OUT) - the type of the handle pointed to by hndlpp: OCI_HTYPE_BIND 
-(for a bind handle) or OCI_HTYPE_DEFINE (for a define handle).
-in_outp (OUT) - returns OCI_PARAM_IN if the data is required for an IN bind 
-value. Returns OCI_PARAM_OUT if the data is available as an OUT bind 
-variable or a define position value.
-iterp (OUT) - returns the row number of a multiple row operation.
-idxp (OUT) - the index of an array element of a PL/SQL array bind operation.
-piecep (OUT) - returns one of the following defined values - 
-OCI_ONE_PIECE, OCI_FIRST_PIECE, OCI_NEXT_PIECE and 
-OCI_LAST_PIECE. The default value is always OCI_ONE_PIECE. 
-Related Functions
-OCIAttrGet(), OCIAttrGet(), OCIStmtExecute(), OCIStmtFetch(), 
-OCIStmtSetPieceInfo()
-
-
-
-
-OCIStmtPrepare()
-Name
-OCI Statement REQuest
-Purpose
-This call defines the SQL/PLSQL statement to be executed.
-Syntax
-sword OCIStmtPrepare ( OCIStmt      *stmtp,
-                     OCIError     *errhp,
-                     CONST OraText   *stmt, 
-                     ub4          stmt_len,
-                     ub4          language,
-                     ub4          mode);
-Comments
-This call is used to prepare a SQL or PL/SQL statement for execution. The 
-OCIStmtPrepare() call defines an application request. 
-This is a purely local call. Data values for this statement initialized in 
-subsequent bind calls will be stored in a bind handle which will hang off this 
-statement handle.
-This call does not create an association between this statement handle and any 
-particular server.
-See the section "Preparing Statements" on page 2-21 for more information 
-about using this call.
-Parameters
-stmtp (IN) - a statement handle.
-errhp (IN) - an error handle to retrieve diagnostic information.
-stmt (IN) - SQL or PL/SQL statement to be executed. Must be a null-
-terminated string. The pointer to the OraText of the statement must be available 
-as long as the statement is executed.
-stmt_len (IN) - length of the statement. Must not be zero.
-language (IN) - V7, V8, or native syntax. Possible values are:
-OCI_V7_SYNTAX - V7 ORACLE parsing syntax
-OCI_V8_SYNTAX - V8 ORACLE parsing syntax
-OCI_NTV_SYNTAX - syntax depending upon the version of the server. 
-mode (IN) - the only defined mode is OCI_DEFAULT for default mode. 
-Example
-This example demonstrates the use of OCIStmtPrepare(), as well as the OCI 
-application initialization calls.
-Related Functions
-OCIAttrGet(), OCIStmtExecute()
-
-
-OCIStmtPrepare2()
-Name
-OCI Statement REQuest with (a) early binding to svchp and/or
-(b) stmt caching
-Purpose
-This call defines the SQL/PLSQL statement to be executed.
-Syntax
-sword OCIStmtPrepare2 ( OCISvcCtx *svchp,
-                     OCIStmt      **stmtp,
-                     OCIError     *errhp,
-                     CONST OraText   *stmt,
-                     ub4          stmt_len,
-                     CONST OraText *key,
-                     ub4          key_len,
-                     ub4          language,
-                     ub4          mode);
-Comments
-This call is used to prepare a SQL or PL/SQL statement for execution. The
-OCIStmtPrepare() call defines an application request.
-This is a purely local call. Data values for this statement initialized in
-subsequent bind calls will be stored in a bind handle which will hang off this
-statement handle.
-This call creates an association between the statement handle and a service
-context. It differs from OCIStmtPrepare in that respect.It also supports
-stmt caching. The stmt will automatically be cached if the authp of the stmt
-has enabled stmt caching.
-Parameters
-svchp (IN) - the service context handle that contains the session that
-             this stmt handle belongs to.
-stmtp (OUT) - an unallocated stmt handle must be pased in. An allocated
-              and prepared  statement handle will be returned.
-errhp (IN) - an error handle to retrieve diagnostic information.
-stmt (IN) - SQL or PL/SQL statement to be executed. Must be a null-
-            terminated string. The pointer to the OraText of the statement 
-            must be available as long as the statement is executed.
-stmt_len (IN) - length of the statement. Must not be zero.
-key (IN) - This is only Valid for OCI Stmt Caching. It indicates the
-           key to search with. It thus optimizes the search in the cache.
-key_len (IN) - the length of the key. This, too, is onlly valid for stmt
-               caching.
-language (IN) - V7, V8, or native syntax. Possible values are:
-OCI_V7_SYNTAX - V7 ORACLE parsing syntax
-OCI_V8_SYNTAX - V8 ORACLE parsing syntax
-OCI_NTV_SYNTAX - syntax depending upon the version of the server.
-mode (IN) - the defined modes are OCI_DEFAULT and OCI_PREP2_CACHE_SEARCHONLY.
-Example
-Related Functions
-OCIStmtExecute(), OCIStmtRelease()
-
-
-OCIStmtRelease()
-Name
-OCI Statement Release. This call is used to relesae the stmt that
-was retreived using OCIStmtPrepare2(). If the stmt is release
-using this call, OCIHandleFree() must not be called on the stmt
-handle.
-Purpose
-This call releases the statement obtained by OCIStmtPrepare2
-Syntax
-sword OCIStmtRelease ( OCIStmt      *stmtp,
-                     OCIError     *errhp,
-                     cONST OraText *key,
-                     ub4          key_len,
-                     ub4          mode);
-Comments
-This call is used to release a handle obtained via OCIStmtPrepare2().
-It also frees the memory associated with the handle.
-This is a purely local call.
-Parameters
-stmtp (IN/OUT) - The statement handle to be released/freed.
-errhp (IN) - an error handle to retrieve diagnostic information.
-key (IN) - This is only Valid for OCI Stmt Caching. It indicates the
-           key to tag the stmt with.
-key_len (IN) - the length of the key. This, too, is only valid for stmt
-               caching.
-mode (IN) - the defined modes are OCI_DEFAULT for default mode and
-            OCI_STRLS_CACHE_DELETE (only used for Stmt Caching).
-Example
-Related Functions
-OCIStmtExecute(), OCIStmtPrepare2()
-
-
-OCIStmtSetPieceInfo()
-Name
-OCI Set Piece Information
-Purpose
-Sets piece information for a piecewise operation.
-Syntax
-sword OCIStmtSetPieceInfo ( dvoid             *hndlp,
-                          ub4               type,
-                          OCIError          *errhp,
-                          CONST dvoid       *bufp,
-                          ub4               *alenp, 
-                          ub1               piece,
-                          CONST dvoid       *indp, 
-                          ub2               *rcodep ); 
-Comments
-When an execute call returns OCI_NEED_DATA to get a dynamic IN/OUT 
-bind value or piece, OCIStmtSetPieceInfo() sets the piece information: the 
-buffer, the length, the indicator and which piece is currently being processed.
-For more information about using OCIStmtSetPieceInfo() see the section 
-"Runtime Data Allocation and Piecewise Operations" on page 5-16.
-Parameters
-hndlp (IN/OUT) - the bind/define handle.
-type (IN) - type of the handle. 
-errhp (OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-bufp (IN/OUT) - bufp is a pointer to a storage containing the data value or 
-the piece when it is an IN bind variable, otherwise bufp is a pointer to 
-storage for getting a piece or a value for OUT binds and define variables. For
-named data types or REFs, a pointer to the object or REF is returned.
-alenp (IN/OUT) - the length of the piece or the value. 
-piece (IN) - the piece parameter. The following are valid values: 
-OCI_ONE_PIECE, OCI_FIRST_PIECE, OCI_NEXT_PIECE, or 
-OCI_LAST_PIECE. 
-The default value is OCI_ONE_PIECE. This parameter is used for IN bind 
-variables only.
-indp (IN/OUT) - indicator. A pointer to a sb2 value or pointer to an indicator 
-structure for named data types (SQLT_NTY) and REFs (SQLT_REF), i.e., *indp 
-is either an sb2 or a dvoid * depending upon the data type.
-rcodep (IN/OUT) - return code. 
-Related Functions
-OCIAttrGet(), OCIAttrGet(), OCIStmtExecute(), OCIStmtFetch(), 
-OCIStmtGetPieceInfo()
-
-
-OCIFormatInit
-Name
-OCIFormat Package Initialize
-Purpose
-Initializes the OCIFormat package.
-Syntax
-sword OCIFormatInit(dvoid *hndl, OCIError *err);
-Comments
-This routine must be called before calling any other OCIFormat routine.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - OCI environment or session handle
-err (IN/OUT) - OCI error handle
-Related Functions
-OCIFormatTerm()
-
-
-OCIFormatString
-Name
-OCIFormat Package Format String
-Purpose
-Writes a text string into the supplied text buffer using the argument
-list submitted to it and in accordance with the format string given.
-Syntax
-sword OCIFormatString(dvoid *hndl, OCIError *err, OraText *buffer,
-                      sbig_ora bufferLength, sbig_ora *returnLength,
-                      CONST OraText *formatString, ...);
-Comments
-The first call to this routine must be preceded by a call to the
-OCIFormatInit routine that initializes the OCIFormat package
-for use.  When this routine is no longer needed then terminate
-the OCIFormat package by a call to the OCIFormatTerm routine.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl         (IN/OUT) - OCI environment or session handle
-err          (IN/OUT) - OCI error handle
-buffer       (OUT)    - text buffer for the string
-bufferLength (IN)     - length of the text buffer
-returnLength (OUT)    - length of the formatted string
-formatString (IN)     - format specification string
-...          (IN)     - variable argument list
-Related Functions
-
-
-OCIFormatTerm 
-Name
-OCIFormat Package Terminate
-Purpose
-Terminates the OCIFormat package.
-Syntax
-sword OCIFormatTerm(dvoid *hndl, OCIError *err);
-Comments
-It must be called after the OCIFormat package is no longer being used.
-Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-Parameters
-hndl (IN/OUT) - OCI environment or session handle
-err (IN/OUT) - OCI error handle
-Related Functions
-OCIFormatInit()
-
-
-OCIFormatTUb1
-Name
-OCIFormat Package ub1 Type
-Purpose
-Return the type value for the ub1 type.
-Syntax
-sword OCIFormatTUb1(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTUb2
-Name
-OCIFormat Package ub2 Type
-Purpose
-Return the type value for the ub2 type.
-Syntax
-sword OCIFormatTUb2(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTUb4
-Name
-OCIFormat Package ub4 Type
-Purpose
-Return the type value for the ub4 type.
-Syntax
-sword OCIFormatTUb4(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTUword
-Name
-OCIFormat Package uword Type
-Purpose
-Return the type value for the uword type.
-Syntax
-sword OCIFormatTUword(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTUbig_ora
-Name
-OCIFormat Package ubig_ora Type
-Purpose
-Return the type value for the ubig_ora type.
-Syntax
-sword OCIFormatTUbig_ora(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSb1
-Name
-OCIFormat Package sb1 Type
-Purpose
-Return the type value for the sb1 type.
-Syntax
-sword OCIFormatTSb1(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSb2
-Name
-OCIFormat Package sb2 Type
-Purpose
-Return the type value for the sb2 type.
-Syntax
-sword OCIFormatTSb2(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSb4
-Name
-OCIFormat Package sb4 Type
-Purpose
-Return the type value for the sb4 type.
-Syntax
-sword OCIFormatTSb4(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSword
-Name
-OCIFormat Package sword Type
-Purpose
-Return the type value for the sword type.
-Syntax
-sword OCIFormatTSword(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTSbig_ora
-Name
-OCIFormat Package sbig_ora Type
-Purpose
-Return the type value for the sbig_ora type.
-Syntax
-sword OCIFormatTSbig_ora(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEb1
-Name
-OCIFormat Package eb1 Type
-Purpose
-Return the type value for the eb1 type.
-Syntax
-sword OCIFormatTEb1(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEb2
-Name
-OCIFormat Package eb2 Type
-Purpose
-Return the type value for the eb2 type.
-Syntax
-sword OCIFormatTEb2(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEb4
-Name
-OCIFormat Package eb4 Type
-Purpose
-Return the type value for the eb4 type.
-Syntax
-sword OCIFormatTEb4(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEword
-Name
-OCIFormat Package eword Type
-Purpose
-Return the type value for the eword type.
-Syntax
-sword OCIFormatTEword(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTChar
-Name
-OCIFormat Package text Type
-Purpose
-Return the type value for the text type.
-Syntax
-sword OCIFormatTChar(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTText
-Name
-OCIFormat Package *text Type
-Purpose
-Return the type value for the *text type.
-Syntax
-sword OCIFormatTText(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTDouble
-Name
-OCIFormat Package double Type
-Purpose
-Return the type value for the double type.
-Syntax
-sword OCIFormatTDouble(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatDvoid
-Name
-OCIFormat Package dvoid Type
-Purpose
-Return the type value for the dvoid type.
-Syntax
-sword OCIFormatTDvoid(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCIFormatTEnd
-Name
-OCIFormat Package end Type
-Purpose
-Return the list terminator's "type".
-Syntax
-sword OCIFormatTEnd(void);
-Comments
-None
-Parameters
-None
-Related Functions
-None
-
-
-OCISvcCtxToLda()
-Name
-OCI toggle SerVice context handle to Version 7 Lda_Def
-Purpose
-Toggles between a V8 service context handle and a V7 Lda_Def.
-Syntax
-sword OCISvcCtxToLda ( OCISvcCtx    *srvhp,
-                     OCIError     *errhp,
-                     Lda_Def      *ldap );
-Comments
-Toggles between an Oracle8 service context handle and an Oracle7 Lda_Def.
-This function can only be called after a service context has been properly 
-initialized.
-Once the service context has been translated to an Lda_Def, it can be used in 
-release 7.x OCI calls (e.g., obindps(), ofen()).
-Note: If there are multiple service contexts which share the same server 
-handle, only one can be in V7 mode at any time.
-The action of this call can be reversed by passing the resulting Lda_Def to 
-the OCILdaToSvcCtx() function.
-Parameters
-svchp (IN/OUT) - the service context handle. 
-errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error. 
-ldap (IN/OUT) - a Logon Data Area for V7-style OCI calls which is initialized 
-by this call. 
-Related Functions
-OCILdaToSvcCtx()
-
-
-
-
-OCITransCommit()
-Name
-OCI TX (transaction) CoMmit
-Purpose
-Commits the transaction associated with a specified service context.
-Syntax
-sword OCITransCommit ( OCISvcCtx    *srvcp,
-                     OCIError     *errhp,
-                     ub4          flags );
-Comments
-The transaction currently associated with the service context is committed. If 
-it is a distributed transaction that the server cannot commit, this call 
-additionally retrieves the state of the transaction from the database to be 
-returned to the user in the error handle.
-If the application has defined multiple transactions, this function operates 
-on the transaction currently associated with the service context. If the 
-application is working with only the implicit local transaction created when 
-database changes are made, that implicit transaction is committed.
-If the application is running in the object mode, then the modified or updated 
-objects in the object cache for this transaction are also committed.
-The flags parameter is used for one-phase commit optimization in distributed 
-transactions. If the transaction is non-distributed, the flags parameter is 
-ignored, and OCI_DEFAULT can be passed as its value. OCI applications 
-managing global transactions should pass a value of 
-OCI_TRANS_TWOPHASE to the flags parameter for a two-phase commit. The 
-default is one-phase commit.
-Under normal circumstances, OCITransCommit() returns with a status 
-indicating that the transaction has either been committed or rolled back. With 
-distributed transactions, it is possible that the transaction is now in-doubt 
-(i.e., neither committed nor aborted). In this case, OCITransCommit() 
-attempts to retrieve the status of the transaction from the server. 
-The status is returned.
-Parameters
-srvcp (IN) - the service context handle.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags -see the "Comments" section above.
-Related Functions
-OCITransRollback()
-
-
-
-
-OCITransDetach()
-Name
-OCI TX (transaction) DeTach
-Purpose
-Detaches a transaction.
-Syntax
-sword OCITransDetach ( OCISvcCtx    *srvcp,
-                     OCIError     *errhp,
-                     ub4          flags);
-Comments
-Detaches a global transaction from the service context handle. The transaction 
-currently attached to the service context handle becomes inactive at the end 
-of this call. The transaction may be resumed later by calling OCITransStart(), 
-specifying  a flags value of OCI_TRANS_RESUME.
-When a transaction is detached, the value which was specified in the timeout 
-parameter of OCITransStart() when the transaction was started is used to 
-determine the amount of time the branch can remain inactive before being 
-deleted by the server's PMON process.
-Note: The transaction can be resumed by a different process than the one 
-that detached it, provided that the transaction has the same 
-authorization.
-Parameters
-srvcp (IN) - the service context handle. 
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags (IN) - you must pass a value of OCI_DEFAULT for this parameter.
-Related Functions
-OCITransStart()
-
-
-
-OCITransForget()
-Name
-OCI TX (transaction) ForGeT
-Purpose
-Causes the server to forget a heuristically completed global transaction.
-Syntax
-sword OCITransForget ( OCISvcCtx     *svchp, 
-                     OCIError      *errhp,
-                     ub4           flags);
-
-Comments
-
-Forgets a heuristically completed global transaction. The server deletes the 
-status of the transaction from the system's pending transaction table.
-The XID of the transaction to be forgotten is set as an attribute of the 
-transaction handle (OCI_ATTR_XID).
-Parameters
-srvcp (IN) - the service context handle - the transaction is rolled back.
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags (IN) - you must pass OCI_DEFAULT for this parameter.
-Related Functions
-OCITransCommit(), OCITransRollback()
-
-
-OCITransMultiPrepare() 
-Name
-OCI Trans(action) Multi-Branch Prepare
-Purpose
-Prepares a transaction with multiple branches in a single call.
-Syntax
-sword OCITransMultiPrepare ( OCISvcCtx    *svchp,
-                             ub4           numBranches,
-                             OCITrans     **txns,
-                             OCIError     **errhp);
-
-Comments
-
-Prepares the specified global transaction for commit.
-This call is valid only for distributed transactions.
-This call is an advanced performance feature intended for use only in
-situations where the caller is responsible for preparing all the branches
-in a transaction. 
-Parameters
-srvcp (IN) - the service context handle. 
-numBranches (IN) - This is the number of branches expected. It is also the
-array size for the next two parameters.
-txns (IN) - This is the array of transaction handles for the branches to
-prepare. They should all have the OCI_ATTR_XID set. The global transaction
-ID should be the same.
-errhp (IN) - This is the array of error handles. If OCI_SUCCESS is not
-returned, then these will indicate which branches received which errors.
-Related Functions
-OCITransPrepare()
-
-
-OCITransPrepare()
-Name
-OCI TX (transaction) PREpare
-Purpose
-Prepares a transaction for commit.
-Syntax
-sword OCITransPrepare ( OCISvcCtx    *svchp, 
-                      OCIError     *errhp,
-                      ub4          flags);
-
-Comments
-
-Prepares the specified global transaction for commit.
-This call is valid only for distributed transactions.
-The call returns OCI_SUCCESS_WITH_INFO if the transaction has not made 
-any changes. The error handle will indicate that the transaction is read-only. 
-The flag parameter is not currently used. 
-Parameters
-srvcp (IN) - the service context handle. 
-errhp (IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags (IN) - you must pass OCI_DEFAULT for this parameter.
-Related Functions
-OCITransCommit(), OCITransForget()
-
-
-
-
-OCITransRollback()
-Name
-OCI TX (transaction) RoLlback
-Purpose
-Rolls back the current transaction.
-Syntax
-sword OCITransRollback ( dvoid        *svchp, 
-                       OCIError     *errhp,
-                       ub4          flags );
-Comments
-The current transaction- defined as the set of statements executed since the 
-last OCITransCommit() or since OCISessionBegin()-is rolled back.
-If the application is running under object mode then the modified or updated 
-objects in the object cache for this transaction are also rolled back.
-An error is returned if an attempt is made to roll back a global transaction 
-that is not currently active.
-Parameters
-svchp (IN) - a service context handle. The transaction currently set in the 
-service context handle is rolled back.
-errhp -(IN) - an error handle which can be passed to OCIErrorGet() for 
-diagnostic information in the event of an error.
-flags - you must pass a value of OCI_DEFAULT for this parameter.
-Related Functions
-OCITransCommit()
-
-
-
-
-OCITransStart()
-Name
-OCI TX (transaction) STart
-Purpose
-Sets the beginning of a transaction.
-Syntax
-sword OCITransStart ( OCISvcCtx    *svchp, 
-                    OCIError     *errhp, 
-                    uword        timeout,
-                    ub4          flags);
-
-Comments
-This function sets the beginning of a global or serializable transaction. The 
-transaction context currently associated with the service context handle is 
-initialized at the end of the call if the flags parameter specifies that a new 
-transaction should be started.
-The XID of the transaction is set as an attribute of the transaction handle 
-(OCI_ATTR_XID)
-Parameters
-svchp (IN/OUT) - the service context handle. The transaction context in the 
-service context handle is initialized at the end of the call if the flag 
-specified a new transaction to be started.
-errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded in 
-err and this function returns OCI_ERROR. Diagnostic information can be 
-obtained by calling OCIErrorGet().
-timeout (IN) - the time, in seconds, to wait for a transaction to become 
-available for resumption when OCI_TRANS_RESUME is specified. When 
-OCI_TRANS_NEW is specified, this value is stored and may be used later by 
-OCITransDetach().
-flags (IN) - specifies whether a new transaction is being started or an 
-existing transaction is being resumed. Also specifies serializiability or 
-read-only status. More than a single value can be specified. By default, 
-a read/write transaction is started. The flag values are:
-OCI_TRANS_NEW - starts a new transaction branch. By default starts a 
-tightly coupled and migratable branch.
-OCI_TRANS_TIGHT - explicitly specifies a tightly coupled branch
-OCI_TRANS_LOOSE - specifies a loosely coupled branch
-OCI_TRANS_RESUME - resumes an existing transaction branch. 
-OCI_TRANS_READONLY - start a readonly transaction
-OCI_TRANS_SERIALIZABLE - start a serializable transaction
-Related Functions
-OCITransDetach()
-
-
-
-
-
-******************************************************************************/
-/*-----------------------Dynamic Callback Function Pointers------------------*/
- 
- 
-typedef sb4 (*OCICallbackInBind)(dvoid *ictxp, OCIBind *bindp, ub4 iter,
-                                  ub4 index, dvoid **bufpp, ub4 *alenp,
-                                  ub1 *piecep, dvoid **indp);
- 
-typedef sb4 (*OCICallbackOutBind)(dvoid *octxp, OCIBind *bindp, ub4 iter,
-                                 ub4 index, dvoid **bufpp, ub4 **alenp,
-                                 ub1 *piecep, dvoid **indp,
-                                 ub2 **rcodep);
- 
-typedef sb4 (*OCICallbackDefine)(dvoid *octxp, OCIDefine *defnp, ub4 iter,
-                                 dvoid **bufpp, ub4 **alenp, ub1 *piecep,
-                                 dvoid **indp, ub2 **rcodep);
-
-typedef sword (*OCIUserCallback)(dvoid *ctxp, dvoid *hndlp, ub4 type,
-                                 ub4 fcode, ub4 when, sword returnCode,
-                                 sb4 *errnop, va_list arglist);
-
-typedef sword (*OCIEnvCallbackType)(OCIEnv *env, ub4 mode,
-                                   size_t xtramem_sz, dvoid *usrmemp,
-                                   OCIUcb *ucbDesc); 
-
-typedef sb4 (*OCICallbackLobRead)(dvoid *ctxp, CONST dvoid *bufp,
-                                             ub4 len, ub1 piece);
-
-typedef sb4 (*OCICallbackLobWrite)(dvoid *ctxp, dvoid *bufp, 
-                                          ub4 *lenp, ub1 *piece);
-
-/*--------------------------Failover Callback Structure ---------------------*/
-typedef sb4 (*OCICallbackFailover)(dvoid *svcctx, dvoid *envctx,
-                                   dvoid *fo_ctx, ub4 fo_type,
-                                   ub4 fo_event);
-
-typedef struct
-{
-  OCICallbackFailover callback_function;
-  dvoid *fo_ctx;
-} 
-OCIFocbkStruct;
-
-/*****************************************************************************
-                         ACTUAL PROTOTYPE DECLARATIONS
-******************************************************************************/
-
-sword   OCIInitialize   (ub4 mode, dvoid *ctxp, 
-                 dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-                 dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-                 void   (*mfreefp)(dvoid *ctxp, dvoid *memptr) );
-
-sword   OCITerminate( ub4 mode);
-
-sword   OCIEnvCreate (OCIEnv **envp, ub4 mode, dvoid *ctxp,
-                 dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-                 dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-                 void   (*mfreefp)(dvoid *ctxp, dvoid *memptr),
-                 size_t xtramem_sz, dvoid **usrmempp);
-
-sword   OCIEnvNlsCreate (OCIEnv **envp, ub4 mode, dvoid *ctxp,
-                 dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-                 dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-                 void   (*mfreefp)(dvoid *ctxp, dvoid *memptr),
-                 size_t xtramem_sz, dvoid **usrmempp,
-                 ub2 charset, ub2 ncharset);
-
-sword   OCIFEnvCreate (OCIEnv **envp, ub4 mode, dvoid *ctxp,
-                 dvoid *(*malocfp)(dvoid *ctxp, size_t size),
-                 dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
-                 void   (*mfreefp)(dvoid *ctxp, dvoid *memptr),
-                 size_t xtramem_sz, dvoid **usrmempp, dvoid *fupg);
-
-sword   OCIHandleAlloc(CONST dvoid *parenth, dvoid **hndlpp, CONST ub4 type, 
-                       CONST size_t xtramem_sz, dvoid **usrmempp);
-
-sword   OCIHandleFree(dvoid *hndlp, CONST ub4 type);
-
-
-sword   OCIDescriptorAlloc(CONST dvoid *parenth, dvoid **descpp, 
-                           CONST ub4 type, CONST size_t xtramem_sz, 
-                           dvoid **usrmempp);
-
-sword   OCIDescriptorFree(dvoid *descp, CONST ub4 type);
-
-sword   OCIEnvInit (OCIEnv **envp, ub4 mode, 
-                    size_t xtramem_sz, dvoid **usrmempp);
-
-sword   OCIServerAttach  (OCIServer *srvhp, OCIError *errhp,
-                          CONST OraText *dblink, sb4 dblink_len, ub4 mode);
-
-sword   OCIServerDetach  (OCIServer *srvhp, OCIError *errhp, ub4 mode);
-
-sword   OCISessionBegin  (OCISvcCtx *svchp, OCIError *errhp, OCISession *usrhp,
-                          ub4 credt, ub4 mode);
-
-sword   OCISessionEnd   (OCISvcCtx *svchp, OCIError *errhp, OCISession *usrhp, 
-                         ub4 mode);
-
-sword   OCILogon (OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp, 
-		  CONST OraText *username, ub4 uname_len, 
-		  CONST OraText *password, ub4 passwd_len, 
-		  CONST OraText *dbname, ub4 dbname_len);
-
-sword   OCILogon2 (OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp,
-                  CONST OraText *username, ub4 uname_len,
-                  CONST OraText *password, ub4 passwd_len,
-                  CONST OraText *dbname, ub4 dbname_len,
-                  ub4 mode);
-
-sword   OCILogoff (OCISvcCtx *svchp, OCIError *errhp);
-
-
-sword   OCIPasswordChange   (OCISvcCtx *svchp, OCIError *errhp, 
-                             CONST OraText *user_name, ub4 usernm_len, 
-                             CONST OraText *opasswd, ub4 opasswd_len, 
-                             CONST OraText *npasswd, ub4 npasswd_len, ub4 mode);
-
-sword   OCIStmtPrepare   (OCIStmt *stmtp, OCIError *errhp, CONST OraText *stmt,
-                          ub4 stmt_len, ub4 language, ub4 mode);
-
-sword OCIStmtPrepare2 ( OCISvcCtx *svchp, OCIStmt **stmtp, OCIError *errhp,
-                     CONST OraText *stmt, ub4 stmt_len, CONST OraText *key,
-                     ub4 key_len, ub4 language, ub4 mode);
-
-sword OCIStmtRelease ( OCIStmt *stmtp, OCIError *errhp, CONST OraText *key,
-                       ub4 key_len, ub4 mode);
-
-sword   OCIBindByPos  (OCIStmt *stmtp, OCIBind **bindp, OCIError *errhp,
-		       ub4 position, dvoid *valuep, sb4 value_sz,
-		       ub2 dty, dvoid *indp, ub2 *alenp, ub2 *rcodep,
-		       ub4 maxarr_len, ub4 *curelep, ub4 mode);
-
-sword   OCIBindByName   (OCIStmt *stmtp, OCIBind **bindp, OCIError *errhp,
-			 CONST OraText *placeholder, sb4 placeh_len, 
-                         dvoid *valuep, sb4 value_sz, ub2 dty, 
-                         dvoid *indp, ub2 *alenp, ub2 *rcodep, 
-                         ub4 maxarr_len, ub4 *curelep, ub4 mode);
-
-sword   OCIBindObject  (OCIBind *bindp, OCIError *errhp, CONST OCIType *type, 
-			dvoid **pgvpp, ub4 *pvszsp, dvoid **indpp, 
-			ub4 *indszp);
-
-sword   OCIBindDynamic   (OCIBind *bindp, OCIError *errhp, dvoid *ictxp,
-			  OCICallbackInBind icbfp, dvoid *octxp,
-			  OCICallbackOutBind ocbfp);
-
-sword   OCIBindArrayOfStruct   (OCIBind *bindp, OCIError *errhp, 
-                                ub4 pvskip, ub4 indskip,
-                                ub4 alskip, ub4 rcskip);
-
-sword   OCIStmtGetPieceInfo   (OCIStmt *stmtp, OCIError *errhp, 
-                               dvoid **hndlpp, ub4 *typep,
-                               ub1 *in_outp, ub4 *iterp, ub4 *idxp, 
-                               ub1 *piecep);
-
-sword   OCIStmtSetPieceInfo   (dvoid *hndlp, ub4 type, OCIError *errhp, 
-                               CONST dvoid *bufp, ub4 *alenp, ub1 piece, 
-                               CONST dvoid *indp, ub2 *rcodep);
-
-sword   OCIStmtExecute  (OCISvcCtx *svchp, OCIStmt *stmtp, OCIError *errhp, 
-                         ub4 iters, ub4 rowoff, CONST OCISnapshot *snap_in, 
-                         OCISnapshot *snap_out, ub4 mode);
-
-sword   OCIDefineByPos  (OCIStmt *stmtp, OCIDefine **defnp, OCIError *errhp,
-			 ub4 position, dvoid *valuep, sb4 value_sz, ub2 dty,
-			 dvoid *indp, ub2 *rlenp, ub2 *rcodep, ub4 mode);
-
-sword   OCIDefineObject  (OCIDefine *defnp, OCIError *errhp, 
-                          CONST OCIType *type, dvoid **pgvpp, 
-                          ub4 *pvszsp, dvoid **indpp, ub4 *indszp);
-
-sword   OCIDefineDynamic   (OCIDefine *defnp, OCIError *errhp, dvoid *octxp,
-                            OCICallbackDefine ocbfp);
-
-sword   OCIDefineArrayOfStruct  (OCIDefine *defnp, OCIError *errhp, ub4 pvskip,
-                                 ub4 indskip, ub4 rlskip, ub4 rcskip);
-
-sword   OCIStmtFetch   (OCIStmt *stmtp, OCIError *errhp, ub4 nrows, 
-                        ub2 orientation, ub4 mode);
-
-sword   OCIStmtFetch2   (OCIStmt *stmtp, OCIError *errhp, ub4 nrows, 
-                        ub2 orientation, sb4 scrollOffset, ub4 mode);
-
-sword   OCIStmtGetBindInfo   (OCIStmt *stmtp, OCIError *errhp, ub4 size, 
-                              ub4 startloc,
-                              sb4 *found, OraText *bvnp[], ub1 bvnl[],
-                              OraText *invp[], ub1 inpl[], ub1 dupl[],
-                              OCIBind *hndl[]);
-
-sword   OCIDescribeAny  (OCISvcCtx *svchp, OCIError *errhp, 
-                         dvoid *objptr, 
-                         ub4 objnm_len, ub1 objptr_typ, ub1 info_level,
-			 ub1 objtyp, OCIDescribe *dschp);
-
-sword   OCIParamGet (CONST dvoid *hndlp, ub4 htype, OCIError *errhp, 
-                     dvoid **parmdpp, ub4 pos);
-
-sword   OCIParamSet(dvoid *hdlp, ub4 htyp, OCIError *errhp, CONST dvoid *dscp,
-                    ub4 dtyp, ub4 pos);
-
-sword   OCITransStart  (OCISvcCtx *svchp, OCIError *errhp, 
-                        uword timeout, ub4 flags );
-
-sword   OCITransDetach  (OCISvcCtx *svchp, OCIError *errhp, ub4 flags );
-
-sword   OCITransCommit  (OCISvcCtx *svchp, OCIError *errhp, ub4 flags);
-
-sword   OCITransRollback  (OCISvcCtx *svchp, OCIError *errhp, ub4 flags);
-
-sword   OCITransPrepare (OCISvcCtx *svchp, OCIError *errhp, ub4 flags);
-
-sword   OCITransMultiPrepare (OCISvcCtx *svchp, ub4 numBranches, 
-                              OCITrans **txns, OCIError **errhp);
-
-sword   OCITransForget (OCISvcCtx *svchp, OCIError *errhp, ub4 flags);
-
-sword   OCIErrorGet   (dvoid *hndlp, ub4 recordno, OraText *sqlstate,
-                       sb4 *errcodep, OraText *bufp, ub4 bufsiz, ub4 type);
-
-sword   OCILobAppend  (OCISvcCtx *svchp, OCIError *errhp, 
-                       OCILobLocator *dst_locp,
-                       OCILobLocator *src_locp);
-
-sword   OCILobAssign (OCIEnv *envhp, OCIError *errhp, 
-                      CONST OCILobLocator *src_locp, 
-                      OCILobLocator **dst_locpp);
-
-sword   OCILobCharSetForm (OCIEnv *envhp, OCIError *errhp, 
-                           CONST OCILobLocator *locp, ub1 *csfrm);
-
-sword   OCILobCharSetId (OCIEnv *envhp, OCIError *errhp, 
-                         CONST OCILobLocator *locp, ub2 *csid);
-
-sword   OCILobCopy (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *dst_locp,
-                    OCILobLocator *src_locp, ub4 amount, ub4 dst_offset, 
-                    ub4 src_offset);
-
-sword OCILobCreateTemporary(OCISvcCtx          *svchp,
-                            OCIError           *errhp,
-                            OCILobLocator      *locp,
-                            ub2                 csid,
-                            ub1                 csfrm,
-                            ub1                 lobtype,
-                            boolean             cache,
-                            OCIDuration         duration);
-
-
-sword OCILobClose( OCISvcCtx        *svchp,
-                   OCIError         *errhp,
-                   OCILobLocator    *locp );
-
-
-sword   OCILobDisableBuffering (OCISvcCtx      *svchp,
-                                OCIError       *errhp,
-                                OCILobLocator  *locp);
-
-sword   OCILobEnableBuffering (OCISvcCtx      *svchp,
-                               OCIError       *errhp,
-                               OCILobLocator  *locp);
-
-sword   OCILobErase (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                      ub4 *amount, ub4 offset);
-
-sword   OCILobFileClose (OCISvcCtx *svchp, OCIError *errhp, 
-                         OCILobLocator *filep);
-
-sword   OCILobFileCloseAll (OCISvcCtx *svchp, OCIError *errhp);
-
-sword   OCILobFileExists (OCISvcCtx *svchp, OCIError *errhp, 
-			  OCILobLocator *filep,
-			  boolean *flag);
-
-sword   OCILobFileGetName (OCIEnv *envhp, OCIError *errhp, 
-                           CONST OCILobLocator *filep, 
-                           OraText *dir_alias, ub2 *d_length, 
-                           OraText *filename, ub2 *f_length);
-
-sword   OCILobFileIsOpen (OCISvcCtx *svchp, OCIError *errhp, 
-                          OCILobLocator *filep,
-                          boolean *flag);
-
-sword   OCILobFileOpen (OCISvcCtx *svchp, OCIError *errhp, 
-                        OCILobLocator *filep,
-                        ub1 mode);
-
-sword   OCILobFileSetName (OCIEnv *envhp, OCIError *errhp, 
-                           OCILobLocator **filepp, 
-                           CONST OraText *dir_alias, ub2 d_length, 
-                           CONST OraText *filename, ub2 f_length);
-
-sword   OCILobFlushBuffer (OCISvcCtx       *svchp,
-                           OCIError        *errhp,
-                           OCILobLocator   *locp,
-                           ub4              flag);
-
-sword OCILobFreeTemporary(OCISvcCtx          *svchp,
-                          OCIError           *errhp,
-                          OCILobLocator      *locp);
-
-sword OCILobGetChunkSize(OCISvcCtx         *svchp,
-                         OCIError          *errhp,
-                         OCILobLocator     *locp,
-                         ub4               *chunksizep);
-
-sword   OCILobGetLength  (OCISvcCtx *svchp, OCIError *errhp, 
-                          OCILobLocator *locp,
-                          ub4 *lenp);
-
-sword   OCILobIsEqual  (OCIEnv *envhp, CONST OCILobLocator *x, 
-                        CONST OCILobLocator *y, 
-                        boolean *is_equal);
-
-sword OCILobIsOpen( OCISvcCtx     *svchp,
-                    OCIError      *errhp,
-                    OCILobLocator *locp,
-                    boolean       *flag);
-
-sword OCILobIsTemporary(OCIEnv            *envp,
-                        OCIError          *errhp,
-                        OCILobLocator     *locp,
-                        boolean           *is_temporary);
-
-sword   OCILobLoadFromFile (OCISvcCtx *svchp, OCIError *errhp, 
-                            OCILobLocator *dst_locp,
-       	                    OCILobLocator *src_filep, 
-                            ub4 amount, ub4 dst_offset, 
-                            ub4 src_offset);
-
-sword   OCILobLocatorAssign  (OCISvcCtx *svchp, OCIError *errhp, 
-                            CONST OCILobLocator *src_locp, 
-                            OCILobLocator **dst_locpp);
-
-
-sword   OCILobLocatorIsInit (OCIEnv *envhp, OCIError *errhp, 
-                             CONST OCILobLocator *locp, 
-                             boolean *is_initialized);
-
-sword   OCILobOpen( OCISvcCtx        *svchp,
-                   OCIError         *errhp,
-                   OCILobLocator    *locp,
-                   ub1               mode );
- 
-sword   OCILobRead  (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                     ub4 *amtp, ub4 offset, dvoid *bufp, ub4 bufl, 
-                     dvoid *ctxp, sb4 (*cbfp)(dvoid *ctxp, 
-                                              CONST dvoid *bufp, 
-                                              ub4 len, 
-                                              ub1 piece),
-                     ub2 csid, ub1 csfrm);
-
-sword   OCILobTrim  (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                     ub4 newlen);
-
-sword   OCILobWrite  (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
-                      ub4 *amtp, ub4 offset, dvoid *bufp, ub4 buflen, 
-                      ub1 piece, dvoid *ctxp, 
-                      sb4 (*cbfp)(dvoid *ctxp, 
-                                  dvoid *bufp, 
-                                  ub4 *len, 
-                                  ub1 *piece),
-                      ub2 csid, ub1 csfrm);
-
-sword OCILobWriteAppend(OCISvcCtx *svchp, OCIError *errhp, 
-                        OCILobLocator *lobp, ub4 *amtp, 
-                        dvoid *bufp, ub4 bufl, ub1 piece, dvoid *ctxp,
-                       sb4 (*cbfp)(dvoid *ctxp, dvoid *bufp, ub4 *len, 
-                       ub1 *piece), 
-                      ub2 csid, ub1 csfrm);
-
-sword   OCIBreak (dvoid *hndlp, OCIError *errhp);
-
-sword   OCIReset (dvoid *hndlp, OCIError *errhp);
-
-sword   OCIServerVersion  (dvoid *hndlp, OCIError *errhp, OraText *bufp, 
-                           ub4 bufsz,
-                           ub1 hndltype);
-
-sword   OCIServerRelease  (dvoid *hndlp, OCIError *errhp, OraText *bufp,
-                           ub4 bufsz,
-                           ub1 hndltype, ub4 *version);
-
-sword   OCIAttrGet (CONST dvoid *trgthndlp, ub4 trghndltyp, 
-                    dvoid *attributep, ub4 *sizep, ub4 attrtype, 
-                    OCIError *errhp);
-
-sword   OCIAttrSet (dvoid *trgthndlp, ub4 trghndltyp, dvoid *attributep,
-                    ub4 size, ub4 attrtype, OCIError *errhp);
-
-sword   OCISvcCtxToLda (OCISvcCtx *svchp, OCIError *errhp, Lda_Def *ldap);
-
-sword   OCILdaToSvcCtx (OCISvcCtx **svchpp, OCIError *errhp, Lda_Def *ldap);
-
-sword   OCIResultSetToStmt (OCIResult *rsetdp, OCIError *errhp);
-
-sword OCIFileClose ( dvoid  *hndl, OCIError *err, OCIFileObject *filep );
-
-sword	OCIUserCallbackRegister(dvoid *hndlp, ub4 type, dvoid *ehndlp,
-                                    OCIUserCallback callback, dvoid *ctxp,
-                                    ub4 fcode, ub4 when, OCIUcb *ucbDesc);
-
-sword	OCIUserCallbackGet(dvoid *hndlp, ub4 type, dvoid *ehndlp,
-                               ub4 fcode, ub4 when, OCIUserCallback *callbackp,
-                               dvoid **ctxpp, OCIUcb *ucbDesc);
-
-sword   OCISharedLibInit(dvoid *metaCtx, dvoid *libCtx, ub4 argfmt, sword argc,
-                         dvoid *argv[], OCIEnvCallbackType envCallback);
-
-sword OCIFileExists ( dvoid  *hndl, OCIError *err, OraText *filename,
-                     OraText *path, ub1 *flag  );
-
-sword OCIFileFlush( dvoid *hndl, OCIError *err, OCIFileObject *filep  );
-
-
-sword OCIFileGetLength( dvoid *hndl, OCIError *err, OraText *filename,
-                        OraText *path, ubig_ora *lenp  );
-
-sword OCIFileInit ( dvoid *hndl, OCIError *err );
-
-sword OCIFileOpen ( dvoid *hndl, OCIError *err, OCIFileObject **filep,
-                    OraText *filename, OraText *path, ub4 mode, ub4 create, 
-                    ub4 type );
-
-sword OCIFileRead ( dvoid *hndl, OCIError *err, OCIFileObject *filep,
-                    dvoid *bufp, ub4 bufl, ub4 *bytesread );
-
-sword OCIFileSeek ( dvoid *hndl, OCIError *err, OCIFileObject *filep,
-                     uword origin, ubig_ora offset, sb1 dir );
-
-sword OCIFileTerm ( dvoid *hndl, OCIError *err );
-
-
-sword OCIFileWrite ( dvoid *hndl, OCIError *err, OCIFileObject   *filep,
-                     dvoid *bufp, ub4 buflen, ub4 *byteswritten );
-
-
-/*
- ** Initialize the security package
- */
-sword   OCISecurityInitialize (OCISecurity *sechandle, OCIError *error_handle);
-
-sword   OCISecurityTerminate (OCISecurity *sechandle, OCIError *error_handle);
-
-sword OCISecurityOpenWallet(OCISecurity *osshandle,
-                            OCIError *error_handle,
-                            size_t wrllen,
-                            OraText *wallet_resource_locator,
-                            size_t pwdlen,
-                            OraText *password,
-                            nzttWallet *wallet);
-
-sword OCISecurityCloseWallet(OCISecurity *osshandle,
-                             OCIError *error_handle,
-                             nzttWallet *wallet);
-
-sword OCISecurityCreateWallet(OCISecurity *osshandle,
-                              OCIError *error_handle,
-                              size_t wrllen,
-                              OraText *wallet_resource_locator,
-                              size_t pwdlen,
-                              OraText *password,
-                              nzttWallet *wallet);
-
-sword OCISecurityDestroyWallet(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               size_t wrllen,
-                               OraText *wallet_resource_locator,
-                               size_t pwdlen,
-                               OraText *password);
-
-sword OCISecurityStorePersona(OCISecurity *osshandle,
-                              OCIError *error_handle,
-                              nzttPersona **persona,
-                              nzttWallet *wallet);
-
-sword OCISecurityOpenPersona(OCISecurity *osshandle,
-                             OCIError *error_handle,
-                             nzttPersona *persona);
-
-sword OCISecurityClosePersona(OCISecurity *osshandle,
-                              OCIError *error_handle,
-                              nzttPersona *persona);
-
-sword OCISecurityRemovePersona(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               nzttPersona **persona);
-
-sword OCISecurityCreatePersona(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               nzttIdentType identity_type,
-                               nzttCipherType cipher_type,
-                               nzttPersonaDesc *desc,
-                               nzttPersona **persona);
-
-sword OCISecuritySetProtection(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               nzttPersona *persona,
-                               nzttcef crypto_engine_function,
-                               nztttdufmt data_unit_format,
-                               nzttProtInfo *protection_info);
-
-sword OCISecurityGetProtection(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               nzttPersona *persona,
-                               nzttcef crypto_engine_function,
-                               nztttdufmt * data_unit_format_ptr,
-                               nzttProtInfo *protection_info);
-
-sword OCISecurityRemoveIdentity(OCISecurity *osshandle,
-                                OCIError *error_handle,
-                                nzttIdentity **identity_ptr);
-
-sword OCISecurityCreateIdentity(OCISecurity *osshandle,
-                                OCIError *error_handle,
-                                nzttIdentType type,
-                                nzttIdentityDesc *desc,
-                                nzttIdentity **identity_ptr);
-
-sword OCISecurityAbortIdentity(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               nzttIdentity **identity_ptr);
-
-sword OCISecurityFreeIdentity(OCISecurity *osshandle,
-			      OCIError *error_handle,
-			      nzttIdentity **identity_ptr);
-
-
-sword OCISecurityStoreTrustedIdentity(OCISecurity *osshandle,
-                                      OCIError *error_handle,
-                                      nzttIdentity **identity_ptr,
-                                      nzttPersona *persona);
-
-sword OCISecuritySign(OCISecurity *osshandle,
-                      OCIError *error_handle,
-                      nzttPersona *persona,
-                      nzttces signature_state,
-                      size_t input_length,
-                      ub1 *input,
-                      nzttBufferBlock *buffer_block);
-
-sword OCISecuritySignExpansion(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               nzttPersona *persona,
-                               size_t inputlen,
-                               size_t *signature_length);
-
-sword OCISecurityVerify(OCISecurity *osshandle,
-                        OCIError *error_handle,
-                        nzttPersona *persona,
-                        nzttces signature_state,
-                        size_t siglen,
-                        ub1 *signature,
-                        nzttBufferBlock *extracted_message,
-                        boolean *verified,
-                        boolean *validated,
-                        nzttIdentity **signing_party_identity);
-
-sword OCISecurityValidate(OCISecurity *osshandle,
-                          OCIError *error_handle,
-                          nzttPersona *persona,
-                          nzttIdentity *sidentity,
-                          boolean *validated);
-
-sword OCISecuritySignDetached(OCISecurity *osshandle,
-                              OCIError *error_handle,
-                              nzttPersona *persona,
-                              nzttces signature_state,
-                              size_t input_length,
-                              ub1 * input,
-                              nzttBufferBlock *signature);
-
-sword OCISecuritySignDetExpansion(OCISecurity *osshandle,
-                                  OCIError *error_handle,
-                                  nzttPersona *persona,
-                                  size_t input_length,
-                                  size_t *required_buffer_length);
-
-sword OCISecurityVerifyDetached(OCISecurity *osshandle,
-                                OCIError *error_handle,
-                                nzttPersona *persona,
-                                nzttces signature_state,
-                                size_t data_length,
-                                ub1 *data,
-                                size_t siglen,
-                                ub1 *signature,
-                                boolean *verified,
-                                boolean *validated,
-                                nzttIdentity **signing_party_identity);
-
-sword OCISecurity_PKEncrypt(OCISecurity *osshandle,
-                            OCIError *error_handle,
-                            nzttPersona *persona,
-                            size_t number_of_recipients,
-                            nzttIdentity *recipient_list,
-                            nzttces encryption_state,
-                            size_t input_length,
-                            ub1 *input,
-                            nzttBufferBlock *encrypted_data);
-
-sword OCISecurityPKEncryptExpansion(OCISecurity *osshandle,
-                                    OCIError *error_handle,
-                                    nzttPersona *persona,
-                                    size_t number_recipients,
-                                    size_t input_length,
-                                    size_t *buffer_length_required);
-
-sword OCISecurityPKDecrypt(OCISecurity *osshandle,
-                           OCIError *error_handle,
-                           nzttPersona *persona,
-                           nzttces encryption_state,
-                           size_t input_length,
-                           ub1 *input,
-                           nzttBufferBlock *encrypted_data);
-
-sword OCISecurityEncrypt(OCISecurity *osshandle,
-                         OCIError *error_handle,
-                         nzttPersona *persona,
-                         nzttces encryption_state,
-                         size_t input_length,
-                         ub1 *input,
-                         nzttBufferBlock *encrypted_data);
-
-sword OCISecurityEncryptExpansion(OCISecurity *osshandle,
-                                  OCIError *error_handle,
-                                  nzttPersona *persona,
-                                  size_t input_length,
-                                  size_t *encrypted_data_length);
-
-sword OCISecurityDecrypt(OCISecurity *osshandle,
-                         OCIError *error_handle,
-                         nzttPersona *persona,
-                         nzttces decryption_state,
-                         size_t input_length,
-                         ub1 *input,
-                         nzttBufferBlock *decrypted_data);
-
-sword OCISecurityEnvelope(OCISecurity *osshandle,
-                          OCIError *error_handle,
-                          nzttPersona *persona,
-                          size_t number_of_recipients,
-                          nzttIdentity *sidentity,
-                          nzttces encryption_state,
-                          size_t input_length,
-                          ub1 *input,
-                          nzttBufferBlock *enveloped_data);
-
-sword OCISecurityDeEnvelope(OCISecurity *osshandle,
-                            OCIError *error_handle,
-                            nzttPersona *persona,
-                            nzttces decryption_state,
-                            size_t input_length,
-                            ub1 *input,
-                            nzttBufferBlock *output_message,
-                            boolean *verified,
-                            boolean *validated,
-                            nzttIdentity **sender_identity);
-
-sword OCISecurityKeyedHash(OCISecurity *osshandle,
-                           OCIError *error_handle,
-                           nzttPersona *persona,
-                           nzttces hash_state,
-                           size_t input_length,
-                           ub1 *input,
-                           nzttBufferBlock *keyed_hash);
-
-sword OCISecurityKeyedHashExpansion(OCISecurity *osshandle,
-                                    OCIError *error_handle,
-                                    nzttPersona *persona,
-                                    size_t input_length,
-                                    size_t *required_buffer_length);
-
-sword OCISecurityHash(OCISecurity *osshandle,
-                      OCIError *error_handle,
-                      nzttPersona *persona,
-                      nzttces hash_state,
-                      size_t input,
-                      ub1 *input_length,
-                      nzttBufferBlock *shash);
-
-sword OCISecurityHashExpansion(OCISecurity *osshandle,
-                               OCIError *error_handle,
-                               nzttPersona *persona,
-                               size_t input_length,
-                               size_t *required_buffer_length);
-
-sword OCISecuritySeedRandom(OCISecurity *osshandle,
-                            OCIError *error_handle,
-                            nzttPersona *persona,
-                            size_t seed_length,
-                            ub1 *seed);
-
-sword OCISecurityRandomBytes(OCISecurity *osshandle,
-                             OCIError *error_handle,
-                             nzttPersona *persona,
-                             size_t number_of_bytes_desired,
-                             nzttBufferBlock *random_bytes);
-
-sword OCISecurityRandomNumber(OCISecurity *osshandle,
-                              OCIError *error_handle,
-                              nzttPersona *persona,
-                              uword *random_number_ptr);
-
-sword OCISecurityInitBlock(OCISecurity *osshandle,
-                           OCIError *error_handle,
-                           nzttBufferBlock *buffer_block);
-
-sword OCISecurityReuseBlock(OCISecurity *osshandle,
-                            OCIError *error_handle,
-                            nzttBufferBlock *buffer_block);
-
-sword OCISecurityPurgeBlock(OCISecurity *osshandle,
-                            OCIError *error_handle,
-                            nzttBufferBlock *buffer_block);
-
-sword OCISecuritySetBlock(OCISecurity *osshandle,
-                          OCIError *error_handle,
-                          uword flags_to_set,
-                          size_t buffer_length,
-                          size_t used_buffer_length,
-                          ub1 *buffer,
-                          nzttBufferBlock *buffer_block);
-
-sword OCISecurityGetIdentity(OCISecurity   *osshandle,
-                             OCIError      *error_handle,
-                             size_t         namelen,
-                             OraText          *distinguished_name,
-                             nzttIdentity **sidentity);
-
-sword OCIAQEnq(OCISvcCtx *svchp, OCIError *errhp, OraText *queue_name,
-		 OCIAQEnqOptions *enqopt, OCIAQMsgProperties *msgprop,
-		 OCIType *payload_tdo, dvoid **payload, dvoid **payload_ind, 
-		 OCIRaw **msgid, ub4 flags); 
-
-sword OCIAQDeq(OCISvcCtx *svchp, OCIError *errhp, OraText *queue_name,
-		 OCIAQDeqOptions *deqopt, OCIAQMsgProperties *msgprop,
-		 OCIType *payload_tdo, dvoid **payload, dvoid **payload_ind, 
-		 OCIRaw **msgid, ub4 flags); 
-
-sword OCIAQListen(/*_ OCISvcCtx *svchp, OCIError *errhp, 
-		      OCIAQAgent **agent_list, ub4 num_agents,
-		      sb4 wait, OCIAQAgent **agent,
-		      ub4 flags _*/);
-
-sword OCIExtractInit(dvoid *hndl, OCIError *err);
-
-sword OCIExtractTerm(dvoid *hndl, OCIError *err);
-
-sword OCIExtractReset(dvoid *hndl, OCIError *err);
-
-sword OCIExtractSetNumKeys(dvoid *hndl, OCIError *err, uword numkeys);
-
-sword OCIExtractSetKey(dvoid *hndl, OCIError *err, CONST OraText *name, 
-                       ub1 type, ub4 flag, CONST dvoid *defval, 
-                       CONST sb4 *intrange, CONST OraText *CONST *strlist);
-
-sword OCIExtractFromFile(dvoid *hndl, OCIError *err, ub4 flag, 
-                         OraText *filename);
-
-sword OCIExtractFromStr(dvoid *hndl, OCIError *err, ub4 flag, OraText *input);
-
-sword OCIExtractToInt(dvoid *hndl, OCIError *err, OraText *keyname, 
-                      uword valno, sb4 *retval);
-
-sword OCIExtractToBool(dvoid *hndl, OCIError *err, OraText *keyname, 
-                       uword valno, ub1 *retval);
-
-sword OCIExtractToStr(dvoid *hndl, OCIError *err, OraText *keyname, 
-                      uword valno, OraText *retval, uword buflen);
-
-sword OCIExtractToOCINum(dvoid *hndl, OCIError *err, OraText *keyname, 
-                         uword valno, OCINumber *retval);
-
-sword OCIExtractToList(dvoid *hndl, OCIError *err, uword *numkeys);
-
-sword OCIExtractFromList(dvoid *hndl, OCIError *err, uword index, 
-			 OraText **name, 
-                         ub1 *type, uword *numvals, dvoid ***values);
-
-/* Memory Related Service Interfaces */
-
-sword OCIMemoryAlloc(dvoid *hdl, OCIError *err, dvoid **mem,
-	OCIDuration dur, ub4 size, ub4 flags);
-
-sword OCIMemoryResize(dvoid *hdl, OCIError *err, dvoid **mem,
-			ub4 newsize, ub4 flags);
-			
-sword OCIMemoryFree(dvoid *hdl, OCIError *err, dvoid *mem);
-
-sword OCIContextSetValue(dvoid *hdl, OCIError *err, OCIDuration duration,
-			ub1 *key, ub1 keylen, dvoid *ctx_value);
-
-sword OCIContextGetValue(dvoid *hdl, OCIError *err, ub1 *key,
-			ub1 keylen, dvoid **ctx_value);
-
-sword OCIContextClearValue(dvoid *hdl, OCIError *err, ub1 *key, 
-			ub1 keylen);
-
-sword OCIContextGenerateKey(dvoid *hdl, OCIError *err, ub4 *key);
-
-sword OCIMemorySetCurrentIDs(dvoid *hdl, OCIError *err, 
-	ub4 curr_session_id, ub4 curr_trans_id, ub4 curr_stmt_id);
-
-sword OCIPicklerTdsCtxInit(OCIEnv *env, OCIError *err, 
-                           OCIPicklerTdsCtx **tdsc);
-
-sword OCIPicklerTdsCtxFree(OCIEnv *env, OCIError *err, OCIPicklerTdsCtx *tdsc);
-
-sword OCIPicklerTdsInit(OCIEnv *env, OCIError *err, OCIPicklerTdsCtx *tdsc, 
-					OCIPicklerTds **tdsh);
-
-sword OCIPicklerTdsFree(OCIEnv *env, OCIError *err, OCIPicklerTds *tdsh);
-
-sword OCIPicklerTdsCreateElementNumber(OCIEnv *env, OCIError *err, 
-					OCIPicklerTds *tdsh, ub1 prec, 
-					sb1 scale, OCIPicklerTdsElement *elt);
-
-sword OCIPicklerTdsCreateElementChar(OCIEnv *env, OCIError *err, 
-				     OCIPicklerTds *tdsh, ub2 len, 
-				     OCIPicklerTdsElement *elt);
-
-sword OCIPicklerTdsCreateElementVarchar(OCIEnv *env, OCIError *err, 
-                                        OCIPicklerTds *tdsh, ub2 len, 
-                                        OCIPicklerTdsElement *elt);
-
-sword OCIPicklerTdsCreateElementRaw(OCIEnv *env, OCIError *err, 
-                                    OCIPicklerTds *tdsh, ub2 len, 
-                                    OCIPicklerTdsElement *elt);
-
-sword OCIPicklerTdsCreateElement(OCIEnv *env, OCIError *err, 
-                                 OCIPicklerTds *tdsh, OCITypeCode dty, 
-                                 OCIPicklerTdsElement *elt);
-
-sword OCIPicklerTdsAddAttr(OCIEnv *env, OCIError *err, 
-                           OCIPicklerTds *tdsh, OCIPicklerTdsElement elt);
-
-sword OCIPicklerTdsGenerate(OCIEnv *env, OCIError *err, 
-				OCIPicklerTds *tdsh);
-
-sword OCIPicklerTdsGetAttr(OCIEnv *env, OCIError *err, 
-				CONST OCIPicklerTds *tdsh, ub1  attrno,
-				OCITypeCode *typ, ub2  *len);
-
-sword OCIPicklerFdoInit(OCIEnv *env, OCIError *err, 
-				OCIPicklerFdo **fdoh);
-
-sword OCIPicklerFdoFree(OCIEnv *env, OCIError *err, 
-				OCIPicklerFdo *fdoh);
-
-sword OCIPicklerImageInit(OCIEnv *env, OCIError *err, 
-                          OCIPicklerFdo *fdoh, 
-                          OCIPicklerTds *tdsh,
-			  OCIPicklerImage **imgh);
-
-sword OCIPicklerImageFree(OCIEnv *env, OCIError *err, 
-				OCIPicklerImage *imgh);
- 
-sword OCIPicklerImageAddScalar(OCIEnv *env, OCIError *err,  
-                               OCIPicklerImage *imgh, dvoid *scalar, ub4  len);
- 
-sword OCIPicklerImageAddNullScalar(OCIEnv *env, OCIError *err, 
-				OCIPicklerImage *imgh);
- 
-sword OCIPicklerImageGenerate(OCIEnv *env, OCIError *err, 
-				OCIPicklerImage *imgh);
- 
-sword OCIPicklerImageGetScalarSize(OCIEnv *env, OCIError *err, 
-				OCIPicklerImage *imgh, 
-				ub4  attrno, ub4  *size);
- 
-sword OCIPicklerImageGetScalar(OCIEnv *env, OCIError *err, 
-				OCIPicklerImage *imgh, ub4  attrno, 
-				dvoid *buf, ub4  *len, OCIInd *ind);
-
-sword OCIPicklerImageCollBegin(OCIEnv *env, OCIError *err,
-                OCIPicklerImage *imgh, CONST OCIPicklerTds *colltdsh);
- 
-sword OCIPicklerImageCollAddScalar( OCIEnv *env, OCIError *err,
-                OCIPicklerImage *imgh, dvoid *scalar,
-                ub4 buflen, OCIInd ind);
- 
-sword OCIPicklerImageCollEnd(OCIEnv *env, OCIError *err,
-                OCIPicklerImage *imgh);
- 
-/* should take svcctx for locator stuff */
-sword OCIPicklerImageCollBeginScan(OCIEnv *env, OCIError *err,
-                OCIPicklerImage *imgh, CONST OCIPicklerTds *coll_tdsh,
-                ub4 attrnum, ub4 startidx, OCIInd *ind);
- 
-sword OCIPicklerImageCollGetScalarSize(OCIEnv *env, OCIError *err,
-                CONST OCIPicklerTds *coll_tdsh, ub4 *size);
- 
-sword OCIPicklerImageCollGetScalar(OCIEnv *env, OCIError *err,
-                                   OCIPicklerImage *imgh, dvoid *buf,
-                                   ub4 *buflen, OCIInd *ind);
-
-sword OCIAnyDataGetType(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-        OCITypeCode *tc, OCIType **type);
-
-sword OCIAnyDataIsNull(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-        boolean *isnull);
-
-sword OCIAnyDataConvert(OCISvcCtx *svchp, OCIError *errhp, OCITypeCode tc,
-        OCIType *type, OCIDuration dur, dvoid *ind, dvoid *data_val,
-        ub4 len, OCIAnyData **sdata);
-
-sword OCIAnyDataBeginCreate(OCISvcCtx *svchp, OCIError *errhp, OCITypeCode tc,
-        OCIType *type, OCIDuration dur, OCIAnyData **sdata);
-
-sword OCIAnyDataDestroy(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata);
-
-sword OCIAnyDataAttrSet(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-        OCITypeCode tc, OCIType *type, dvoid *ind, dvoid *attr_val,
-        ub4 length, boolean is_any);
-
-sword OCIAnyDataCollAddElem(OCISvcCtx *svchp, OCIError *errhp,
-        OCIAnyData *sdata, OCITypeCode tc, OCIType *type, dvoid *ind,
-        dvoid *attr_val, ub4 length, boolean is_any, boolean last_elem);
-
-sword OCIAnyDataEndCreate(OCISvcCtx *svchp, OCIError *errhp,
-                          OCIAnyData *sdata);
-
-sword OCIAnyDataAccess(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-        OCITypeCode tc, OCIType *type, dvoid *ind, dvoid *attr_val,
-        ub4 *length);
-
-sword OCIAnyDataGetCurrAttrNum(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-			ub4 *attrnum);
-
-sword OCIAnyDataAttrGet(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata,
-  OCITypeCode tc, OCIType *type, dvoid *ind, dvoid *attr_val,
-        ub4 *length, boolean is_any);
-
-sword OCIAnyDataCollGetElem(OCISvcCtx *svchp, OCIError *errhp,
-  OCIAnyData *sdata,
-  OCITypeCode tc, OCIType *type, dvoid *ind, dvoid *celem_val,
-  ub4 *length, boolean is_any);
-
-
-/*------------------------ OCIAnyDataSet interfaces -------------------------*/
-
-/*
-   NAME
-     OCIAnyDataSetBeginCreate - OCIAnyDataSet Begin Creation
-   PARAMETERS
-     svchp (IN/OUT) - The OCI service context.
-     errhp (IN/OUT) - The OCI error handle. If there is an error, it is
-                      recorded in errhp and this function returns OCI_ERROR.
-                      Diagnostic information can be obtained by calling
-                      OCIErrorGet().
-     typecode       - typecode corresponding to the OCIAnyDataSet.
-     type (IN)      - type corresponding to the OCIAnyDataSet. If the typecode
-                      corresponds to a built-in type (OCI_TYPECODE_NUMBER etc.)
-                      , this parameter can be NULL. It should be non NULL for
-                      user defined types (OCI_TYPECODE_OBJECT,
-                      OCI_TYPECODE_REF, collection types etc.)
-     dur (IN)       - duration for which OCIAnyDataSet is allocated.
-     data_set (OUT) - Initialized OCIAnyDataSet.
-     RETURNS        - error code
-   NOTES
-     This call allocates an OCIAnyDataSet for the duration of dur and
-     initializes it with the type information. The OCIAnyDataSet can hold
-     multiple instances of the given type. For performance reasons, the 
-     OCIAnyDataSet will end up pointing to the passed in OCIType parameter.
-     It is the responsibility of the caller to ensure that the OCIType is
-     longer lived (has allocation duration >= the duration of the OCIAnyData
-     if the OCIType is a transient one, allocation/pin duration >= duration of
-     the OCIAnyData if the OCIType is a persistent one).
-
-*/
-sword OCIAnyDataSetBeginCreate(OCISvcCtx *svchp, OCIError *errhp,
-     OCITypeCode typecode, CONST OCIType *type, OCIDuration dur,
-     OCIAnyDataSet ** data_set);
-
-/*
-   NAME
-     OCIAnyDataSetDestroy  - OCIAnyDataSet Destroy
-   DESCRIPTION
-     This call frees the OCIAnyDataSet allocated using
-     OCIAnyDataSetBeginCreate().
-   RETURNS
-     error code.
-   PARAMETERS
-     svchp (IN/OUT)    - The OCI service context.
-     errhp (IN/OUT)    - The OCI Error handle.
-     data_set (IN/OUT) - OCIAnyDataSet to be freed.
-*/
-sword OCIAnyDataSetDestroy(OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set);
-
-
-/*
-   NAME
-     OCIAnyDataSetAddInstance - OCIAnyDataSet Add an instance
-   DESCRIPTION
-     This call adds a new skeleton instance to the OCIAnyDataSet and all the
-     attributes of the instance are set to NULL. It returns this skeleton
-     instance through the OCIAnyData parameter which can be constructed
-     subsequently by invoking the OCIAnyData API.
-   RETURNS
-     error code.
-   PARAMETERS
-     svchp (IN/OUT)      - The OCI service context.
-     errhp (IN/OUT)      - The OCI Error handle.
-     data_set (IN/OUT)   - OCIAnyDataSet to which a new instance is added.
-     data (IN/OUT)       - OCIAnyData corresponding to the newly added
-                           instance. If (*data) is NULL, a new OCIAnyData will
-                           be allocated for same duration as the OCIAnyDataSet.
-                           If (*data) is not NULL, it will get reused. This
-                           OCIAnyData can be subseqently constructed using the
-                           OCIAnyDataConvert() call or it can be constructed
-                           piece-wise using the OCIAnyDataAttrSet and
-                           OCIAnyDataCollAddElem calls.
-   NOTES
-     No Destruction of the old value is done here. It is the responsibility of
-     the caller to destroy the old value pointed to by (*data) and set (*data)
-     to a null pointer before beginning to make a sequence of this call. No
-     deep copying (of OCIType information nor the data part.) is done in the
-     returned OCIAnyData. This OCIAnyData cannot be used beyond the allocation
-     duration of the OCIAnyDataSet (it is like a reference into the
-     OCIAnyDataSet). The returned OCIAnyData can be reused on subsequent calls
-     to this function, to sequentially add new data instances to the
-     OCIAnyDataSet.
-*/
-sword OCIAnyDataSetAddInstance(OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set, OCIAnyData **data);
-
-/*
-   NAME
-     OCIAnyDataSetEndCreate - OCIAnyDataSet End Creation process.
-   DESCRIPTION
-     This call marks the end of OCIAnyDataSet creation. It should be called
-     after constructing all of its instance(s).
-   RETURNS
-     error code.
-   PARAMETERS
-     svchp (IN/OUT)        - The OCI service context.
-     errhp (IN/OUT)        - The OCI error handle. If there is an error, it is
-                             recorded in errhp and this function returns
-                             OCI_ERROR. Diagnostic information can be obtained
-                             by calling OCIErrorGet().
-     data_set (IN/OUT)     - OCIAnyDataSet that has been fully constructed.
-*/
-sword OCIAnyDataSetEndCreate(OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set);
-
-/*
-   NAME
-     OCIAnyDataSetGetType - OCIAnyDataSet Get Type of an OCIAnyDataSet
-   DESCRIPTION
-     Gets the Type corresponding to an OCIAnyDataSet. It returns the actual
-     pointer to the type maintained inside an OCIAnyDataSet. No copying is
-     done for performance reasons. The client is responsible for not using
-     this type once the OCIAnyDataSet is freed (or its duration ends).
-   RETURNS
-     error code.
-   PARAMETERS
-     svchp (IN/OUT)      - The OCI service context.
-     errhp (IN/OUT)      - The OCI Error handle.
-     data_set (IN)       - Initialized OCIAnyDataSet.
-     tc (OUT)            - The typecode of the type.
-     type (OUT)          - The type corresponding to the OCIAnyDataSet. This
-                           could be null if the OCIAnyData corresponds to a
-                           built-in type.
-*/
-sword OCIAnyDataSetGetType (OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set, OCITypeCode *tc, OCIType **type);
-
-/*
-  NAME
-    OCIAnyDataSetGetCount - OCIAnyDataSet Get Count of instances.
-  DESCRIPTION
-    This call gets the number of instances in the OCIAnyDataSet.
-  RETURNS
-    error code.
-  PARAMETERS
-    svchp (IN/OUT)      - OCI Service Context
-    errhp (IN/OUT)      - OCI Error handle
-    data_set (IN)       - Well formed OCIAnyDataSet.
-    count (OUT)         - number of instances in OCIAnyDataSet
-*/
-sword OCIAnyDataSetGetCount(OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set, ub4 *count);
-
-/*
-  NAME
-    OCIAnyDataSetGetInstance - OCIAnyDataSet Get next instance.
-  DESCRIPTION
-    Only sequential access to the instances in an OCIAnyDataSet is allowed.
-    This call returns the OCIAnyData corresponding to an instance at the
-    current position and updates the current position. Subsequently, the
-    OCIAnyData access routines may be used to access the instance.
-  RETURNS
-    error code. Returns OCI_NO_DATA if the current position is at the end of
-    the set, OCI_SUCCESS otherwise.
-  PARAMETERS
-    svchp (IN/OUT)      - OCI Service Context
-    errhp (IN/OUT)      - OCI Error handle
-    data_set (IN)       - Well formed OCIAnyDataSet
-    data (IN/OUT)       - OCIAnyData corresponding to the instance. If (*data)
-                          is NULL, a new OCIAnyData will be allocated for same
-                          duration as the OCIAnyDataSet. If (*data) is not NULL
-                          , it will get reused. This OCIAnyData can be
-                          subsequently accessed using the OCIAnyDataAccess()
-                          call or piece-wise by using the OCIAnyDataAttrGet()
-                          call.
-  NOTE
-    No Destruction of the old value is done here. It is the responsibility of
-    the caller to destroy the old value pointed to by (*data) and set (*data)
-    to a null pointer before beginning to make a sequence of this call. No deep
-    copying (of OCIType information nor the data part.) is done in the returned
-    OCIAnyData. This OCIAnyData cannot be used beyond the allocation duration
-    of the OCIAnyDataSet (it is like a reference into the OCIAnyDataSet). The
-    returned OCIAnyData can be reused on subsequent calls to this function to
-    sequentially access the OCIAnyDataSet.
-*/
-sword OCIAnyDataSetGetInstance(OCISvcCtx *svchp, OCIError *errhp,
-     OCIAnyDataSet *data_set, OCIAnyData **data);
-
-/*--------------------- End of OCIAnyDataSet interfaces ---------------------*/
-
-sword OCIFormatInit(dvoid *hndl, OCIError *err);
-
-sword OCIFormatString(dvoid *hndl, OCIError *err, OraText *buffer,
-                      sbig_ora bufferLength, sbig_ora *returnLength,
-                      CONST OraText *formatString, ...);
-
-sword OCIFormatTerm(dvoid *hndl, OCIError *err);
-
-sword OCIFormatTUb1(void);
-sword OCIFormatTUb2(void);
-sword OCIFormatTUb4(void);
-sword OCIFormatTUword(void);
-sword OCIFormatTUbig_ora(void);
-sword OCIFormatTSb1(void);
-sword OCIFormatTSb2(void);
-sword OCIFormatTSb4(void);
-sword OCIFormatTSword(void);
-sword OCIFormatTSbig_ora(void);
-sword OCIFormatTEb1(void);
-sword OCIFormatTEb2(void);
-sword OCIFormatTEb4(void);
-sword OCIFormatTEword(void);
-sword OCIFormatTChar(void);
-sword OCIFormatTText(void);
-sword OCIFormatTDouble(void);
-sword OCIFormatTDvoid(void);
-sword OCIFormatTEnd(void);
-
-/*-------------------------- Extensions to XA interface ---------------------*/
-/* ------------------------- xaosvch ----------------------------------------*/
-/*
-   NAME
-     xaosvch  -  XA Oracle get SerViCe Handle
-   DESCRIPTION
-     Given a database name return the service handle that is used by the
-     XA library
-   NOTE
-     This macro has been provided for backward compatibilty with 8.0.2
-*/
-OCISvcCtx *xaosvch(OraText *dbname);
-
-/* ------------------------- xaoSvcCtx --------------------------------------*/
-/*
-   NAME
-     xaoSvcCtx  -  XA Oracle get SerViCe ConTeXt
-   DESCRIPTION
-     Given a database name return the service handle that is used by the
-     XA library
-   NOTE
-     This routine has been provided for APs to get access to the service
-     handle that XA library uses. Without this routine APs must use SQLLIB
-     routine sqlld2 to get access to the Logon data area registered by the
-     XA library
-*/
-OCISvcCtx *xaoSvcCtx(OraText *dbname);
-
-/* ------------------------- xaoEnv -----------------------------------------*/
-/*
-   NAME
-     xaoEnv  -  XA Oracle get ENvironment Handle
-   DESCRIPTION
-     Given a database name return the environment handle that is used by the
-     XA library
-   NOTE
-     This routine has been provided for APs to get access to the environment
-     handle that XA library uses. Without this routine APs must use SQLLIB
-     routine sqlld2 to get access to the Logon data area registered by the
-     XA library
-*/
-OCIEnv *xaoEnv(OraText *dbname);
-
-/* ------------------------- xaosterr ---------------------------------------*/
-/*
-   NAME
-     xaosterr  -  XA Oracle get xa STart ERRor code
-   DESCRIPTION
-     Given an oracle error code return the XA error code
- */
-int xaosterr(OCISvcCtx *svch, sb4 error);
-/*-------------------------- End Extensions ---------------------------------*/
-/*---------------------- Extensions to NLS cartridge service ----------------*/
-/* ----------------------- OCINlsGetInfo ------------------------------------*/
-/*
-   NAME
-     OCINlsGetInfo - Get NLS info from OCI environment handle
-   REMARKS
-     This function generates language information specified by item from OCI 
-     environment handle envhp into an array pointed to by buf within size 
-     limitation as buflen.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR on wrong item.
-   envhp(IN/OUT)
-     OCI environment handle.
-   errhp(IN/OUT)
-     The OCI error handle. If there is an error, it is record in errhp and 
-     this function returns a NULL pointer. Diagnostic information can be 
-     obtained by calling OCIErrorGet().
-   buf(OUT)
-     Pointer to the destination buffer.
-   buflen(IN)
-     The size of destination buffer. The maximum length for each information
-     is 32 bytes.
-   item(IN)
-     It specifies to get which item in OCI environment handle and can be one
-     of following values:
-       OCI_NLS_DAYNAME1 : Native name for Monday.
-       OCI_NLS_DAYNAME2 : Native name for Tuesday.
-       OCI_NLS_DAYNAME3 : Native name for Wednesday.
-       OCI_NLS_DAYNAME4 : Native name for Thursday.
-       OCI_NLS_DAYNAME5 : Native name for Friday.
-       OCI_NLS_DAYNAME6 : Native name for for Saturday.
-       OCI_NLS_DAYNAME7 : Native name for for Sunday.
-       OCI_NLS_ABDAYNAME1 : Native abbreviated name for Monday.
-       OCI_NLS_ABDAYNAME2 : Native abbreviated name for Tuesday.
-       OCI_NLS_ABDAYNAME3 : Native abbreviated name for Wednesday.
-       OCI_NLS_ABDAYNAME4 : Native abbreviated name for Thursday.
-       OCI_NLS_ABDAYNAME5 : Native abbreviated name for Friday.
-       OCI_NLS_ABDAYNAME6 : Native abbreviated name for for Saturday.
-       OCI_NLS_ABDAYNAME7 : Native abbreviated name for for Sunday.
-       OCI_NLS_MONTHNAME1 : Native name for January.
-       OCI_NLS_MONTHNAME2 : Native name for February.
-       OCI_NLS_MONTHNAME3 : Native name for March.
-       OCI_NLS_MONTHNAME4 : Native name for April.
-       OCI_NLS_MONTHNAME5 : Native name for May.
-       OCI_NLS_MONTHNAME6 : Native name for June.
-       OCI_NLS_MONTHNAME7 : Native name for July.
-       OCI_NLS_MONTHNAME8 : Native name for August.
-       OCI_NLS_MONTHNAME9 : Native name for September.
-       OCI_NLS_MONTHNAME10 : Native name for October.
-       OCI_NLS_MONTHNAME11 : Native name for November.
-       OCI_NLS_MONTHNAME12 : Native name for December.
-       OCI_NLS_ABMONTHNAME1 : Native abbreviated name for January.
-       OCI_NLS_ABMONTHNAME2 : Native abbreviated name for February.
-       OCI_NLS_ABMONTHNAME3 : Native abbreviated name for March.
-       OCI_NLS_ABMONTHNAME4 : Native abbreviated name for April.
-       OCI_NLS_ABMONTHNAME5 : Native abbreviated name for May.
-       OCI_NLS_ABMONTHNAME6 : Native abbreviated name for June.
-       OCI_NLS_ABMONTHNAME7 : Native abbreviated name for July.
-       OCI_NLS_ABMONTHNAME8 : Native abbreviated name for August.
-       OCI_NLS_ABMONTHNAME9 : Native abbreviated name for September.
-       OCI_NLS_ABMONTHNAME10 : Native abbreviated name for October.
-       OCI_NLS_ABMONTHNAME11 : Native abbreviated name for November.
-       OCI_NLS_ABMONTHNAME12 : Native abbreviated name for December.
-       OCI_NLS_YES : Native string for affirmative response.
-       OCI_NLS_NO : Native negative response. 
-       OCI_NLS_AM : Native equivalent string of AM.
-       OCI_NLS_PM : Native equivalent string of PM.
-       OCI_NLS_AD : Native equivalent string of AD.
-       OCI_NLS_BC : Native equivalent string of BC.
-       OCI_NLS_DECIMAL : decimal character.
-       OCI_NLS_GROUP : group separator.
-       OCI_NLS_DEBIT : Native symbol of debit.
-       OCI_NLS_CREDIT : Native sumbol of credit.
-       OCI_NLS_DATEFORMAT : Oracle date format.
-       OCI_NLS_INT_CURRENCY: International currency symbol.
-       OCI_NLS_LOC_CURRENCY : Locale currency symbol.
-       OCI_NLS_LANGUAGE : Language name.
-       OCI_NLS_ABLANGUAGE : Abbreviation for language name.
-       OCI_NLS_TERRITORY : Territory name.
-       OCI_NLS_CHARACTER_SET : Character set name.
-       OCI_NLS_LINGUISTIC : Linguistic name.
-       OCI_NLS_CALENDAR : Calendar name.
-       OCI_NLS_DUAL_CURRENCY : Dual currency symbol.
-*/
-sword OCINlsGetInfo(dvoid *envhp, OCIError *errhp, OraText *buf,
-                    size_t buflen, ub2 item);
-
-/* ----------------------- OCINlsNumericInfoGet -----------------------------*/
-/*
-   NAME
-     OCINlsNumericInfoGet - Get NLS numeric info from OCI environment handle
-   REMARKS
-     This function generates numeric language information specified by item 
-     from OCI environment handle envhp into an output number variable.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR on wrong item.
-   envhp(IN/OUT)
-     OCI environment handle. If handle invalid, returns OCI_INVALID_HANDLE.
-   errhp(IN/OUT)
-     The OCI error handle. If there is an error, it is record in errhp and 
-     this function returns a NULL pointer. Diagnostic information can be 
-     obtained by calling OCIErrorGet().
-   val(OUT)
-     Pointer to the output number variable. On OCI_SUCCESS return, it will
-     contain the requested NLS numeric info.
-   item(IN)
-     It specifies to get which item in OCI environment handle and can be one
-     of following values:
-       OCI_NLS_CHARSET_MAXBYTESZ : Maximum character byte size for OCI
-                                   environment or session handle charset
-       OCI_NLS_CHARSET_FIXEDWIDTH: Character byte size for fixed-width charset;
-                                   0 for variable-width charset 
-*/
-sword OCINlsNumericInfoGet(dvoid *envhp, OCIError *errhp, sb4 *val, ub2 item);
-
-/* ----------------------- OCINlsCharSetNameToId -----------------------------*/
-/*
-   NAME
-     OCINlsCharSetNameToId - Get Oracle charset id given Oracle charset name
-   REMARKS
-     This function will get the Oracle character set id corresponding to
-     the given Oracle character set name.
-   RETURNS
-     Oracle character set id for the given Oracle character set name if
-     character set name and OCI handle are valid; otherwise returns 0.
-   envhp(IN/OUT)
-     OCI environment handle.
-   name(IN)
-     Pointer to a null-terminated Oracle character set name whose id 
-     will be returned.
-*/
-ub2 OCINlsCharSetNameToId(dvoid *envhp, const oratext *name);
-
-/* ----------------------- OCINlsCharSetIdToName -----------------------------*/
-/*
-   NAME
-     OCINlsCharSetIdToName - Get Oracle charset name given Oracle charset id
-   REMARKS
-     This function will get the Oracle character set name corresponding to
-     the given Oracle character set id.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle. If handle invalid, returns OCI_INVALID_HANDLE.
-   buf(OUT)
-     Pointer to the destination buffer. On OCI_SUCCESS return, it will contain
-     the null-terminated string for character set name.
-   buflen(IN)
-     Size of destination buffer. Recommended size is OCI_NLS_MAXBUFSZ for
-     guarantee to store an Oracle character set name. If it's smaller than
-     the length of the character set name, the function will return OCI_ERROR.
-   id(IN)
-     Oracle character set id.
-*/
-sword OCINlsCharSetIdToName(dvoid *envhp, oratext *buf, size_t buflen, ub2 id);
-
-/* ----------------------- OCINlsNameMap ------------------------------------*/
-/*
-   NAME
-     OCINlsNameMap - Map NLS naming from Oracle to other standards and vice 
-                     versa
-   REMARKS
-     This function will map NLS naming from Oracle to other standards (such
-     as ISO, IANA) and vice versa.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle. If handle invalid, returns OCI_INVALID_HANDLE.
-   buf(OUT)
-     Pointer to the destination buffer. On OCI_SUCCESS return, it will 
-     contain null-terminated string for requested mapped name.
-   buflen(IN)
-     The size of destination buffer. Recommended size is OCI_NLS_MAXBUFSZ
-     for guarantee to store an NLS name. If it is smaller than the length
-     of the name, the function will return OCI_ERROR.
-   srcbuf(IN)
-     Pointer to null-terminated NLS name. If it is not a valid name in its
-     define scope, the function will return OCI_ERROR.
-   flag(IN)
-     It specifies name mapping direction and can take the following values:
-       OCI_NLS_CS_IANA_TO_ORA : Map character set name from IANA to Oracle
-       OCI_NLS_CS_ORA_TO_IANA : Map character set name from Oracle to IANA
-       OCI_NLS_LANG_ISO_TO_ORA : Map language name from ISO to Oracle
-       OCI_NLS_LANG_ORA_TO_ISO : Map language name from Oracle to ISO
-       OCI_NLS_TERR_ISO_TO_ORA : Map territory name from ISO to Oracle
-       OCI_NLS_TERR_ORA_TO_ISO : Map territory name from Oracle to ISO
-       OCI_NLS_TERR_ISO3_TO_ORA : Map territory name from 3-letter ISO
-                                  abbreviation to Oracle
-       OCI_NLS_TERR_ORA_TO_ISO3 : Map territory name from Oracle to 3-letter
-                                  ISO abbreviation
-*/
-sword OCINlsNameMap(dvoid *envhp, oratext *buf, size_t buflen,
-                    const oratext *srcbuf, ub4 flag);
-
-/* -------------------- OCIMultiByteToWideChar ------------------------------*/
-/*
-   NAME
-     OCIMultiByteToWideChar - Convert a null terminated multibyte string into 
-                              wchar
-   REMARKS
-     This routine converts an entire null-terminated string into the wchar 
-     format. The wchar output buffer will be null-terminated.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set of string.
-   dst (OUT)
-     Destination buffer for wchar.
-   src (IN)
-     Source string to be converted.
-   rsize (OUT)
-     Number of characters converted including null-terminator.
-     If it is a NULL pointer, no number return
-*/
-sword OCIMultiByteToWideChar(dvoid *envhp, OCIWchar *dst, CONST OraText *src,
-                             size_t *rsize);
-
-
-/* --------------------- OCIMultiByteInSizeToWideChar -----------------------*/
-/*
-   NAME
-     OCIMultiByteInSizeToWideChar - Convert a mulitbyte string in length into
-                                    wchar
-   REMARKS
-     This routine converts part of string into the wchar format. It will
-     convert as many complete characters as it can until it reaches output
-     buffer size or input buffer size or it reaches a null-terminator in
-     source string. The output buffer will be null-terminated if space permits.
-     If dstsz is zero, this function will only return number of characters not
-     including ending null terminator for converted string.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set of string.
-   dst (OUT)
-     Pointer to a destination buffer for wchar. It can be NULL pointer when
-     dstsz is zero.
-   dstsz(IN)
-     Destination buffer size in character. If it is zero, this function just
-     returns number of characters will be need for the conversion.
-   src (IN)
-     Source string to be converted.
-   srcsz(IN)
-     Length of source string in byte.
-   rsize(OUT)
-     Number of characters written into destination buffer, or number of
-     characters for converted string is dstsz is zero.
-     If it is NULL pointer, nothing to return.
-*/
-sword OCIMultiByteInSizeToWideChar(dvoid *envhp, OCIWchar *dst,
-                                  size_t dstsz, CONST OraText *src, 
-                                  size_t srcsz, size_t *rsize);
-
-
-/* ---------------------- OCIWideCharToMultiByte ----------------------------*/
-/*
-   NAME
-     OCIWideCharToMultiByte - Convert a null terminated wchar string into
-                              multibyte
-   REMARKS
-     This routine converts an entire null-terminated wide character string into
-     multi-byte string. The output buffer will be null-terminated.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set of string.
-   dst (OUT)
-     Destination buffer for multi-byte string.
-   src (IN)
-     Source wchar string to be converted.
-   rsize (OUT)
-     Number of bytes written into the destination buffer.
-     If it is NULL pointer, nothing to return.
-*/
-sword OCIWideCharToMultiByte(dvoid *envhp, OraText *dst, CONST OCIWchar *src,
-                             size_t *rsize);
-
-
-/* ---------------------- OCIWideCharInSizeToMultiByte ----------------------*/
-/*
-   NAME
-     OCIWideCharInSizeToMultiByte - Convert a wchar string in length into 
-                                    mulitbyte
-   REMARKS
-     This routine converts part of wchar string into the multi-byte format.
-     It will convert as many complete characters as it can until it reaches
-     output buffer size or input buffer size or it reaches a null-terminator
-     in source string. The output buffer will be null-terminated if space
-     permits. If dstsz is zero, the function just returns the size of byte not 
-     including ending null-terminator need to store the converted string.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set of string.
-   dst (OUT)
-     Destination buffer for multi-byte. It can be NULL pointer if dstsz is
-     zero.
-   dstsz(IN)
-     Destination buffer size in byte. If it is zero, it just returns the size
-     of bytes need for converted string.
-   src (IN)
-     Source wchar string to be converted.
-   srcsz(IN)
-     Length of source string in character.
-   rsize(OUT)
-     Number of bytes written into destination buffer, or number of bytes need
-     to store the converted string if dstsz is zero.
-     If it is NULL pointer, nothing to return.
-*/
-sword OCIWideCharInSizeToMultiByte(dvoid *envhp, OraText *dst,
-                                    size_t dstsz, CONST OCIWchar *src,
-                                    size_t srcsz, size_t *rsize);
-
-
-
-/* ----------------------- OCIWideCharIsAlnum -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsAlnum - test whether wc is a letter or decimal digit
-   REMARKS
-     It tests whether wc is a letter or decimal digit.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsAlnum(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsAlpha -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsAlpha - test whether wc is an alphabetic letter
-   REMARKS
-     It tests whether wc is an alphabetic letter
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsAlpha(dvoid *envhp, OCIWchar wc);
-
-
-/* --------------------- OCIWideCharIsCntrl ---------------------------------*/
-/*
-   NAME
-     OCIWideCharIsCntrl - test whether wc is a control character
-   REMARKS
-     It tests whether wc is a control character.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsCntrl(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsDigit -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsDigit - test whether wc is a decimal digit character
-   REMARKS
-     It tests whether wc is a decimal digit character.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsDigit(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsGraph -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsGraph - test whether wc is a graph character
-   REMARKS
-     It tests whether wc is a graph character. A graph character is character
-     with a visible representation and normally includes alphabetic letter,
-     decimal digit, and punctuation.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsGraph(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsLower -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsLower - test whether wc is a lowercase letter
-   REMARKS
-     It tests whether wc is a lowercase letter.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsLower(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsPrint -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsPrint - test whether wc is a printable character
-   REMARKS
-     It tests whether wc is a printable character.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsPrint(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsPunct -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsPunct - test whether wc is a punctuation character
-   REMARKS
-     It tests whether wc is a punctuation character.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsPunct(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsSpace -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsSpace - test whether wc is a space character
-   REMARKS
-     It tests whether wc is a space character. A space character only causes
-     white space in displayed text(for example, space, tab, carriage return,
-     newline, vertical tab or form feed).
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsSpace(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharIsUpper -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsUpper - test whether wc is a uppercase letter
-   REMARKS
-     It tests whether wc is a uppercase letter.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsUpper(dvoid *envhp, OCIWchar wc);
-
-
-/*----------------------- OCIWideCharIsXdigit -------------------------------*/
-/*
-   NAME
-     OCIWideCharIsXdigit - test whether wc is a hexadecimal digit
-   REMARKS
-     It tests whether wc is a hexadecimal digit ( 0-9, A-F, a-f ).
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsXdigit(dvoid *envhp, OCIWchar wc);
-
-
-/* --------------------- OCIWideCharIsSingleByte ----------------------------*/
-/*
-   NAME
-     OCIWideCharIsSingleByte - test whether wc is a single-byte character
-   REMARKS
-     It tests whether wc is a single-byte character when converted into
-     multi-byte.
-   RETURNS
-     TRUE or FLASE.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for testing.
-*/
-boolean OCIWideCharIsSingleByte(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharToLower -------------------------------*/
-/*
-   NAME
-     OCIWideCharToLower - Convert a wchar into the lowercase
-   REMARKS
-     If there is a lower-case character mapping for wc in the specified locale,
-     it will return the lower-case in wchar, else return wc itself.
-   RETURNS
-     A wchar
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for lowercase mapping.
-*/
-OCIWchar OCIWideCharToLower(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharToUpper -------------------------------*/
-/*
-   NAME
-     OCIWideCharToUpper - Convert a wchar into the uppercase
-   REMARKS
-     If there is a upper-case character mapping for wc in the specified locale,
-     it will return the upper-case in wchar, else return wc itself.
-   RETURNS
-     A wchar
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar for uppercase mapping.
-*/
-OCIWchar OCIWideCharToUpper(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharStrcmp --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrcmp - compare two null terminated wchar string
-   REMARKS
-     It compares two wchar string in binary ( based on wchar encoding value ),
-     linguistic, or case-insensitive.
-   RETURNS
-     0, if wstr1 == wstr2.
-     Positive, if wstr1 > wstr2.
-     Negative, if wstr1 < wstr2.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set.
-   wstr1(IN)
-     Pointer to a null-terminated wchar string.
-   wstr2(IN)
-     Pointer to a null-terminated wchar string.
-   flag(IN)
-     It is used to decide the comparison method. It can be taken one of the
-     following values:
-       OCI_NLS_BINARY : for the binary comparison, this is default value.
-       OCI_NLS_LINGUISTIC : for linguistic comparison specified in the locale.
-     This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive
-     comparison.
-*/
-int OCIWideCharStrcmp(dvoid *envhp, CONST OCIWchar *wstr1, 
-                CONST OCIWchar *wstr2, int flag);
-
-
-/* ----------------------- OCIWideCharStrncmp -------------------------------*/
-/*
-   NAME
-     OCIWideCharStrncmp - compare twe wchar string in length
-   REMARKS
-     This function is similar to OCIWideCharStrcmp(), except that at most len1
-     characters from wstr1 and len2 characters from wstr1 are compared. The
-     null-terminator will be taken into the comparison.
-   RETURNS
-     0, if wstr1 = wstr2
-     Positive, if wstr1 > wstr2
-     Negative, if wstr1 < wstr2
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wstr1(IN)
-     Pointer to the first wchar string
-   len1(IN)
-     The length for the first string for comparison
-   wstr2(IN)
-     Pointer to the second wchar string
-   len2(IN)
-     The length for the second string for comparison.
-   flag(IN)
-     It is used to decide the comparison method. It can be taken one of the
-     following values:
-       OCI_NLS_BINARY : for the binary comparison, this is default value.
-       OCI_NLS_LINGUISTIC : for linguistic comparison specified in the locale.
-     This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive 
-     comparison.
-*/
-int OCIWideCharStrncmp(dvoid *envhp, CONST OCIWchar *wstr1, size_t len1,
-                 CONST OCIWchar *wstr2, size_t len2, int flag);
-
-
-/* ----------------------- OCIWideCharStrcat --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrcat - concatenate two wchar strings
-   REMARKS
-     This function appends a copy of the wchar string pointed to by wsrcstr,
-     including the null-terminator to the end of wchar string pointed to by
-     wdststr. It returns the number of character in the result string not
-     including the ending null-terminator.
-   RETURNS
-     number of characters in the result string not including the ending
-     null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wdststr(IN/OUT)
-     Pointer to the destination wchar string for appending.
-   wsrcstr(IN)
-     Pointer to the source wchar string to append.
-*/
-size_t OCIWideCharStrcat(dvoid *envhp, OCIWchar *wdststr,
-                         CONST OCIWchar *wsrcstr);
-
-
-/* ----------------------- OCIWideCharStrchr --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrchr - Search the first occurrence of wchar in a wchar string
-   REMARKS
-     This function searchs for the first occurrence of wc in the wchar string
-     pointed to by wstr. It returns a pointer to the whcar if successful, or
-     a null pointer.
-   RETURNS
-     wchar pointer if successful, otherwise a null pointer.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wstr(IN)
-     Pointer to the wchar string to search
-   wc(IN)
-     Wchar to search for.
-*/
-OCIWchar *OCIWideCharStrchr(dvoid *envhp, CONST OCIWchar *wstr,
-                            OCIWchar wc);
-
-
-/* ----------------------- OCIWideCharStrcpy --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrcpy - copy a wchar string
-   REMARKS
-     This function copies the wchar string pointed to by wsrcstr, including the
-     null-terminator, into the array pointed to by wdststr. It returns the
-     number of character copied not including the ending null-terminator.
-   RETURNS
-     number of characters copied not including the ending null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wdststr(OUT)
-     Pointer to the destination wchar buffer.
-   wsrcstr(IN)
-     Pointer to the source wchar string.
-*/
-size_t OCIWideCharStrcpy(dvoid *envhp, OCIWchar *wdststr,
-                         CONST OCIWchar *wsrcstr);
-
-
-/* ----------------------- OCIWideCharStrlen --------------------------------*/
-/*
-   NAME
-     OCIWideCharStrlen - Return number of character in a wchar string
-   REMARKS
-     This function computes the number of characters in the wchar string
-     pointed to by wstr, not including the null-terminator, and returns
-    this number. 
-   RETURNS
-     number of characters not including ending null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wstr(IN)
-     Pointer to the source wchar string.
-*/
-size_t OCIWideCharStrlen(dvoid *envhp, CONST OCIWchar *wstr);
-
-
-/* ----------------------- OCIWideCharStrncat -------------------------------*/
-/*
-   NAME
-     OCIWideCharStrncat - Concatenate wchar string in length
-   REMARKS
-     This function is similar to OCIWideCharStrcat(), except that at most n
-     characters from wsrcstr are appended to wdststr. Note that the
-     null-terminator in wsrcstr will stop appending. wdststr will be
-     null-terminated.. 
-   RETURNS
-     Number of characters in the result string not including the ending
-     null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wdststr(IN/OUT)
-     Pointer to the destination wchar string for appending.
-   wsrcstr(IN)
-     Pointer to the source wchar string to append.
-   n(IN)
-     Number of characters from wsrcstr to append.
-*/
-size_t OCIWideCharStrncat(dvoid *envhp, OCIWchar *wdststr,
-                          CONST OCIWchar *wsrcstr, size_t n);
-
-
-/* ----------------------- OCIWideCharStrncpy -------------------------------*/
-/*
-   NAME
-     OCIWideCharStrncpy - Copy wchar string in length
-   REMARKS
-     This function is similar to OCIWideCharStrcpy(), except that at most n
-     characters are copied from the array pointed to by wsrcstr to the array
-     pointed to by wdststr. Note that the null-terminator in wdststr will
-     stop coping and result string will be null-terminated.
-   RETURNS
-     number of characters copied not including the ending null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wdststr(OUT)
-     Pointer to the destination wchar buffer.
-   wsrcstr(IN)
-     Pointer to the source wchar string.
-   n(IN)
-     Number of characters from wsrcstr to copy.
-*/
-size_t OCIWideCharStrncpy(dvoid *envhp, OCIWchar *wdststr,
-                          CONST OCIWchar *wsrcstr, size_t n);
-
-
-/* ----------------------- OCIWideCharStrrchr -------------------------------*/
-/*
-   NAME
-     OCIWideCharStrrchr - search the last occurrence of a wchar in wchar string
-   REMARKS
-     This function searchs for the last occurrence of wc in the wchar string
-     pointed to by wstr. It returns a pointer to the whcar if successful, or
-     a null pointer.
-   RETURNS
-     wchar pointer if successful, otherwise a null pointer.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wstr(IN)
-     Pointer to the wchar string to search
-   wc(IN)
-     Wchar to search for.
-*/
-OCIWchar *OCIWideCharStrrchr(dvoid *envhp, CONST OCIWchar *wstr,
-                             OCIWchar wc);
-
-
-/* --------------------- OCIWideCharStrCaseConversion -----------------------*/
-/*
-   NAME
-     OCIWideCharStrCaseConversion - convert a wchar string into lowercase or
-                                    uppercase
-   REMARKS
-     This function convert the wide char string pointed to by wsrcstr into the
-     uppercase or lowercase specified by flag and copies the result into the
-     array pointed to by wdststr. The result string will be null-terminated.
-   RETURNS
-     number of characters for result string not including null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle.
-   wdststr(OUT)
-     Pointer to destination array.
-   wsrcstr(IN)
-     Pointer to source string.
-   flag(IN)
-     Specify the case to convert:
-       OCI_NLS_UPPERCASE : convert to uppercase.
-       OCI_NLS_LOWERCASE: convert to lowercase.
-     This flag can be ORed with OCI_NLS_LINGUISTIC to specify that the
-     linguistic setting in the locale will be used for case conversion.
-*/
-size_t OCIWideCharStrCaseConversion(dvoid *envhp, OCIWchar *wdststr,
-                                    CONST OCIWchar *wsrcstr, ub4 flag);
-
-
-/*---------------------- OCIWideCharDisplayLength ---------------------------*/
-/*
-   NAME
-     OCIWideCharDisplayLength - Calculate the display length for a wchar
-   REMARKS
-     This function determines the number of column positions required for wc
-     in display. It returns number of column positions, or 0 if wc is 
-     null-terminator.
-   RETURNS
-     Number of display positions.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar character.
-*/
-size_t OCIWideCharDisplayLength(dvoid *envhp, OCIWchar wc );
-
-
-/*---------------------- OCIWideCharMultiByteLength -------------------------*/
-/*
-   NAME
-     OCIWideCharMultiByteLength - Determine byte size in multi-byte encoding
-   REMARKS
-     This function determines the number of byte required for wc in multi-byte
-     encoding. It returns number of bytes in multi-byte for wc.
-   RETURNS
-     Number of bytes.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set .
-   wc(IN)
-     Wchar character.
-*/
-size_t OCIWideCharMultiByteLength(dvoid *envhp, OCIWchar wc);
-
-
-/* ----------------------- OCIMultiByteStrcmp -------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrcmp - Compare two multi-byte strings
-   REMARKS
-     It compares two multi-byte strings in binary ( based on encoding value ),
-     linguistic, or case-insensitive.
-   RETURNS
-     0, if str1 == str2.
-     Positive, if str1 > str2.
-     Negative, if str1 < str2.
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set.
-   str1(IN)
-     Pointer to a null-terminated string.
-   str2(IN)
-     Pointer to a null-terminated string.
-   flag(IN)
-     It is used to decide the comparison method. It can be taken one of the
-     following values:
-       OCI_NLS_BINARY: for the binary comparison, this is default value.
-       OCI_NLS_LINGUISTIC: for linguistic comparison specified in the locale.
-     This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive 
-     comparison.
-*/
-int OCIMultiByteStrcmp(dvoid *envhp, CONST OraText *str1,
-                       CONST OraText *str2, int flag);
-
-
-/*----------------------- OCIMultiByteStrncmp -------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrncmp - compare two strings in length
-   REMARKS
-     This function is similar to OCIMultiBytestrcmp(), except that at most
-     len1 bytes from str1 and len2 bytes from str2 are compared. The
-     null-terminator will be taken into the comparison.
-   RETURNS
-     0, if str1 = str2
-     Positive, if str1 > str2
-     Negative, if str1 < str2
-   envhp(IN/OUT)
-     OCI environment handle to determine the character set.
-   str1(IN)
-     Pointer to the first string
-   len1(IN)
-     The length for the first string for comparison
-   str2(IN)
-     Pointer to the second string
-   len2(IN)
-     The length for the second string for comparison.
-   flag(IN)
-     It is used to decide the comparison method. It can be taken one of the
-     following values:
-       OCI_NLS_BINARY: for the binary comparison, this is default value.
-       OCI_NLS_LINGUISTIC: for linguistic comparison specified in the locale.
-     This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive 
-     comparison.
-*/
-int OCIMultiByteStrncmp(dvoid *envhp, CONST OraText *str1, size_t len1,
-                        OraText *str2, size_t len2, int flag);
-
-
-/*----------------------- OCIMultiByteStrcat --------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrcat - concatenate multibyte strings
-   REMARKS
-     This function appends a copy of the multi-byte string pointed to by
-     srcstr, including the null-terminator to the end of string pointed to by
-     dststr. It returns the number of bytes in the result string not including
-     the ending null-terminator.
-   RETURNS
-     number of bytes in the result string not including the ending
-     null-terminator.
-   envhp(IN/OUT)
-     Pointer to OCI environment handle
-   dststr(IN/OUT)
-     Pointer to the destination multi-byte string for appending.
-   srcstr(IN)
-     Pointer to the source string to append.
-*/
-size_t OCIMultiByteStrcat(dvoid *envhp, OraText *dststr,
-                          CONST OraText *srcstr);
-
-
-/*------------------------- OCIMultiByteStrcpy ------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrcpy - copy multibyte string
-   REMARKS
-     This function copies the multi-byte string pointed to by srcstr,
-     including the null-terminator, into the array pointed to by dststr. It
-     returns the number of bytes copied not including the ending 
-     null-terminator.
-   RETURNS
-     number of bytes copied not including the ending null-terminator.
-   envhp(IN/OUT)
-     Pointer to the OCI environment handle.
-   srcstr(OUT)
-     Pointer to the destination buffer.
-   dststr(IN)
-     Pointer to the source multi-byte string.
-*/
-size_t OCIMultiByteStrcpy(dvoid *envhp, OraText *dststr,
-                          CONST OraText *srcstr);
-
-
-/*----------------------- OCIMultiByteStrlen --------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrlen - Calculate multibyte string length
-   REMARKS
-     This function computes the number of bytes in the multi-byte string
-     pointed to by str, not including the null-terminator, and returns this
-     number. 
-   RETURNS
-     number of bytes not including ending null-terminator.
-   str(IN)
-     Pointer to the source multi-byte string.
-*/
-size_t OCIMultiByteStrlen(dvoid *envhp, CONST OraText *str);
-
-
-/*----------------------- OCIMultiByteStrncat -------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrncat - concatenate string in length
-   REMARKS
-     This function is similar to OCIMultiBytestrcat(), except that at most n
-     bytes from srcstr are appended to dststr. Note that the null-terminator in
-     srcstr will stop appending and the function will append as many character
-     as possible within n bytes. dststr will be null-terminated. 
-   RETURNS
-     Number of bytes in the result string not including the ending
-     null-terminator.
-   envhp(IN/OUT)
-     Pointer to OCI environment handle.
-   srcstr(IN/OUT)
-     Pointer to the destination multi-byte string for appending.
-   dststr(IN)
-     Pointer to the source multi-byte string to append.
-   n(IN)
-     Number of bytes from srcstr to append.
-*/
-size_t OCIMultiByteStrncat(dvoid *envhp, OraText *dststr,
-                           CONST OraText *srcstr, size_t n);
-
-
-/*----------------------- OCIMultiByteStrncpy -------------------------------*/
-/*
-   NAME
-     OCIMultiByteStrncpy - copy multibyte string in length
-   REMARKS
-     This function is similar to OCIMultiBytestrcpy(), except that at most n
-     bytes are copied from the array pointed to by srcstr to the array pointed
-     to by dststr. Note that the null-terminator in srcstr will stop coping and
-     the function will copy as many character as possible within n bytes. The 
-     result string will be null-terminated.
-   RETURNS
-     number of bytes copied not including the ending null-terminator.
-   envhp(IN/OUT)
-     Pointer to a OCI environment handle.
-   dststr(IN)
-     Pointer to the source multi-byte string.
-   srcstr(OUT)
-     Pointer to the destination buffer.
-   n(IN)
-     Number of bytes from srcstr to copy.
-*/
-size_t OCIMultiByteStrncpy(dvoid *envhp, OraText *dststr,
-                           CONST OraText *srcstr, size_t n);
-
-
-/*----------------------- OCIMultiByteStrnDisplayLength ---------------------*/
-/*
-   NAME
-     OCIMultiByteStrnDisplayLength - calculate the display length for a
-                                     multibyt string
-   REMARKS
-     This function returns the number of display positions occupied by the 
-     complete characters within the range of n bytes.
-   RETURNS
-     number of display positions.
-   envhp(IN/OUT)
-     OCI environment handle.
-   str(IN)
-     Pointer to a multi-byte string.
-   n(IN)
-     Number of bytes to examine.
-*/
-size_t OCIMultiByteStrnDisplayLength(dvoid *envhp, CONST OraText *str1,
-                                     size_t n);
-
-
-/*---------------------- OCIMultiByteStrCaseConversion  ---------------------*/
-/*
-   NAME
-     OCIMultiByteStrCaseConversion
-   REMARKS
-     This function convert the multi-byte string pointed to by srcstr into the
-     uppercase or lowercase specified by flag and copies the result into the
-     array pointed to by dststr. The result string will be null-terminated.
-   RETURNS
-     number of bytes for result string not including null-terminator.
-   envhp(IN/OUT)
-     OCI environment handle.
-   dststr(OUT)
-     Pointer to destination array.
-   srcstr(IN)
-     Pointer to source string.
-   flag(IN)
-     Specify the case to convert:
-       OCI_NLS_UPPERCASE: convert to uppercase.
-       OCI_NLS_LOWERCASE: convert to lowercase.
-     This flag can be ORed with OCI_NLS_LINGUISTIC to specify that the 
-     linguistic setting in the locale will be used for case conversion.
-*/
-size_t OCIMultiByteStrCaseConversion(dvoid *envhp, OraText *dststr,
-                                     CONST OraText *srcstr, ub4 flag);
-
-
-/*------------------------- OCICharSetToUnicode -----------------------------*/
-/*
-   NAME
-     OCICharSetToUnicode - convert multibyte string into Unicode as UCS2
-   REMARKS
-     This function converts a multi-byte string pointed to by src to Unicode 
-     into the array pointed to by dst. The conversion will stop when it reach
-     to the source limitation or destination limitation. 
-     The function will return number of characters converted into Unicode.
-     If dstlen is zero, it will just return the number of characters for the
-     result without real conversion.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     Pointer to an OCI environment handle
-   dst(OUT)
-     Pointer to a destination buffer
-   dstlen(IN)
-     Size of destination buffer in character
-   src(IN)
-     Pointer to multi-byte source string.
-   srclen(IN)
-     Size of source string in bytes.
-   rsize(OUT)
-     Number of characters converted.
-     If it is a NULL pointer, nothing to return.
-*/
-sword OCICharSetToUnicode(dvoid *envhp, ub2 *dst, size_t dstlen,
-                          CONST OraText *src, size_t  srclen, size_t *rsize);
-
-
-/*------------------------- OCIUnicodeToCharSet -----------------------------*/
-/*
-   NAME
-     OCIUnicodeToCharSet - convert Unicode into multibyte
-   REMARKS
-     This function converts a Unicode string pointed to by src to multi-byte
-     into the array pointed to by dst. The conversion will stop when it reach
-     to the source limitation or destination limitation. The function will
-     return number of bytes converted into multi-byte. If dstlen is zero, it
-     will just return the number of bytes for the result without real 
-     conversion. If a Unicode character is not convertible for the character
-     set specified in OCI environment handle, a replacement character will be
-     used for it. In this case, OCICharSetConversionIsReplacementUsed() will
-     return ture.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     Pointer to an OCI environment handle.
-   dst(OUT)
-     Pointer to a destination buffer.
-   dstlen(IN)
-     Size of destination buffer in byte.
-   src(IN)
-     Pointer to a Unicode string.
-   srclen(IN)
-     Size of source string in characters.
-   rsize(OUT)
-     Number of bytes converted.
-     If it is a NULL pointer, nothing to return.
-*/
-sword OCIUnicodeToCharSet(dvoid *envhp, OraText *dst, size_t dstlen, 
-                           CONST ub2 *src, size_t srclen, size_t *rsize);
-
-/*----------------------- OCINlsCharSetConvert ------------------------------*/
-/*
-   NAME
-     OCINlsCharSetConvert - convert between any two character set.
-   REMARKS
-     This function converts a string pointed to by src in the character set
-     specified with srcid to the array pointed to by dst in the character set
-     specified with dstid. The conversion will stop when it reaches the source
-     limitation or destination limitation. The function will return the number
-     of bytes converted into the destination buffer. Even though either source
-     or destination character set id is OCI_UTF16ID, given and return data
-     length will be represented with the byte length as this function is
-     intended for generic purpose. Note the conversion will not stop at null
-     data.
-     To get character set id from name, OCINlsCharSetNameToId can be used.
-     To check if derived data in the destination buffer contains any
-     replacement character resulting from conversion failure,
-     OCICharSetConversionIsReplacementUsed can be used to get the status.
-     Data alignment should be guaranteed by a caller. For example, UTF-16 data
-     should be aligned to ub2 type.
-
-   RETURNS
-     OCI_SUCCESS or OCI_ERROR.
-   errhp(IN/OUT)
-     OCI error handle. If there is an error, it is recorded in errhp and this
-     function returns a NULL pointer. Diagnostic information can be obtained
-     by calling OCIErrorGet().
-   dstid(IN)
-     Character set id for the destination buffer.
-   dstp(OUT)
-     Pointer to the destination buffer.
-   dstlen(IN)
-     The maximum byte size of destination buffer.
-   srcid(IN)
-     Character set id for the source buffer.
-   srcp(IN)
-     Pointer to the source buffer.
-   srclen(IN)
-     The length byte size of source buffer.
-   rsize(OUT)
-     The number of characters converted. If it is a NULL pointer, nothing to
-     return.
-*/
-sword OCINlsCharSetConvert(dvoid *envhp, OCIError *errhp, 
-                        ub2 dstid, dvoid *dstp, size_t dstlen,
-                        ub2 srcid, CONST dvoid *srcp, size_t srclen,
-                        size_t *rsize);
-
-
-/* ------------------- OCICharsetConversionIsReplacementUsed ----------------*/
-/*
-   NAME
-     OCICharsetConversionIsReplacementUsed - chech if replacement is used in 
-                                             conversion
-   REMARKS
-     This function indicates whether or not the replacement character was used
-     for nonconvertible characters in character set conversion in last invoke
-     of OCICharsetUcs2ToMb().
-   RETURNS
-     TRUE is the replacement character was used in last OCICharsetUcs2ToMb()
-     invoking, else FALSE.
-   envhp(IN/OUT)
-     OCI environment handle. This should be the first handle passed to 
-     OCICharsetUcs2ToMb().
-*/
-boolean OCICharSetConversionIsReplacementUsed(dvoid *envhp);
-
-/*------------------- OCINlsEnvironmentVariableGet -----------------*/
-/*
-   NAME
-     OCINlsEnvironmentVariableGet - get a value of NLS environment variable.
-
-   DESCRIPTION
-     This function retrieves a value of NLS environment variable to the buffer
-     pointed to by val. Data type is determined by the parameter specified by
-     item. Either numeric data or string data can be retrieved.
-
-   RETURNS
-     OCI_SUCCESS or OCI_ERROR.
-
-   PARAMETERS
-   valp(OUT) -
-     Pointer to the buffer.
-   size(IN) -
-     Size of the buffer. This argument is only applicable to string data type,
-     but not to numerical data, in such case, it is ignored.
-   item(IN) -
-     NLS item value, which can be one of following values:
-       OCI_NLS_CHARSET_ID  - NLS_LANG character set id in ub2 data type.
-       OCI_NLS_NCHARSET_ID - NLS_NCHAR character set id in ub2 data type.
-   charset(IN) -
-     Character set id for retrieved string data. If it is 0, NLS_LANG will be
-     used. OCI_UTF16ID is a valid id. In case of numeric data, this argument
-     is ignored.
-   rsize(OUT) -
-     Size of return value.
-
-   NOTE
-     This functions is mainly used for retrieving character set id from either
-     NLS_LANG or NLS_NCHAR environment variables. If NLS_LANG is not set,
-     the default character set id is returned.
-     For future extension, the buffer is capable for storing other data types.
-*/
-sword OCINlsEnvironmentVariableGet(dvoid  *valp, size_t size, ub2 item,
-                                   ub2 charset, size_t *rsize);
-
-
-/*------------------------- OCIMessageOpen ----------------------------------*/
-/*
-   NAME
-     OCIMessageOpen - open a locale message file
-   REMARKS
-     This function opens a message handle for facility of product in a language
-     pointed to by envhp. It first try to open the message file corresponding
-     to envhp for the facility. If it successes, it will use that file to
-     initialize a message handle, else it will use the default message file
-     which is for American language for the facility. The function return a
-     pointer pointed to a message handle into msghp parameter.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     A pointer to OCI environment handle for message language.
-   errhp(IN/OUT)
-     The OCI error handle. If there is an error, it is record in errhp and this
-     function returns a NULL pointer. Diagnostic information can be obtained by
-     calling OCIErrorGet().
-   msghp(OUT)
-     a message handle for return
-   product(IN)
-     A pointer to a product name. Product name is used to locate the directory
-     for message in a system dependent way. For example, in Solaris, the
-     directory of message files for the product `rdbms' is
-     `${ORACLE_HOME}/rdbms'.
-   facility(IN)
-     A pointer to a facility name in the product. It is used to construct a
-     message file name. A message file name follows the conversion with 
-     facility as prefix. For example, the message file name for facility
-     `img' in American language will be `imgus.msb' where `us' is the 
-     abbreviation of American language and `msb' as message binary file 
-     extension.
-   dur(IN)
-     Duration for memory allocation for the return message handle. It can be
-     the following values:
-        OCI_DURATION_CALL
-        OCI_DURATION_STATEMENT
-        OCI_DURATION_SESSION
-        OCI_DURATION_TRANSACTION
-     For the detail description, please refer to Memory Related Service
-     Interfaces section.
-*/
-sword OCIMessageOpen(dvoid *envhp, OCIError *errhp, OCIMsg **msghp,
-                      CONST OraText *product, CONST OraText *facility, 
-                      OCIDuration dur);
- 
-
-/*------------------------- OCIMessageGet -----------------------------------*/
-/*
-   NAME
-     OCIMessageGet - get a locale message from a message handle
-   REMARKS
-     This function will get message with message number identified by msgno and
-     if buflen is not zero, the function will copy the message into the buffer
-     pointed to by msgbuf. If buflen is zero, the message will be copied into
-     a message buffer inside the message handle pointed to by msgh. For both
-     cases. it will return the pointer to the null-terminated message string.
-     If it cannot get the message required, it will return a NULL pointer.
-   RETURNS
-     A pointer to a null-terminated message string on success, otherwise a NULL
-     pointer.
-   msgh(IN/OUT)
-     Pointer to a message handle which was previously opened by
-     OCIMessageOpen().
-   msgno(IN)
-     The message number for getting message.
-   msgbuf(OUT)
-     Pointer to a destination buffer to the message retrieved. If buflen is
-     zero, it can be NULL pointer.
-   buflen(IN)
-     The size of the above destination buffer.
-*/
-OraText *OCIMessageGet(OCIMsg *msgh, ub4 msgno, OraText *msgbuf,
-                       size_t buflen);
-
-/*------------------------- OCIMessageClose ---------------------------------*/
-/*
-   NAME
-     OCIMessageClose - close a message handle
-   REMARKS
-     This function closes a message handle pointed to by msgh and frees any
-     memory associated with this handle.
-   RETURNS
-     OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR
-   envhp(IN/OUT)
-     A pointer to OCI environment handle for message language.
-   errhp(IN/OUT)
-     The OCI error handle. If there is an error, it is record in errhp and this
-     function returns a NULL pointer. Diagnostic information can be obtained by
-     calling OCIErrorGet().
-   msghp(IN/OUT)
-     A pointer to a message handle which was previously opened by
-     OCIMessageOpen().
-*/
-sword OCIMessageClose(dvoid *envhp, OCIError *errhp, OCIMsg *msghp);
-
-/*--------------- End of Extensions to NLS cartridge service ----------------*/
-
-
-/*----------------- Extensions to OCI Thread interface ---------------------*/
-/*****************************************************************************
-                              DESCRIPTION
-******************************************************************************
-1 Threads Interface
-
-The OCIThread package provides a number of commonly used threading
-primitives for use by Oracle customers.  It offers a portable interface to
-threading capabilities native to various platforms.  It does not implement
-threading on platforms which do not have native threading capability.
-
-OCIThread does not provide a portable implementation of multithreaded 
-facilities.  It only serves as a set of portable covers for native 
-multithreaded facilities.  Therefore, platforms that do not have native 
-support for multi-threading will only be able to support a limited 
-implementation of OCIThread.  As a result, products that rely on all of 
-OCIThread's functionality will not port to all platforms.  Products that must 
-port to all platforms must use only a subset of OCIThread's functionality.  
-This issue is discussed further in later sections of this document.
-
-The OCIThread API is split into four main parts.  Each part is described
-briefly here.  The following subsections describe each in greater detail.
-
- 1. Initialization and Termination Calls
-
-     These calls deal with the initialization and termination of OCIThread.
-     Initialization of OCIThread initializes the OCIThread context which is
-     a member of the OCI environment or session handle.  This context is 
-     required for other OCIThread calls.
-
- 2. Passive Threading Primitives
-
-     The passive threading primitives include primitives to manipulate mutual
-     exclusion (mutex) locks, thread ID's, and thread-specific data keys.
-
-     The reason that these primitives are described as 'passive' is that while
-     their specifications allow for the existence of multiple threads, they do
-     not require it.  This means that it is possible for these primitives to
-     be implemented according to specification in both single-threaded and
-     multi-threaded environments.
-
-     As a result, OCIThread clients that use only these primitives will not
-     require the existence of multiple threads in order to work correctly,
-     i.e., they will be able to work in single-threaded environments without 
-     branching code.
-
- 3. Active Threading Primitives
-
-     Active threading primitives include primitives dealing with the creation,
-     termination, and other manipulation of threads.
-
-     The reason that these primitives are described as 'active' is that they
-     can only be used in true multi-threaded environments.  Their
-     specifications explicitly require that it be possible to have multiple
-     threads.  If you need to determine at runtime whether or not you are in a
-     multi-threaded environment, call OCIThreadIsMulti() before calling an
-     OCIThread active primitive.
-
-
-1.1 Initialization & Termination
-==================================
-
-The types and functions described in this section are associated with the
-initialization and termination of the OCIThread package.  OCIThread must
-be properly initialized before any of its functionality can be used.
-OCIThread's process initialization function, 'OCIThreadProcessInit()',
-must be called with care; see below.
-
-The observed behavior of the initialization and termination functions is the
-same regardless of whether OCIThread is in single-threaded or multi-threaded
-environment.  It is OK to call the initialization functions from both generic
-and operating system specific (OSD) code.
-
-1.1.1 Types
-
-  OCIThreadContext - OCIThread Context
-  -------------------------------------
-
-    Most calls to OCIThread functions take the OCI environment or session 
-    handle as a parameter.  The OCIThread context is part of the OCI 
-    environment or session handle and it must be initialized by calling 
-    'OCIThreadInit()'.  Termination of the OCIThread context occurs by calling
-    'OCIThreadTerm()'.
-
-    The OCIThread context is a private data structure.  Clients must NEVER
-    attempt to examine the contents of the context.
-
-1.1.2  OCIThreadProcessInit
-
-  OCIThreadProcessInit - OCIThread Process INITialization
-  --------------------------------------------------------
-
-    Description
-
-      This function should be called to perform OCIThread process
-      initialization.
-
-    Prototype
-
-      void OCIThreadProcessInit();
-
-    Returns
-
-      Nothing.
-
-    Notes
-
-      Whether or not this function needs to be called depends on how OCI
-      Thread is going to be used.
-
-        * In a single-threaded application, calling this function is optional.
-          If it is called at all, the first call to it must occur before calls
-          to any other OCIThread functions.  Subsequent calls can be made
-          without restriction; they will not have any effect.
-
-        * In a multi-threaded application, this function MUST be called.  The
-          first call to it MUST occur 'strictly before' any other OCIThread
-          calls; i.e., no other calls to OCIThread functions (including other
-          calls to this one) can be concurrent with the first call.
-          Subsequent calls to this function can be made without restriction;
-          they will not have any effect.
-
-
-1.1.3 OCIThreadInit
-
-  OCIThreadInit - OCIThread INITialize
-  -------------------------------------
-
-    Description
-
-      This initializes OCIThread context.
-
-    Prototype
-
-      sword OCIThreadInit(dvoid *hndl, OCIError *err);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal for OCIThread clients to try an examine the memory
-      pointed to by the returned pointer.
-
-      It is safe to make concurrent calls to 'OCIThreadInit()'.  Unlike
-      'OCIThreadProcessInit()',  there is no need to have a first call
-      that occurs before all the others.
-
-      The first time 'OCIThreadInit()' is called, it initilaizes the OCI
-      Thread context.  It also saves a pointer to the context in some system
-      dependent manner.  Subsequent calls to 'OCIThreadInit()' will return
-      the same context.
-
-      Each call to 'OCIThreadInit()' must eventually be matched by a call to
-      'OCIThreadTerm()'.
-
-  OCIThreadTerm - OCIThread TERMinate
-  ------------------------------------
-
-    Description
-
-      This should be called to release the OCIThread context.  It should be
-      called exactly once for each call made to 'OCIThreadInit()'.
-
-    Prototype
-
-      sword OCIThreadTerm(dvoid *hndl, OCIError *err);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is safe to make concurrent calls to 'OCIThreadTerm()'.
-
-      'OCIThreadTerm()' will not do anything until it has been called as
-      many times as 'OCIThreadInit()' has been called.  When that happens,
-      it terminates the OCIThread layer and frees the memory allocated for
-      the context.  Once this happens, the context should not be re-used.
-      It will be necessary to obtain a new one by calling 'OCIThreadInit()'.
-
-
-  OCIThreadIsMulti - OCIThread Is Multi-Threaded?
-  ------------------------------------------------
-
-    Description
-
-      This tells the caller whether the application is running in a
-      multi-threaded environment or a single-threaded environment.
-
-    Prototype
-      boolean OCIThreadIsMulti(void);
-
-    Returns
-
-      TRUE if the environment is multi-threaded;
-      FALSE if the environment is single-threaded.
-
-
-1.2 Passive Threading Primitives
-==================================
-
-1.2.1 Types
-
-The passive threading primitives deal with the manipulation of mutex, 
-thread ID's, and thread-specific data.  Since the specifications of these 
-primitives do not require the existence of multiple threads, they can be 
-used both on multithreaded and single-threaded platforms.
-
-1.2.1.1  OCIThreadMutex - OCIThread Mutual Exclusion Lock
------------------------------------------------------------
-
-  The type 'OCIThreadMutex' is used to represent a mutual exclusion lock
-  (mutex).  A mutex is typically used for one of two purposes: (i) to
-  ensure that only one thread accesses a given set of data at a time, or
-  (ii) to ensure that only one thread executes a given critical section of
-  code at a time.
-
-  Mutexes pointer can be declared as parts of client structures or as 
-  stand-alone variables.  Before they can be used, they must be initialized 
-  using 'OCIThreadMutexInit()'.  Once they are no longer needed, they must be
-  destroyed using 'OCIThreadMutexDestroy()'.  A mutex pointer must NOT be 
-  used after it is destroyed.
-
-  A thread can acquire a mutex by using either 'OCIThreadMutexAcquire()' or
-  'OCIThreadMutexTry()'.  They both ensure that only one thread at a time is
-  allowed to hold a given mutex.  A thread that holds a mutex can release it
-  by calling 'OCIThreadMutexRelease()'.
-
-
-1.2.1.2  OCIThreadKey - OCIThread Key for Thread-Specific Data
-----------------------------------------------------------------
-
-  A key can be thought of as a process-wide variable that has a
-  thread-specific value.  What this means is that all the threads in a
-  process can use any given key.  However, each thread can examine or modify
-  that key independently of the other threads.  The value that a thread sees
-  when it examines the key will always be the same as the value that it last
-  set for the key.  It will not see any values set for the key by the other
-  threads.
-
-  The type of the value held by a key is a 'dvoid *' generic pointer.
-
-  Keys can be created using 'OCIThreadKeyInit()'.  When a key is created, its
-  value is initialized to 'NULL' for all threads.
-
-  A thread can set a key's value using 'OCIThreadKeySet()'.  A thread can
-  get a key's value using 'OCIThreadKeyGet()'.
-
-  The OCIThread key functions will save and retrieve data SPECIFIC TO THE
-  THREAD.  When clients maintain a pool of threads and assign the threads to
-  different tasks, it *may not* be appropriate for a task to use OCIThread
-  key functions to save data associated with it.  Here is a scenario of how
-  things can fail: A thread is assigned to execute the initialization of a
-  task.  During the initialization, the task stored some data related to it
-  in the thread using OCIThread key functions.  After the initialization,
-  the thread is returned back to the threads pool.  Later, the threads pool
-  manager assigned another thread to perform some operations on the task,
-  and the task needs to retrieve those data it stored earlier in
-  initialization.  Since the task is running in another thread, it will not
-  be able to retrieve the same data back!  Applications that use thread
-  pools should be aware of this and be cautious when using OCIThread key
-  functions.
-
-
-1.2.1.3  OCIThreadKeyDestFunc - OCIThread Key Destructor Function Type
-------------------------------------------------------------------------
-
-  This is the type of a pointer to a key's destructor routine.  Keys can be
-  associated with a destructor routine when they are created (see
-  'OCIThreadKeyInit()').
-
-  A key's destructor routine will be called whenever a thread that has a
-  non-NULL value for the key terminates.
-
-  The destructor routine returns nothing and takes one parameter.  The
-  parameter will be the value that was set for key when the thread
-  terminated.
-
-  The destructor routine is guaranteed to be called on a thread's value
-  in the key after the termination of the thread and before process
-  termination.  No more precise guarantee can be made about the timing
-  of the destructor routine call; thus no code in the process may assume
-  any post-condition of the destructor routine.  In particular, the
-  destructor is not guaranteed to execute before a join call on the
-  terminated thread returns.
-
-
-1.2.1.4  OCIThreadId - OCIThread Thread ID
---------------------------------------------
-
-  Type 'OCIThreadId' is the type that will be used to identify a thread.
-  At any given time, no two threads will ever have the same 'OCIThreadId'.
-  However, 'OCIThreadId' values can be recycled; i.e., once a thread dies,
-  a new thread may be created that has the same 'OCIThreadId' as the one
-  that died.  In particular, the thread ID must uniquely identify a thread
-  T within a process, and it must be consistent and valid in all threads U
-  of the process for which it can be guaranteed that T is running
-  concurrently with U.  The thread ID for a thread T must be retrievable
-  within thread T.  This will be done via OCIThreadIdGet().
-
-  The 'OCIThreadId' type supports the concept of a NULL thread ID: the NULL
-  thread ID will never be the same as the ID of an actual thread.
-
-
-
-1.2.2 Function prototypes for passive primitives
---------------------------------------------------
-
-1.2.2.1 Mutex functions
--------------------------
-
-  OCIThreadMutexInit - OCIThread MuteX Initialize
-  -----------------------------------------------
-
-    Description
-
-      This allocate and initializes a mutex.  All mutexes must be 
-      initialized prior to use.
-
-    Prototype
-
-      sword OCIThreadMutexInit(dvoid *hndl, OCIError *err, 
-                               OCIThreadMutex **mutex);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        mutex(OUT):  The mutex to initialize.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      Multiple threads must not initialize the same mutex simultaneously.
-      Also, a mutex must not be reinitialized until it has been destroyed (see
-      'OCIThreadMutexDestroy()').
-
-  OCIThreadMutexDestroy - OCIThread MuteX Destroy
-  -----------------------------------------------
-
-    Description
-
-      This destroys and deallocate a mutex.  Each mutex must be destroyed 
-      once it is no longer needed.
-
-    Prototype
-
-      sword OCIThreadMutexDestroy(dvoid *hndl, OCIError *err,
-                                  OCIThreadMutex **mutex);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        mutex(IN/OUT):   The mutex to destroy.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is not legal to destroy a mutex that is uninitialized or is currently
-      held by a thread.  The destruction of a mutex must not occur concurrently
-      with any other operations on the mutex.  A mutex must not be used after
-      it has been destroyed.
-
-
-  OCIThreadMutexAcquire - OCIThread MuteX Acquire
-  -----------------------------------------------
-
-    Description
-
-      This acquires a mutex for the thread in which it is called.  If the mutex
-      is held by another thread, the calling thread is blocked until it can
-      acquire the mutex.
-
-    Prototype
-
-     sword OCIThreadMutexAcquire(dvoid *hndl, OCIError *err,
-                                 OCIThreadMutex *mutex);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error, it is 
-                     recorded in err and this function returns OCI_ERROR.  
-                     Diagnostic information can be obtained by calling 
-                     OCIErrorGet().
-
-        mutex(IN/OUT):   The mutex to acquire.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal to attempt to acquire an uninitialized mutex.
-
-      This function's behavior is undefined if it is used by a thread to
-      acquire a mutex that is already held by that thread.
-
-
-
-  OCIThreadMutexRelease - OCIThread MuteX Release
-  -----------------------------------------------
-
-    Description
-
-      This releases a mutex.  If there are any threads blocked on the mutex,
-      one of them will acquire it and become unblocked.
-
-    Prototype
-
-      sword OCIThreadMutexRelease(dvoid *hndl, OCIError *err,
-                                  OCIThreadMutex *mutex);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        mutex(IN/OUT):   The mutex to release.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal to attempt to release an uninitialized mutex.  It is also
-      illegal for a thread to release a mutex that it does not hold.
-
-
-  OCIThreadKeyInit - OCIThread KeY Initialize
-  -------------------------------------------
-
-    Description
-
-      This creates a key.  Each call to this routine allocate and generates 
-      a new key that is distinct from all other keys.
-
-    Prototype
-
-      sword OCIThreadKeyInit(dvoid *hndl, OCIError *err, OCIThreadKey **key,
-                             OCIThreadKeyDestFunc destFn);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        key(OUT):    The 'OCIThreadKey' in which to create the new key.
-
-        destFn(IN):  The destructor for the key.  NULL is permitted.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      Once this function executes successfully, a pointer to an allocated and 
-      initialized key is return.  That key can be used with 'OCIThreadKeyGet()'
-      and 'OCIThreadKeySet()'.  The initial value of the key will be 'NULL' for
-      all threads.
-
-      It is illegal for this function to be called more than once to create the
-      same key (i.e., to be called more than once with the same value for the
-      'key' parameter).
-
-      If the 'destFn' parameter is not NULL, the routine pointed to by 'destFn'
-      will be called whenever a thread that has a non-NULL value for the key
-      terminates.  The routine will be called with one parameter.  The
-      parameter will be the key's value for the thread at the time at which the
-      thread terminated.
-      If the key does not need a destructor function, pass NULL for 'destFn'.
-
-
-  OCIThreadKeyDestroy - OCIThread KeY DESTROY
-  -------------------------------------------
-
-   Description
-
-     Destroy and deallocate the key pointed to by 'key'.
-
-    Prototype
-
-      sword OCIThreadKeyDestroy(dvoid *hndl, OCIError *err, 
-                                OCIThreadKey **key);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        key(IN/OUT):  The 'OCIThreadKey' in which to destroy the key.
- 
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      This is different from the destructor function callback passed to the
-      key create routine.  This new destroy function 'OCIThreadKeyDestroy' is 
-      used to terminate any resources OCI THREAD acquired when it created 
-      'key'.  [The 'OCIThreadKeyDestFunc' callback type is a key VALUE 
-      destructor; it does in no way operate on the key itself.]
-
-      This must be called once the user has finished using the key.  Not
-      calling the key destroy function may result in memory leaks.
-
-
-
-
-1.2.2.2 Thread Key operations
--------------------------------
-
-  OCIThreadKeyGet - OCIThread KeY Get value
-  -----------------------------------------
-
-    Description
-
-      This gets the calling thread's current value for a key.
-
-    Prototype
-
-      sword OCIThreadKeyGet(dvoid *hndl, OCIError *err, OCIThreadKey *key,
-                            dvoid **pValue);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        key(IN):          The key.
-
-        pValue(IN/OUT):   The location in which to place the thread-specific
-                          key value.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal to use this function on a key that has not been created
-      using 'OCIThreadKeyInit()'.
-
-      If the calling thread has not yet assigned a value to the key, 'NULL' is
-      placed in the location pointed to by 'pValue'.
-
-
-  OCIThreadKeySet - OCIThread KeY Set value
-  -----------------------------------------
-
-    Description
-
-      This sets the calling thread's value for a key.
-
-    Prototype
-
-      sword OCIThreadKeySet(dvoid *hndl, OCIError *err, OCIThreadKey *key,
-                            dvoid *value);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        key(IN/OUT): The key.
-
-        value(IN):   The thread-specific value to set in the key.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      It is illegal to use this function on a key that has not been created
-      using 'OCIThreadKeyInit()'.
-
-1.2.2.3  Thread Id
---------------------
-
-  OCIThreadIdInit - OCIThread Thread Id INITialize
-  --------------------------------------------------
-
-    Description
-
-      Allocate and initialize the thread id 'tid'.
-
-    Prototype
-
-      sword OCIThreadIdInit(dvoid *hndl, OCIError *err, OCIThreadId **tid);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid (OUT):   Pointer to the thread ID to initialize.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-
-  OCIThreadIdDestroy - OCIThread Thread Id DESTROY
-  --------------------------------------------------
-
-    Description
-
-      Destroy and deallocate the thread id 'tid'.
-
-    Prototype
-
-      sword OCIThreadIdDestroy(dvoid *hndl, OCIError *err, OCIThreadId **tid);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid(IN/OUT):        Pointer to the thread ID to destroy.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Note
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-
-  OCIThreadIdSet - OCIThread Thread Id Set
-  -----------------------------------------
-
-    Description
-
-      This sets one 'OCIThreadId' to another.
-
-    Prototype
-
-      sword OCIThreadIdSet(dvoid *hndl, OCIError *err, 
-                           OCIThreadId *tidDest,
-                           OCIThreadId *tidSrc);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tidDest(OUT):   This should point to the location of the 'OCIThreadId'
-                        to be set to.
-
-        tidSrc(IN):     This should point to the 'OCIThreadId' to set from.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-
-  OCIThreadIdSetNull - OCIThread Thread Id Set Null
-  ---------------------------------------------------------
-
-    Description
-
-      This sets the NULL thread ID to a given 'OCIThreadId'.
-
-    Prototype
-
-      sword OCIThreadIdSetNull(dvoid *hndl, OCIError *err,
-                               OCIThreadId *tid);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error, it is 
-                     recorded in err and this function returns OCI_ERROR.  
-                     Diagnostic information can be obtained by calling 
-                     OCIErrorGet().
-
-        tid(OUT):    This should point to the 'OCIThreadId' in which to put
-                     the NULL thread ID.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-
-  OCIThreadIdGet - OCIThread Thread Id Get
-  ------------------------------------------
-
-    Description
-
-      This retrieves the 'OCIThreadId' of the thread in which it is called.
-
-    Prototype
-
-      sword OCIThreadIdGet(dvoid *hndl, OCIError *err,
-                           OCIThreadId *tid);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid(OUT):    This should point to the location in which to place the
-                     ID of the calling thread.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-      When OCIThread is used in a single-threaded environment,
-      OCIThreadIdGet() will always place the same value in the location
-      pointed to by 'tid'.  The exact value itself is not important.  The
-      important thing is that it is not the same as the NULL thread ID and
-      that it is always the same value.
-
-
-  OCIThreadIdSame - OCIThread Thread Ids Same?
-  ----------------------------------------------
-
-    Description
-
-      This determines whether or not two 'OCIThreadId's represent the same
-      thread.
-
-    Prototype
-
-      sword OCIThreadIdSame(dvoid *hndl, OCIError *err,
-                            OCIThreadId *tid1, OCIThreadId *tid2,
-                            boolean *result);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid1(IN):   Pointer to the first 'OCIThreadId'.
-
-        tid2(IN):   Pointer to the second 'OCIThreadId'.
-	
-	result(IN/OUT): Pointer to the result.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      If 'tid1' and 'tid2' represent the same thread, 'result' is set to TRUE.
-      Otherwise, 'result' is set to FALSE.
-
-      'result' is set to TRUE if both 'tid1' and 'tid2' are the NULL thread ID.
-
-      'ti1d' and 'tid2' should be initialized by OCIThreadIdInit().
-
-
-  OCIThreadIdNull - OCIThread Thread Id NULL?
-  ---------------------------------------------
-
-    Description
-
-      This determines whether or not a given 'OCIThreadId' is the NULL thread
-      ID.
-
-    Prototype
-
-      sword OCIThreadIdNull(dvoid *hndl, OCIError *err,
-                            OCIThreadId *tid,
-                            boolean *result);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tid(IN):    Pointer to the 'OCIThreadId' to check.
-
-	result(IN/OUT): Pointer to the result.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      If 'tid' is the NULL thread ID, 'result' is set to TRUE.  Otherwise, 
-      'result' is set to FALSE.
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-
-1.3 Active Threading Primitives
-=================================
-
-The active threading primitives deal with the manipulation of actual
-threads.  Because the specifications of most of these primitives require
-that it be possible to have multiple threads, they work correctly only in
-the enabled OCIThread; In the disabled OCIThread, they always return
-failure.  The exception is OCIThreadHandleGet(); it may be called in a 
-single-threaded environment, in which case it will have no effect.
-
-Active primitives should only be called by code running in a multi-threaded
-environment.  You can call OCIThreadIsMulti() to determine whether the 
-environment is multi-threaded or single-threaded.
-
-
-1.3.1  Types
---------------
-
-1.3.1.1    OCIThreadHandle - OCIThread Thread Handle
-------------------------------------------------------
-
-  Type 'OCIThreadHandle' is used to manipulate a thread in the active
-  primitives:  OCIThreadJoin()and OCIThreadClose().  A thread handle opened by
-  OCIThreadCreate() must be closed in a matching call to
-  OCIThreadClose().  A thread handle is invalid after the call to
-  OCIThreadClose().
-
-  The distinction between a thread ID and a thread handle in OCIThread usage
-  follows the distinction between the thread ID and the thread handle on
-  Windows NT.  On many platforms, the underlying native types are the same.
-
-
-1.3.2  Functions
-------------------
-
-  OCIThreadHndInit - OCIThread HaNDle Initialize
-  ----------------------------------------------
-
-    Description
-
-      Allocate and initialize the thread handle.
-
-    Prototype
-
-      sword OCIThreadHndInit(dvoid *hndl, OCIError *err, 
-                             OCIThreadHandle **thnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        thnd(OUT):   The address of pointer to the thread handle to initialize.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-
-  OCIThreadHndDestroy - OCIThread HaNDle Destroy
-  ----------------------------------------------
-
-    Description
-
-      Destroy and deallocate the thread handle.
-
-    Prototype
-
-      sword OCIThreadHndDestroy(dvoid *hndl, OCIError *err, 
-                                OCIThreadHandle **thnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        thnd(IN/OUT):  The address of pointer to the thread handle to destroy.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'thnd' should be initialized by OCIThreadHndInit().
-
-
-  OCIThreadCreate - OCIThread Thread Create
-  -----------------------------------------
-
-    Description
-
-      This creates a new thread.
-
-    Prototype
-
-      sword OCIThreadCreate(dvoid *hndl, OCIError *err,
-                            void (*start)(dvoid *), dvoid *arg,
-                            OCIThreadId *tid, OCIThreadHandle *tHnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        start(IN):    The function in which the new thread should begin
-                      execution.
-
-        arg(IN):      The argument to give the function pointed to by 'start'.
-
-        tid(IN/OUT):  If not NULL, gets the ID for the new thread.
-
-        tHnd(IN/OUT): If not NULL, gets the handle for the new thread.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      The new thread will start by executing a call to the function pointed
-      to by 'start' with the argument given by 'arg'.  When that function
-      returns, the new thread will terminate.  The function should not
-      return a value and should accept one parameter, a 'dvoid *'.
-
-      The call to OCIThreadCreate() must be matched by a call to
-      OCIThreadClose() if and only if tHnd is non-NULL.
-
-      If tHnd is NULL, a thread ID placed in *tid will not be valid in the
-      calling thread because the timing of the spawned thread's termination
-      is unknown.
-
-      'tid' should be initialized by OCIThreadIdInit().
-
-      'thnd' should be initialized by OCIThreadHndInit().
-
-
-
-  OCIThreadJoin - OCIThread Thread Join
-  -------------------------------------
-
-    Description
-
-      This function allows the calling thread to 'join' with another thread.
-      It blocks the caller until the specified thread terminates.
-
-    Prototype
-
-      sword OCIThreadJoin(dvoid *hndl, OCIError *err, OCIThreadHandle *tHnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tHnd(IN):    The 'OCIThreadHandle' of the thread to join with.
-
-    Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'thnd' should be initialized by OCIThreadHndInit().
-
-      The result of multiple threads all trying to join with the same thread is
-      undefined.
-
-
-  OCIThreadClose - OCIThread Thread Close
-  ---------------------------------------
-
-   Description
-
-     This function should be called to close a thread handle.
-
-   Prototype
-
-     sword OCIThreadClose(dvoid *hndl, OCIError *err, OCIThreadHandle *tHnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tHnd(IN/OUT):    The OCIThread thread handle to close.
-
-   Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-   Notes
-
-      'thnd' should be initialized by OCIThreadHndInit().
-
-      Both thread handle and the thread ID that was returned by the same call
-      to OCIThreadCreate() are invalid after the call to OCIThreadClose().
-
-
-
-  OCIThreadHandleGet - OCIThread Thread Get Handle
-  ------------------------------------------------
-
-    Description
-
-      Retrieve the 'OCIThreadHandle' of the thread in which it is called.
-
-    Prototype
-
-      sword OCIThreadHandleGet(dvoid *hndl, OCIError *err,
-                               OCIThreadHandle *tHnd);
-
-        hndl(IN/OUT): The OCI environment or session handle.
-
-        err(IN/OUT): The OCI error handle.  If there is an error and OCI_ERROR
-                     is returned, the error is recorded in err and diagnostic 
-                     information can be obtained by calling OCIErrorGet().
-
-        tHnd(IN/OUT):      If not NULL, the location to place the thread
-                           handle for the thread.
-
-     Returns
-
-      OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE.
-
-    Notes
-
-      'thnd' should be initialized by OCIThreadHndInit().   
-
-      The thread handle 'tHnd' retrieved by this function must be closed 
-      with OCIThreadClose() and destroyed by OCIThreadHndDestroy() after it
-      is used.
-
-
-
-
-1.4 Using OCIThread
-=====================
-
-This section summarizes some of the more important details relating to the use
-of OCIThread.
-
-  * Process initialization
-
-    OCIThread only requires that the process initialization function
-    ('OCIThreadProcessInit()') be called when OCIThread is being used in a
-    multi-threaded application.  Failing to call 'OCIThreadProcessInit()' in
-    a single-threaded application is not an error.
-
-  * OCIThread initialization
-
-    Separate calls to 'OCIThreadInit()' will all return the same OCIThread
-    context.
-
-    Also, remember that each call to 'OCIThreadInit()' must eventually be
-    matched by a call to 'OCIThreadTerm()'.
-
-  * Active vs. Passive Threading primitives
-
-    OCIThread client code written without using any active primitives can be
-    compiled and used without change on both single-threaded and
-    multi-threaded platforms.
-
-    OCIThread client code written using active primitives will only work
-    correctly on multi-threaded platforms.  In order to write a version of the
-    same application to run on single-threaded platform, it is necessary to 
-    branch the your code, whether by branching versions of the source file or 
-    by branching at runtime with the OCIThreadIsMulti() call.
-
-******************************************************************************/
-
-/*****************************************************************************
-                         ACTUAL PROTOTYPE DECLARATIONS
-******************************************************************************/
-
-void OCIThreadProcessInit();
-
-sword OCIThreadInit(dvoid *hndl, OCIError *err);
-
-sword OCIThreadTerm(dvoid *hndl, OCIError *err);
-
-boolean OCIThreadIsMulti();
-
-sword OCIThreadMutexInit(dvoid *hndl, OCIError *err,  
-                         OCIThreadMutex **mutex); 
-
-sword OCIThreadMutexDestroy(dvoid *hndl, OCIError *err, 
-                            OCIThreadMutex **mutex);
-
-sword OCIThreadMutexAcquire(dvoid *hndl, OCIError *err,
-                            OCIThreadMutex *mutex);
-
-sword OCIThreadMutexRelease(dvoid *hndl, OCIError *err,
-                            OCIThreadMutex *mutex);
-
-sword OCIThreadKeyInit(dvoid *hndl, OCIError *err, OCIThreadKey **key,
-                       OCIThreadKeyDestFunc destFn);
-
-sword OCIThreadKeyDestroy(dvoid *hndl, OCIError *err, 
-                          OCIThreadKey **key);
-
-sword OCIThreadKeyGet(dvoid *hndl, OCIError *err, OCIThreadKey *key,
-                      dvoid **pValue);
-
-sword OCIThreadKeySet(dvoid *hndl, OCIError *err, OCIThreadKey *key,
-                      dvoid *value);
-
-sword OCIThreadIdInit(dvoid *hndl, OCIError *err, OCIThreadId **tid);
-
-sword OCIThreadIdDestroy(dvoid *hndl, OCIError *err, OCIThreadId **tid);
-
-sword OCIThreadIdSet(dvoid *hndl, OCIError *err, 
-                     OCIThreadId *tidDest, OCIThreadId *tidSrc);
-
-sword OCIThreadIdSetNull(dvoid *hndl, OCIError *err, OCIThreadId *tid);
-
-sword OCIThreadIdGet(dvoid *hndl, OCIError *err, OCIThreadId *tid);
-
-sword OCIThreadIdSame(dvoid *hndl, OCIError *err,
-                      OCIThreadId *tid1, OCIThreadId *tid2,
-                      boolean *result);
-
-sword OCIThreadIdNull(dvoid *hndl, OCIError *err,
-                      OCIThreadId *tid, boolean *result);
-
-sword OCIThreadHndInit(dvoid *hndl, OCIError *err, OCIThreadHandle **thnd);
-
-sword OCIThreadHndDestroy(dvoid *hndl, OCIError *err, OCIThreadHandle **thnd);
-
-sword OCIThreadCreate(dvoid *hndl, OCIError *err,
-                      void (*start)(dvoid *), dvoid *arg,
-                      OCIThreadId *tid, OCIThreadHandle *tHnd);
-
-sword OCIThreadJoin(dvoid *hndl, OCIError *err, OCIThreadHandle *tHnd);
-
-sword OCIThreadClose(dvoid *hndl, OCIError *err, OCIThreadHandle *tHnd);
-
-sword OCIThreadHandleGet(dvoid *hndl, OCIError *err, OCIThreadHandle *tHnd);
-/*----------------- End OCI Thread interface Extensions ---------------------*/
-
-/*--------------- Begin OCI Client Notification Interfaces ------------------*/
-
-typedef ub4 (*OCISubscriptionNotify)(dvoid *ctx, OCISubscription *subscrhp, 
-				     dvoid *pay, ub4 payl, 
-				     dvoid *desc, ub4 mode);
-
-sword OCISubscriptionRegister(OCISvcCtx *svchp, OCISubscription **subscrhpp, 
-			      ub2 count, OCIError *errhp, ub4 mode);
-
-
-sword OCISubscriptionPost(OCISvcCtx *svchp, OCISubscription **subscrhpp, 
-			      ub2 count, OCIError *errhp, ub4 mode);
-
-sword OCISubscriptionUnRegister(OCISvcCtx *svchp, OCISubscription *subscrhp, 
-			      OCIError *errhp, ub4 mode);
-
-sword OCISubscriptionDisable(OCISubscription *subscrhp, 
-			   OCIError *errhp, ub4 mode);
-
-sword OCISubscriptionEnable(OCISubscription *subscrhp, 
-			  OCIError *errhp, ub4 mode);
-
-/*------------------- End OCI Publish/Subscribe Interfaces ------------------*/
-
-/*----------------- Extensions to Datetime interfaces -----------------------*/
-/*--------------------- Actual Prototypes -----------------------------------*/
-sword OCIDateTimeGetTime(dvoid *hndl, OCIError *err, OCIDateTime *datetime, 
-			 ub1 *hr, ub1 *mm, ub1 *ss, ub4 *fsec);
-
-sword OCIDateTimeGetDate(dvoid *hndl, OCIError *err,  CONST OCIDateTime *date, 
-		 sb2 *yr, ub1 *mnth, ub1 *dy );
-
-sword OCIDateTimeGetTimeZoneOffset(dvoid *hndl,OCIError *err,
-		  CONST OCIDateTime   *datetime,sb1 *hr,sb1 *mm);
-
-sword OCIDateTimeConstruct(dvoid  *hndl,OCIError *err,OCIDateTime *datetime,
-               sb2 yr,ub1 mnth,ub1 dy,ub1 hr,ub1 mm,ub1 ss,ub4 fsec,
-               OraText  *timezone,size_t timezone_length);
-
-sword OCIDateTimeSysTimeStamp(dvoid *hndl, OCIError *err, 
-			      OCIDateTime *sys_date );
-
-sword OCIDateTimeAssign(dvoid *hndl, OCIError *err, CONST OCIDateTime *from, 
-		       OCIDateTime *to);
-
-sword OCIDateTimeToText(dvoid *hndl, OCIError *err, CONST OCIDateTime *date, 
-                        CONST OraText *fmt, ub1 fmt_length, ub1 fsprec, 
-                        CONST OraText *lang_name, size_t lang_length, 
-                        ub4 *buf_size, OraText *buf );
-
-sword OCIDateTimeFromText(dvoid *hndl, OCIError *err, CONST OraText *date_str, 
-             size_t dstr_length, CONST OraText *fmt, ub1 fmt_length,
-             CONST OraText *lang_name, size_t lang_length, OCIDateTime *date );
-
-sword OCIDateTimeCompare(dvoid *hndl, OCIError *err, CONST OCIDateTime *date1, 
-                     CONST OCIDateTime *date2,  sword *result );
-
-sword OCIDateTimeCheck(dvoid *hndl, OCIError *err, CONST OCIDateTime *date, 
-		 ub4 *valid );
-
-sword OCIDateTimeConvert(dvoid *hndl, OCIError *err, OCIDateTime *indate,
-				OCIDateTime *outdate);
-
-sword OCIDateTimeSubtract(dvoid *hndl, OCIError *err, OCIDateTime *indate1, 
-		OCIDateTime *indate2,	 OCIInterval *inter);
-
-sword OCIDateTimeIntervalAdd(dvoid *hndl, OCIError *err, OCIDateTime *datetime,
-	 OCIInterval *inter, OCIDateTime *outdatetime);
-
-sword OCIDateTimeIntervalSub(dvoid *hndl, OCIError *err, OCIDateTime *datetime,
-	 OCIInterval *inter, OCIDateTime *outdatetime);
-
-sword OCIIntervalSubtract(dvoid *hndl, OCIError *err, OCIInterval *minuend, 
-			    OCIInterval *subtrahend, OCIInterval *result );
-
-sword OCIIntervalAdd(dvoid *hndl, OCIError *err, OCIInterval *addend1, 
-			OCIInterval *addend2, OCIInterval *result );
-
-sword OCIIntervalMultiply(dvoid *hndl, OCIError *err, CONST OCIInterval *inter,
-			OCINumber *nfactor, OCIInterval *result );
-
-sword OCIIntervalDivide(dvoid *hndl, OCIError *err, OCIInterval *dividend, 
-		OCINumber *divisor, OCIInterval *result );
-
-sword OCIIntervalCompare(dvoid *hndl, OCIError *err, OCIInterval *inter1, 
-			OCIInterval *inter2, sword *result );
-
-sword OCIIntervalFromNumber(dvoid *hndl, OCIError *err, OCIInterval *inter, 
-			OCINumber *number);
-
-sword OCIIntervalFromText( dvoid *hndl, OCIError *err, CONST OraText *inpstr, 
-		size_t str_len, OCIInterval *result );
-
-sword OCIIntervalToText( dvoid *hndl, OCIError *err, CONST OCIInterval *inter,
-                         ub1 lfprec, ub1 fsprec, 
-			OraText *buffer, size_t buflen, size_t *resultlen );
-
-sword OCIIntervalToNumber(dvoid *hndl, OCIError *err,CONST OCIInterval *inter, 
-			OCINumber *number);
-
-sword OCIIntervalCheck(dvoid *hndl, OCIError *err, CONST OCIInterval *interval,
-			 ub4 *valid );
-
-sword OCIIntervalAssign(dvoid *hndl, OCIError *err, CONST OCIInterval *ininter,
-			OCIInterval *outinter );
-
-sword OCIIntervalSetYearMonth(dvoid *hndl, OCIError *err, sb4 yr, sb4 mnth,
-                        OCIInterval *result );
-
-sword OCIIntervalGetYearMonth(dvoid *hndl, OCIError *err, sb4 *yr, sb4 *mnth,
-                        CONST OCIInterval *result );
-
-sword OCIIntervalSetDaySecond(dvoid *hndl, OCIError *err, sb4 dy, sb4 hr,
-                        sb4 mm, sb4 ss, sb4 fsec, OCIInterval *result );
-
-sword OCIIntervalGetDaySecond(dvoid *hndl, OCIError *err, sb4 *dy, sb4 *hr,
-                     sb4 *mm, sb4 *ss, sb4 *fsec, CONST OCIInterval *result );
-
-sword OCIDateTimeToArray(dvoid *hndl, OCIError *err,
-                         CONST OCIDateTime *datetime, CONST OCIInterval *reftz,
-                         ub1 *outarray, ub4 *len, ub1 fsprec);
-
-sword OCIDateTimeFromArray(dvoid *hndl, OCIError *err, ub1 *inarray, ub4 len,
-                           ub1 type, OCIDateTime *datetime,
-                           CONST OCIInterval *reftz, ub1 fsprec);
-
-sword OCIDateTimeGetTimeZoneName(dvoid *hndl, OCIError *err,
-                                 CONST OCIDateTime *datetime, 
-                                 ub1 *buf, ub4 *buflen);
-
-sword OCIIntervalFromTZ(dvoid *hndl, OCIError *err, CONST oratext *inpstring,
-                        size_t str_len, OCIInterval *result);
-
-/*----------------- End Datetime interface Extensions -----------------------*/
-
-/*----------------- Connection Pooling prototypes ---------------------------*/
-sword OCIConnectionPoolCreate(OCIEnv *envhp, OCIError *errhp, OCICPool *poolhp,
-                              OraText **poolName, sb4 *poolNameLen,  
-                              CONST OraText *dblink, sb4 dblinkLen,
-                              ub4 connMin, ub4 connMax, ub4 connIncr,
-                              CONST OraText *poolUserName, sb4 poolUserLen,
-                              CONST OraText *poolPassword, sb4 poolPassLen,
-                              ub4 mode);
-
-sword OCIConnectionPoolDestroy(OCICPool *poolhp,
-                               OCIError *errhp, ub4 mode);
-
-/*----------------- End Connection Pooling prototypes -----------------------*/
-
-/*-------------------- Session Pooling prototypes ---------------------------*/
-
-sword OCISessionPoolCreate (OCIEnv *envhp, OCIError *errhp, OCISPool *spoolhp, 
-                            OraText **poolName, ub4 *poolNameLen, 
-                            CONST OraText *connStr, ub4 connStrLen,
-                            ub4 sessMin, ub4 sessMax, ub4 sessIncr,
-                            OraText *userid, ub4 useridLen,
-                            OraText *password, ub4 passwordLen,
-                            ub4 mode);
-                                                  
-sword OCISessionPoolDestroy (OCISPool *spoolhp,
-                             OCIError *errhp,
-                             ub4 mode);
-                             
-sword OCISessionGet (OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp,
-                     OCIAuthInfo *authhp,
-                     OraText *poolName, ub4 poolName_len, 
-                     CONST OraText *tagInfo, ub4 tagInfo_len,
-                     OraText **retTagInfo, ub4 *retTagInfo_len,
-                     boolean *found, ub4 mode);
-
-sword OCISessionRelease (OCISvcCtx *svchp, OCIError *errhp,
-                         OraText *tag, ub4 tag_len,
-                         ub4 mode);
-
-/*-------------------- End Session Pooling prototypes -----------------------*/
-
-sword  OCIXMLTypeNew(OCISvcCtx *svchp, OCIError *errhp, OCIDuration dur,
-                     OraText *elname, ub4 elname_Len,
-                     OraText *schemaURL, ub4 schemaURL_Len,
-                     OCIXMLType **retInstance);
-
-sword  OCIXMLTypeCreateFromSrc(OCISvcCtx *svchp, OCIError *errhp,
-                     OCIDuration dur, ub1 src_type, dvoid *src_ptr,
-                     sb4 ind, OCIXMLType **retInstance);
-
-sword OCIXMLTypeExtract(OCIError *errhp,
-              OCIXMLType *doc, OCIDuration dur,
-              OraText *xpathexpr, ub4 xpathexpr_Len,
-              OraText *nsmap, ub4 nsmap_Len,
-              OCIXMLType **retDoc);
-
-sword OCIXMLTypeTransform(OCIError *errhp, OCIDuration dur,
-               OCIXMLType *doc, OCIXMLType *xsldoc,
-               OCIXMLType **retDoc);
-
-sword OCIXMLTypeExists(OCIError *errhp, OCIXMLType *doc,
-                 OraText *xpathexpr, ub4 xpathexpr_Len,
-                 OraText *nsmap, ub4 nsmap_Len,
-                 boolean *retval);
-
-sword OCIXMLTypeIsSchemaBased(OCIError *errhp,
-                              OCIXMLType *doc, boolean *retval);
-
-sword OCIXMLTypeGetSchema(OCIError *errhp, OCIXMLType *doc,
-             OCIXMLType **schemadoc,
-             OraText **schemaURL, ub4 *schemaURL_Len,
-             OraText **rootelem, ub4 *rootelem_Len);
-
-sword OCIXMLTypeValidate(OCIError *errhp, OCIXMLType *doc,
-                   OraText *schemaURL, ub4 schemaURL_Len, boolean *retval);
-
-sword OCIXMLTypeGetDOM(OCIError *errhp, OCIXMLType *doc, OCIDuration dur,
-                       OCIDOMDocument **retDom);
-
-sword OCIXMLTypeGetFromDOM(OCIError *errhp, OCIDOMDocument *domdoc,
-                           OCIXMLType **retXMLType);
-
-sword OCIDOMFree(OCIError *errhp, OCIDOMDocument *domdoc);
-
-
-/*---------------------------------------------------------------------------
-                          PRIVATE FUNCTIONS
-  ---------------------------------------------------------------------------*/
-
-            /* the following functions are depracated and should not be used */
-#ifdef NEVER
-sword   OCIStmtBindByPos  (OCIStmt *stmtp, OCIBind *bindp, OCIError *errhp,
-                  ub4 position, dvoid *valuep, sb4 value_sz,
-                  ub2 dty, dvoid *indp, ub2 *alenp, ub2 *rcodep,
-                  ub4 maxarr_len, ub4 *curelep, ub4 mode);
-
-
-sword   OCIStmtBindByName  (OCIStmt *stmtp, OCIBind *bindp, OCIError *errhp,
-                  CONST OraText *placeholder, sb4 placeh_len, dvoid *valuep, 
-                  sb4 value_sz, ub2 dty, dvoid *indp, ub2 *alenp, 
-                  ub2 *rcodep, ub4 maxarr_len, ub4 *curelep, ub4 mode);
-
-sword   ocidefn  (OCIStmt *stmtp, OCIDefine *defnp, OCIError *errhp,
-                  ub4 position, dvoid *valuep, sb4 value_sz, ub2 dty,
-                  dvoid *indp, ub2 *rlenp, ub2 *rcodep, ub4 mode);
-#endif /* NEVER */
-
-#endif                                                       /* OCIAP_ORACLE */

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/libterralib.git



More information about the Pkg-grass-devel mailing list