[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 ×tmpStr,
- const OCCI_STD_NAMESPACE::string &fmt ,
- const OCCI_STD_NAMESPACE::string &nlsParam= "",
- const Environment *env =NULL);
- void fromText( const UString ×tmpStr,
- 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 ÷nd, 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 ×tamp) ;
- 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 ×tamp) ;
- 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 *)¶m_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 *)¶m_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 *)>ype);
-
- 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