Files correlati : Commento : - Creazione nuova cartella per contenere tutte le librerie esterne - Aggiunta nuova libreria sqlapi per interfacciare campo a vari DB git-svn-id: svn://10.65.10.50/branches/R_10_00@24149 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			1900 lines
		
	
	
		
			94 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			1900 lines
		
	
	
		
			94 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Copyright (c) 2006, 2009, Oracle and/or its affiliates. 
 | 
						|
All rights reserved. */
 | 
						|
 
 | 
						|
/* 
 | 
						|
   NAME 
 | 
						|
     ocixstreams.h - OCI X-Stream APIs
 | 
						|
 | 
						|
   DESCRIPTION 
 | 
						|
     OCI APIs for X-Stream
 | 
						|
 | 
						|
   RELATED DOCUMENTS 
 | 
						|
 
 | 
						|
   EXPORT FUNCTION(S) 
 | 
						|
 | 
						|
   INTERNAL FUNCTION(S)
 | 
						|
 | 
						|
   EXAMPLES
 | 
						|
 | 
						|
   NOTES
 | 
						|
 | 
						|
   MODIFIED   (MM/DD/YY)
 | 
						|
   thoang      05/08/09 - Add OCILCR_NEW_ONLY_MODE 
 | 
						|
   praghuna    05/11/09 - removed 'TODO' comments 
 | 
						|
   thoang      02/15/09 - Change lob_column_* to chunk_column_*
 | 
						|
   thoang      01/27/09 - 8216105 - add OLD/NEW column parms to OCILCRHeaderGet
 | 
						|
   rihuang     01/05/09 - Add OCI_LCR_ATTR_TRACKING_LABEL
 | 
						|
   tianli      11/28/08 - add DDL flags
 | 
						|
   tianli      11/20/08 - add OCILCRAttribute methods
 | 
						|
   thoang      11/20/08 - Define OCI_LCR_MAX_TXID_LEN
 | 
						|
   tianli      11/07/08 - add edition
 | 
						|
   thoang      11/10/08 - change return type to sword for consistency
 | 
						|
   thoang      10/16/08 - remove commit position arg
 | 
						|
   tianli      08/26/08 - rename client_name in XStreamIn attach call
 | 
						|
   thoang      06/30/08 - Support XStream APIs using two callbacks.
 | 
						|
   praghuna    05/14/08 - charset id is ub2, OCILcrGetRowStmtWithBindVar
 | 
						|
   thoang      06/02/08 - Define reserved attach mode for internal clients
 | 
						|
   elu         05/08/08 - add pos functions
 | 
						|
   thoang      04/29/08 - API changes 
 | 
						|
   jinwu       04/28/08 - add OCILcrGetExtraAttributes
 | 
						|
   elu         04/14/08 - add OCI_LCR_MAX_POSITION_LEN
 | 
						|
   juyuan      03/27/08 - add flag for Set/GetHeader and Set/GetColumnInfo
 | 
						|
   thoang      02/25/08 - Add GetNextChunk and SetNextChunk
 | 
						|
   rihuang     03/24/08 - Signature change for OCILcrNew
 | 
						|
   elu         03/05/08 - add lcr id
 | 
						|
   praghuna    02/26/08 - Added OCILcrGetRowStmt
 | 
						|
   thoang      01/25/08 - Add wm_time parameter to XApply APIs
 | 
						|
   thoang      12/28/07 - Add mode parameter to XApplyDetach
 | 
						|
   thoang      11/07/07 - Change extapp apis to return ub1[] watermark
 | 
						|
   juyuan      05/23/07 - XStream In
 | 
						|
   thoang      11/13/06 - Add XStream Out methods
 | 
						|
   thoang      11/13/06 - Add LCR getter methods 
 | 
						|
   nshodhan    05/12/06 - streams OCI APIs 
 | 
						|
   nshodhan    05/12/06 - Creation
 | 
						|
 | 
						|
*/
 | 
						|
 | 
						|
#ifndef OCIXSTREAM_ORACLE
 | 
						|
# define OCIXSTREAM_ORACLE
 | 
						|
 | 
						|
#ifndef ORATYPES
 | 
						|
# include <oratypes.h>
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef OCI_ORACLE
 | 
						|
# include <oci.h>
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
/*---------------------------------------------------------------------------
 | 
						|
                     PUBLIC TYPES AND CONSTANTS
 | 
						|
  ---------------------------------------------------------------------------*/
 | 
						|
/* LCR Types -- must match with values defined in kngo.h */
 | 
						|
#define OCI_LCR_XROW                   (3)               /* External Row LCR */
 | 
						|
#define OCI_LCR_XDDL                   (4)               /* External DDL LCR */
 | 
						|
 | 
						|
/* DML Command Types -- must match with values defined in kngl.h */
 | 
						|
#define OCI_LCR_ROW_CMD_INSERT       "INSERT"
 | 
						|
#define OCI_LCR_ROW_CMD_DELETE       "DELETE"
 | 
						|
#define OCI_LCR_ROW_CMD_UPDATE       "UPDATE"
 | 
						|
#define OCI_LCR_ROW_CMD_COMMIT       "COMMIT"
 | 
						|
#define OCI_LCR_ROW_CMD_LOB_WRITE    "LOB WRITE"
 | 
						|
#define OCI_LCR_ROW_CMD_LOB_TRIM     "LOB TRIM"
 | 
						|
#define OCI_LCR_ROW_CMD_LOB_ERASE    "LOB ERASE"
 | 
						|
 | 
						|
/* LCR Extra Attribute Name -- must match with values defined in knll.h */
 | 
						|
#define OCI_LCR_ATTR_THREAD_NO         "THREAD#"
 | 
						|
#define OCI_LCR_ATTR_ROW_ID            "ROW_ID"
 | 
						|
#define OCI_LCR_ATTR_SESSION_NO        "SESSION#"
 | 
						|
#define OCI_LCR_ATTR_SERIAL_NO         "SERIAL#"
 | 
						|
#define OCI_LCR_ATTR_USERNAME          "USERNAME"
 | 
						|
#define OCI_LCR_ATTR_TX_NAME           "TX_NAME"
 | 
						|
 | 
						|
/* below are non first class LCR field specific */
 | 
						|
#define OCI_LCR_ATTR_EDITION_NAME      "EDITION_NAME"
 | 
						|
#define OCI_LCR_ATTR_MESSAGE_TRACKING_LABEL "MESSAGE_TRACKING_LABEL"
 | 
						|
 | 
						|
/* the maximum total number of attributes, total of extra attributes
 | 
						|
 * plus non first class LCR field.  */
 | 
						|
#define OCI_LCR_MAX_ATTRIBUTES         8
 | 
						|
 | 
						|
/* Row LCR column value types used in OCILCRRowColumnInfoGet/Set functions. */
 | 
						|
#define OCI_LCR_ROW_COLVAL_OLD         0                      /* OLD columns */
 | 
						|
#define OCI_LCR_ROW_COLVAL_NEW         1                     /*  NEW columns */
 | 
						|
 | 
						|
/* maximum length for position */
 | 
						|
#define OCI_LCR_MAX_POSITION_LEN        64
 | 
						|
 | 
						|
/* maximum length for txid */
 | 
						|
#define OCI_LCR_MAX_TXID_LEN            128
 | 
						|
 | 
						|
/* Valid column flags used in OCILCRRowColumnInfoSet, OCILCRRowColumnInfoGet,
 | 
						|
 * OCILCRLobInfoSet, OCILCRLobInfoGet, OCIXStreamOutChunkReceive, 
 | 
						|
 * OCIXStreamInChunkSend calls.
 | 
						|
 */
 | 
						|
#define OCI_LCR_COLUMN_LOB_DATA     (0x00000001)    /* col contains lob data */
 | 
						|
#define OCI_LCR_COLUMN_LONG_DATA    (0x00000002)    /* col contains long data*/
 | 
						|
#define OCI_LCR_COLUMN_EMPTY_LOB    (0x00000004)    /* col has an empty lob  */
 | 
						|
#define OCI_LCR_COLUMN_LAST_CHUNK   (0x00000008) /* last chunk of current col*/
 | 
						|
#define OCI_LCR_COLUMN_AL16UTF16    (0x00000010)  /* col is in AL16UTF16 fmt */
 | 
						|
#define OCI_LCR_COLUMN_NCLOB        (0x00000020)       /* col has NCLOB data */
 | 
						|
#define OCI_LCR_COLUMN_XML_DATA     (0x00000040)    /* col contains xml data */
 | 
						|
#define OCI_LCR_COLUMN_XML_DIFF     (0x00000080)/* col contains xmldiff data */
 | 
						|
#define OCI_LCR_COLUMN_ENCRYPTED    (0x00000100)         /* col is encrypted */
 | 
						|
 | 
						|
/* OCI_LCR_COLUMN_UPDATED is set only for the modified columns in the NEW 
 | 
						|
 * column list of an update LCR. 
 | 
						|
 */
 | 
						|
#define OCI_LCR_COLUMN_UPDATED      (0x00000200)           /* col is updated */
 | 
						|
 | 
						|
/* Valid bit values for flag parameter in the following APIs: 
 | 
						|
 * - OCIXStreamOutChunkReceive & OCIXStreamOutLCRReceive 
 | 
						|
 * - OCIXStreamInChunkSend & OCIXStreamInLCRSend  
 | 
						|
 */
 | 
						|
#define OCI_XSTREAM_MORE_ROW_DATA    (0x00000001)  /* LCR contains more data */
 | 
						|
 | 
						|
/* Valid mode flag for OCILCRHeaderGet and OCILCRRowColumnInfoGet functions */
 | 
						|
#define OCILCR_NEW_ONLY_MODE       (0x0001)     /* NEW columns only -- dont */
 | 
						|
                                                /* include OLD columns      */
 | 
						|
 | 
						|
/*---------------------------------------------------------------------------
 | 
						|
                     PRIVATE TYPES AND CONSTANTS
 | 
						|
  ---------------------------------------------------------------------------*/
 | 
						|
 | 
						|
 | 
						|
/*---------------------------------------------------------------------------
 | 
						|
                           EXPORT FUNCTIONS
 | 
						|
  ---------------------------------------------------------------------------*/
 | 
						|
/*
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
NAME
 | 
						|
  OCILCRNew - OCI LCR NEW
 | 
						|
DESCRIPTION
 | 
						|
  Create a new Streams LCR for the user specified duration and type
 | 
						|
PARAMETERS
 | 
						|
  svchp        (IN)      - OCI service context
 | 
						|
  errhp        (IN)      - OCI Error Handle
 | 
						|
  duration     (IN)      - allocation duration for LCR memory
 | 
						|
  lcrtype      (IN)      - LCR type (OCI_LCR_XROW / OCI_LCR_XDDL)
 | 
						|
  lcrp         (IN/OUT)  - Streams LCR. (*lcrp must be initialized to null.)
 | 
						|
  mode         (IN)      - mode
 | 
						|
NOTES
 | 
						|
  - memory will be based on the duration specified by the user
 | 
						|
  - For now, specify OCI_DEFAULT for mode
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
*/
 | 
						|
sword OCILCRNew(OCISvcCtx    *svchp, 
 | 
						|
                OCIError     *errhp, 
 | 
						|
                OCIDuration   duration, 
 | 
						|
                ub1           lcrtype,
 | 
						|
                void        **lcrp,
 | 
						|
                ub4           mode);
 | 
						|
 | 
						|
/*
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
NAME
 | 
						|
  OCILCRFree - OCI LCR FREE
 | 
						|
DESCRIPTION
 | 
						|
  Free Streams LCR specified by the user
 | 
						|
PARAMETERS
 | 
						|
  svchp        (IN)      - OCI service context
 | 
						|
  errhp        (IN)      - OCI Error Handle
 | 
						|
  lcrp         (IN/OUT)  - Streams LCR
 | 
						|
  mode         (IN)      - mode
 | 
						|
NOTES
 | 
						|
  - For now, specify OCI_DEFAULT for mode
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
*/
 | 
						|
sword OCILCRFree(OCISvcCtx    *svchp, 
 | 
						|
                 OCIError     *errhp, 
 | 
						|
                 void         *lcrp,
 | 
						|
                 ub4           mode);
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
NAME
 | 
						|
  OCILCRHeaderSet - OCI LCR Set Header
 | 
						|
DESCRIPTION
 | 
						|
  Initialize elements of Streams LCR's header 
 | 
						|
PARAMETERS
 | 
						|
  svchp                 (IN) - OCI service context
 | 
						|
  errhp                 (IN) - OCI Error Handle
 | 
						|
  src_db_name           (IN) - Pointer to Canonicalized source database name. 
 | 
						|
                               Must be non-NULL. 
 | 
						|
  src_db_name_len       (IN) - Length of source database name in bytes
 | 
						|
                               excluding NULL terminator. Should follow Oracle
 | 
						|
                               naming conventions and size limitations.
 | 
						|
  cmd_type              (IN) - For ROW LCRs: OCI_LCR_ROW_CMD_XXXXXXX 
 | 
						|
                               For DDL LCRs: One of the command types 
 | 
						|
                               corresponding to OCI Reference manual
 | 
						|
  cmd_type_len          (IN) - Length of cmd_type.
 | 
						|
  owner                 (IN) - Canonicalized table owner name. Not required
 | 
						|
                               for COMMIT LCR.
 | 
						|
  owner_len             (IN) - Length of owner name in bytes excluding the 
 | 
						|
                               NULL terminator. Should follow Oracle naming 
 | 
						|
                               conventions and size limitations.
 | 
						|
  oname                 (IN) - Canonicalized table name. Not required for 
 | 
						|
                               COMIT LCR. 
 | 
						|
  oname_len             (IN) - Length of table name in bytes excluding the 
 | 
						|
                               NULL terminator. Should follow Oracle naming 
 | 
						|
                               conventions and size limitations.
 | 
						|
  tag                   (IN) - A binary tag that enables tracking of the LCR. 
 | 
						|
                               For example, this tag can be used to determine
 | 
						|
                               the original source database of the DML 
 | 
						|
                               statement if apply forwarding is used. 
 | 
						|
  tag_len               (IN) - Number of bytes in the tag. Cannot exceed 2000
 | 
						|
                               bytes
 | 
						|
  txid                  (IN) - Transaction ID.
 | 
						|
  txid_len              (IN) - Length of transaction id in bytes excluding the 
 | 
						|
                               NULL terminator. Should not exceeed
 | 
						|
                               OCI_LCR_MAX_TXID_LEN bytes.
 | 
						|
  src_time              (IN) - The time when the change was generated at the 
 | 
						|
                               source database.
 | 
						|
  position              (IN) - position for LCR. Must be byte-comparable.
 | 
						|
  position_len          (IN) - Length of position. Must be non-zero. 
 | 
						|
  flag                  (IN) - LCR flag.
 | 
						|
  lcrp              (IN/OUT) - Streams LCR
 | 
						|
  mode                  (IN) - mode
 | 
						|
NOTES
 | 
						|
  - For now, specify OCI_DEFAULT for mode
 | 
						|
  - This function clears the current contents of the input LCR before
 | 
						|
    setting the header to the new values.
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
*/
 | 
						|
sword OCILCRHeaderSet(OCISvcCtx   *svchp, 
 | 
						|
                       OCIError    *errhp, 
 | 
						|
                       oratext     *src_db_name,
 | 
						|
                       ub2          src_db_name_len,
 | 
						|
                       oratext     *cmd_type,
 | 
						|
                       ub2          cmd_type_len,
 | 
						|
                       oratext     *owner,
 | 
						|
                       ub2          owner_len,
 | 
						|
                       oratext     *oname,
 | 
						|
                       ub2          oname_len,
 | 
						|
                       ub1         *tag,
 | 
						|
                       ub2          tag_len,
 | 
						|
                       oratext     *txid,
 | 
						|
                       ub2          txid_len, 
 | 
						|
                       OCIDate     *src_time,
 | 
						|
                       ub1         *position,
 | 
						|
                       ub2          position_len,
 | 
						|
                       oraub8       flag,
 | 
						|
                       void        *lcrp,
 | 
						|
                       ub4          mode);
 | 
						|
 | 
						|
/*
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
NAME
 | 
						|
  OCILCRHeaderGet - OCI LCR Get Header
 | 
						|
DESCRIPTION
 | 
						|
  Get header information from Streams LCR 
 | 
						|
PARAMETERS
 | 
						|
  svchp                  (IN) - OCI service context
 | 
						|
  errhp                  (IN) - OCI Error Handle
 | 
						|
  src_db_name           (OUT) - Pointer to Canonicalized source database name. 
 | 
						|
                                Optional, if src_db_name is specified then 
 | 
						|
                                must specify src_db_name_len as well.
 | 
						|
  src_db_name_len       (OUT) - Length of source database name in bytes
 | 
						|
                                excluding NULL terminator. 
 | 
						|
                                Optional, if specified src_db_name_len then 
 | 
						|
                                must specify src_db_name as well.
 | 
						|
  cmd_type              (OUT) - Command type. Must be non-null if
 | 
						|
                                cmd_type_len is non-null. Must be null if
 | 
						|
                                cmd_type_len is NULL.
 | 
						|
  cmd_type_len          (OUT) - Length of cmd_type. Optional.
 | 
						|
  owner                 (OUT) - Canonicalized table owner name. 
 | 
						|
                                Optional, if owner is specified then 
 | 
						|
                                must specify owner_len as well.
 | 
						|
  owner_len             (OUT) - Length of owner name in bytes excluding the 
 | 
						|
                                NULL terminator. 
 | 
						|
                                Optional, if owner_len is specified then 
 | 
						|
                                must specify owner as well.
 | 
						|
  oname                 (OUT) - Canonicalized table name. 
 | 
						|
                                Optional, if oname is specified then 
 | 
						|
                                must specify oname_len as well.
 | 
						|
  oname_len             (OUT) - Length of table name in bytes excluding the 
 | 
						|
                                NULL terminator. 
 | 
						|
                                Optional, if oname_len is specified then 
 | 
						|
                                must specify oname as well.
 | 
						|
  tag                   (OUT) - A binary tag that enables tracking of the LCR. 
 | 
						|
                                For example, this tag can be used to determine
 | 
						|
                                the original source database of the 
 | 
						|
                                DML statement if apply forwarding is used. 
 | 
						|
                                Optional, if tag is specified then 
 | 
						|
                                must specify tag_len as well.
 | 
						|
  tag_len               (OUT) - Number of bytes in the tag.
 | 
						|
                                Optional, if tag_len is specified then 
 | 
						|
                                must specify tag as well.
 | 
						|
  txid                  (OUT) - Transaction ID. 
 | 
						|
                                Optional, if txid is specified then 
 | 
						|
                                must specify txid_len as well.
 | 
						|
  txid_len              (OUT) - Length of transaction id in bytes excluding
 | 
						|
                                the NULL terminator. 
 | 
						|
                                Optional, if txid_len is specified then 
 | 
						|
                                must specify txid as well.
 | 
						|
  src_time              (OUT) - The time when the change was generated at the 
 | 
						|
                                source database. Optional.
 | 
						|
  old_columns           (OUT) - Number of columns in the OLD column list.
 | 
						|
                                Return 0 if input lcr is DDL LCR. Optional.
 | 
						|
  new_columns           (OUT) - Number of columns present in either 
 | 
						|
                                the OLD or NEW column list. 
 | 
						|
                                Return 0 if input lcr is DDL LCR. Optional.
 | 
						|
                                See NOTES below for the special mode supported
 | 
						|
                                by this function.
 | 
						|
  position              (OUT) - LCR position. Optional.
 | 
						|
  position_len          (OUT) - Length of position. Must be non-null if
 | 
						|
                                position is non-null. Must be null if
 | 
						|
                                position is null.
 | 
						|
  flag                  (OUT) - LCR flag. Optional.
 | 
						|
  lcrp                   (IN) - Streams LCR
 | 
						|
  mode                   (IN) - mode (see NOTES)
 | 
						|
NOTES
 | 
						|
  - Parameter src_time is optional. If specified the appropriate return 
 | 
						|
    structure must be pre-allocated before calling OCILCRHeaderGet.
 | 
						|
  - The return values for src_db_name, cmd_type, owner, oname, tag, txid and 
 | 
						|
    position are shallow-copied (i.e., they point directly into the LCR 
 | 
						|
    structure).  
 | 
						|
  - Valid mode flags:
 | 
						|
    - OCILCR_NEW_ONLY_MODE: if this mode is specified then the new_columns 
 | 
						|
      returned is the count of the columns in the NEW column list only.  
 | 
						|
      Otherwise, the new_columns returned is the number of distinct 
 | 
						|
      columns present in either the NEW or the OLD column list of the given 
 | 
						|
      ROW LCR.
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
*/
 | 
						|
 | 
						|
sword OCILCRHeaderGet(OCISvcCtx   *svchp, 
 | 
						|
                       OCIError    *errhp, 
 | 
						|
                       oratext    **src_db_name,
 | 
						|
                       ub2         *src_db_name_len,
 | 
						|
                       oratext    **cmd_type,
 | 
						|
                       ub2         *cmd_type_len,
 | 
						|
                       oratext    **owner,
 | 
						|
                       ub2         *owner_len,
 | 
						|
                       oratext    **oname,
 | 
						|
                       ub2         *oname_len,
 | 
						|
                       ub1        **tag,
 | 
						|
                       ub2         *tag_len,
 | 
						|
                       oratext    **txid,
 | 
						|
                       ub2         *txid_len, 
 | 
						|
                       OCIDate     *src_time,
 | 
						|
                       ub2         *old_columns,
 | 
						|
                       ub2         *new_columns,
 | 
						|
                       ub1        **position,
 | 
						|
                       ub2         *position_len,
 | 
						|
                       oraub8      *flag, 
 | 
						|
                       void        *lcrp,
 | 
						|
                       ub4          mode);
 | 
						|
 | 
						|
/*
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
NAME
 | 
						|
  OCILCRRowColumnInfoSet - OCI LCR ROW SET COLUMN INFO
 | 
						|
DESCRIPTION
 | 
						|
  Populates column information as specified by the user.
 | 
						|
PARAMETERS
 | 
						|
  svchp             (IN)    - OCI service context
 | 
						|
  errhp             (IN)    - OCI Error Handle
 | 
						|
  column_value_type (IN)    - ROW LCR column value type: 
 | 
						|
                              - OCI_LCR_ROW_COLVAL_OLD        
 | 
						|
                              - OCI_LCR_ROW_COLVAL_NEW    
 | 
						|
  num_columns       (IN)    - Number of columns to be populated
 | 
						|
  column_names      (IN)    - Pointer to an array of column names. Column 
 | 
						|
                              names must be canonicalized. Column names should 
 | 
						|
                             follow Oracle naming conventions
 | 
						|
  column_name_lens (IN)    - Pointer to an array of column name lengths
 | 
						|
                             in bytes, excluding the NULL terminator.
 | 
						|
  column_dtyp      (IN)    - Pointer to an array of column datatypes. 
 | 
						|
  column_valuesp   (IN)    - Pointer to an array of column data values.
 | 
						|
  column_indp      (IN)    - Pointer to an indicator array. For all datatypes,
 | 
						|
                             this is a pointer to an array of  OCIInd values 
 | 
						|
                             (OCI_IND_NULL/OCI_IND_NOTNULL).
 | 
						|
  column_alensp    (IN)    - Pointer to an array of actual column lengths in 
 | 
						|
                             bytes.
 | 
						|
  column_csetfp    (IN)    - Pointer to an array of character set forms for 
 | 
						|
                             the columns. The default form is SQLCS_IMPLICIT. 
 | 
						|
                             Setting this attribute will cause the database or 
 | 
						|
                             national character set to be used on the client 
 | 
						|
                             side. Set this attribute to SQLCS_NCHAR for the 
 | 
						|
                             national character set or SQLCS_IMPLICIT for the 
 | 
						|
                             database character set. 
 | 
						|
                             Pass 0 for non-character columns.
 | 
						|
  column_flags     (IN)    - Pointer to an array of column flags.
 | 
						|
                             Possible bit values are OCI_LCR_COLUMN_* flags 
 | 
						|
                             listed above.
 | 
						|
  column_csid      (IN)    - Pointer to an array of column character set id.
 | 
						|
                             The character set id is only required for
 | 
						|
                             XMLType column; otherwise, the csid is ignored.
 | 
						|
  row_lcrp         (IN/OUT)- Streams Row LCR pointer
 | 
						|
  mode             (IN)    - mode
 | 
						|
NOTES
 | 
						|
  - For now, specify OCI_DEFAULT for mode
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
*/
 | 
						|
sword OCILCRRowColumnInfoSet(OCISvcCtx   *svchp, 
 | 
						|
                             OCIError    *errhp, 
 | 
						|
                             ub2          column_value_type,
 | 
						|
                             ub2          num_columns,
 | 
						|
                             oratext    **column_names,
 | 
						|
                             ub2         *column_name_lens,
 | 
						|
                             ub2         *column_dtyp,
 | 
						|
                             void       **column_valuesp,
 | 
						|
                             OCIInd      *column_indp,
 | 
						|
                             ub2         *column_alensp,
 | 
						|
                             ub1         *column_csetfp,
 | 
						|
                             oraub8      *column_flags,
 | 
						|
                             ub2         *column_csid,
 | 
						|
                             void        *row_lcrp,
 | 
						|
                             ub4          mode);
 | 
						|
 | 
						|
/*
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
NAME
 | 
						|
  OCILCRRowColumnInfoGet - OCI LCR ROW GET COLUMN INFO
 | 
						|
DESCRIPTION
 | 
						|
  Returns column information as requested by the user.
 | 
						|
PARAMETERS
 | 
						|
  svchp            (IN)    - OCI service context
 | 
						|
  errhp            (IN)    - OCI Error Handle
 | 
						|
  column_value_type (IN)   - ROW LCR column value type: 
 | 
						|
                             - OCI_LCR_ROW_COLVAL_OLD        
 | 
						|
                             - OCI_LCR_ROW_COLVAL_NEW    
 | 
						|
                             (See NOTES for special mode supported by this
 | 
						|
                              function.)
 | 
						|
  num_columns      (OUT)   - Number of columns in requested column list
 | 
						|
  column_names     (IN/OUT)- Pointer to an array of column names. 
 | 
						|
                             Optional. If specified then column_namesl must
 | 
						|
                             be specified as well, and both arrays must be the 
 | 
						|
                             size specified by array_size parameter. 
 | 
						|
  column_name_lens (IN/OUT)- Pointer to an array of column name lengths
 | 
						|
                             in bytes, excluding the NULL terminator.
 | 
						|
                             Optional. If specified then column_names must
 | 
						|
                             be specified as well, and both arrays must be the 
 | 
						|
                             size specified by array_size parameter. 
 | 
						|
  column_dtyp      (IN/OUT)- Pointer to an array of column datatypes. 
 | 
						|
                             Optional. If specified then this array must be 
 | 
						|
                             the size specified by array_size parameter. 
 | 
						|
  column_valuesp   (IN/OUT)- Pointer to an array of column data values.
 | 
						|
                             Optional. If specified then this array must be 
 | 
						|
                            the  size specified by array_size parameter. 
 | 
						|
  column_indp      (IN/OUT)- Pointer to an indicator array. For all datatypes,
 | 
						|
                             this is a pointer to an array of  OCIInd values 
 | 
						|
                             (OCI_IND_NULL/OCI_IND_NOTNULL).
 | 
						|
                             Optional. If specified then this array must be 
 | 
						|
                             the size specified by array_size parameter. 
 | 
						|
  column_alensp    (IN/OUT)- Pointer to an array of actual column lengths in 
 | 
						|
                             bytes.
 | 
						|
                             Optional. If specified then this array must be 
 | 
						|
                             the size specified by array_size parameter. 
 | 
						|
  column_csetfp    (IN/OUT)- Pointer to an array of character set forms for 
 | 
						|
                             the columns. 
 | 
						|
                             Optional. If specified then this array must be 
 | 
						|
                             the size specified by array_size parameter. 
 | 
						|
  column_flags     (IN/OUT)- Pointer to an array of column flags for 
 | 
						|
                             the columns. 
 | 
						|
                             Optional. If specified then this array must be 
 | 
						|
                             the size specified by array_size parameter. 
 | 
						|
                             Possible bit values are OCI_LCR_COLUMN_* flags 
 | 
						|
                             listed above.
 | 
						|
  column_csid      (IN/OUT)- Pointer to an array of column character set id for
 | 
						|
                             the columns. 
 | 
						|
                             Optional. If specified then this array must be 
 | 
						|
                             the size specified by array_size parameter. 
 | 
						|
                             The column csid is returned only for XMLType 
 | 
						|
                             column. 
 | 
						|
  row_lcrp         (IN)    - Streams Row LCR pointer
 | 
						|
  array_size       (IN)    - Size of each of above arrays   
 | 
						|
  mode             (IN)    - mode (see NOTES)
 | 
						|
NOTES
 | 
						|
  - For now, specify OCI_DEFAULT for mode
 | 
						|
  - If array_size is not large enough to accommodate the number of columns
 | 
						|
    in the requested column list then OCI_ERROR is returned. Parameter 
 | 
						|
    num_columns will have the number of columns in the requested column list.
 | 
						|
  - The return values for column_names and column_valuesp will be shallow
 | 
						|
    copied (i.e., they reference directly into the LCR structure). 
 | 
						|
    Client should not modify those pointers directly.  
 | 
						|
  - Valid mode flags:
 | 
						|
    - OCILCR_NEW_ONLY_MODE: this mode is valid only for OCI_LCR_ROW_COLVAL_NEW 
 | 
						|
      column_value_type; otherwise, an error is raised. 
 | 
						|
      If this mode is specified then the columns returned include only the
 | 
						|
      columns in the NEW column list.
 | 
						|
      If this mode is not specified then the columns returned is the union
 | 
						|
      of the NEW columns plus the OLD columns that are not present in the 
 | 
						|
      NEW column list.
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
*/
 | 
						|
sword OCILCRRowColumnInfoGet(OCISvcCtx   *svchp, 
 | 
						|
                             OCIError    *errhp, 
 | 
						|
                             ub2          column_value_type,
 | 
						|
                             ub2         *num_columns,
 | 
						|
                             oratext    **column_names,
 | 
						|
                             ub2         *column_name_lens,
 | 
						|
                             ub2         *column_dtyp,
 | 
						|
                             void       **column_valuesp,
 | 
						|
                             OCIInd      *column_indp,
 | 
						|
                             ub2         *column_alensp,
 | 
						|
                             ub1         *column_csetfp,
 | 
						|
                             oraub8      *column_flags,
 | 
						|
                             ub2         *column_csid,
 | 
						|
                             void        *row_lcrp,
 | 
						|
                             ub2          array_size,
 | 
						|
                             ub4          mode);
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
NAME
 | 
						|
  OCILCRDDLInfoSet - OCI LCR SET DDL INFO
 | 
						|
DESCRIPTION
 | 
						|
  populates DDL information as sepcified by the user.
 | 
						|
PARAMETERS
 | 
						|
  svchp             (IN)  - OCI service context
 | 
						|
  errhp             (IN)  - OCI Error Handle
 | 
						|
  object_type       (IN)  - The type of object on which the DDL statement was 
 | 
						|
                            executed. The following are valid object types:
 | 
						|
                            CLUSTER, FUNCTION, INDEX, LINK, OUTLINE,
 | 
						|
                            PACKAGE, PACKAGE BODY, PROCEDURE, SEQUENCE,
 | 
						|
                            SYNONYM, TABLE, TRIGGER, TYPE, USER, VIEW
 | 
						|
                            LINK represents a database link.
 | 
						|
                            NULL is also a valid object type. Specify NULL 
 | 
						|
                            for all object types not listed.
 | 
						|
  object_type_len   (IN)  - Length of object_type without the NULL terminator.
 | 
						|
  ddl_text          (IN)  - The text of the DDL statement. This parameter 
 | 
						|
                            should be set to a non-NULL value. 
 | 
						|
                            DDL text must be in Oracle DDL format.
 | 
						|
  ddl_text_len      (IN)  - DDL text length in bytes without NULL terminator.
 | 
						|
  logon_user        (IN)  - Canonicalized name of the user whose session 
 | 
						|
                            executed the DDL statement. Should follow Oracle 
 | 
						|
                            naming conventions and size limitations.
 | 
						|
  logon_user_len    (IN)  - logon user name length in bytes without NULL 
 | 
						|
                            terminator.
 | 
						|
  current_schema    (IN)  - The canonicalized schema name that is used if no 
 | 
						|
                            schema is specified explicitly for the modified 
 | 
						|
                            database objects in ddl_text. If a schema is 
 | 
						|
                            specified in ddl_text that differs from the one 
 | 
						|
                            specified for current_schema, then the schema 
 | 
						|
                            specified in ddl_text will be used. 
 | 
						|
                            This parameter should be set to a non-NULL value.
 | 
						|
                            Should follow Oracle naming conventions and size 
 | 
						|
                            limitations.
 | 
						|
  current_schema_len (IN) - schema name length in bytes without NULL terminator
 | 
						|
  base_table_owner  (IN)  - If the DDL statement is a table related DDL 
 | 
						|
                            (such as CREATE TABLE and ALTER TABLE), or if the 
 | 
						|
                            DDL statement involves a table (such as creating 
 | 
						|
                            a trigger on a table), then base_table_owner 
 | 
						|
                            specifies the canonicalized owner of the table 
 | 
						|
                            involved. Otherwise, base_table_owner is NULL.
 | 
						|
                            Should follow Oracle naming conventions and size 
 | 
						|
                            limitations.
 | 
						|
  base_table_owner_len (IN)- base table owner name length in bytes without NULL
 | 
						|
                            terminator.
 | 
						|
  base_table_name   (IN)  - If the DDL statement is a table related DDL (such
 | 
						|
                            as CREATE TABLE and ALTER TABLE), or if the DDL 
 | 
						|
                            statement involves a table (such as creating a 
 | 
						|
                            trigger on a table), then base_table_name 
 | 
						|
                            specifies the canonicalized name of the table 
 | 
						|
                            involved. Otherwise, base_table_name is NULL.
 | 
						|
                            Length of the above string without the NULL 
 | 
						|
                            terminator. Should follow Oracle naming 
 | 
						|
                            conventions and size limitations.
 | 
						|
                            Should follow Oracle naming conventions and size 
 | 
						|
                            limitations.
 | 
						|
  base_table_name_len (IN)- base table name length in bytes without NULL
 | 
						|
                            terminator.
 | 
						|
  flag               (IN) - DDL LCR flag.
 | 
						|
  ddl_lcrp       (IN/OUT) - Streams Ddl LCR pointer
 | 
						|
  mode              (IN)  - mode
 | 
						|
NOTES
 | 
						|
  - For now, specify OCI_DEFAULT for mode
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
*/
 | 
						|
sword OCILCRDDLInfoSet(OCISvcCtx   *svchp,
 | 
						|
                       OCIError    *errhp,
 | 
						|
                       oratext     *object_type,
 | 
						|
                       ub2          object_type_len,
 | 
						|
                       oratext     *ddl_text,
 | 
						|
                       ub4          ddl_text_len, 
 | 
						|
                       oratext     *logon_user,
 | 
						|
                       ub2          logon_user_len,
 | 
						|
                       oratext     *current_schema,
 | 
						|
                       ub2          current_schema_len,
 | 
						|
                       oratext     *base_table_owner,
 | 
						|
                       ub2          base_table_owner_len,
 | 
						|
                       oratext     *base_table_name,
 | 
						|
                       ub2          base_table_name_len,
 | 
						|
                       oraub8       flag,
 | 
						|
                       void        *ddl_lcrp,
 | 
						|
                       ub4          mode);
 | 
						|
 | 
						|
/*
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
NAME
 | 
						|
  OCILCRDDLInfoGet - OCI LCR GET DDL INFO
 | 
						|
DESCRIPTION
 | 
						|
  Returns DDL information from specified lcr.
 | 
						|
PARAMETERS
 | 
						|
  svchp                (IN)  - OCI service context
 | 
						|
  errhp                (IN)  - OCI Error Handle
 | 
						|
  object_type          (OUT)  - The type of object on which the DDL statement 
 | 
						|
                               was executed. 
 | 
						|
                               Optional, if object_type is specified then
 | 
						|
                               must specify object_type_len as well.
 | 
						|
  object_type_len      (OUT)  - Length of object_type without the NULL 
 | 
						|
                                terminator.
 | 
						|
  ddl_text             (OUT) - The text of the DDL statement. 
 | 
						|
                               Optional, if ddl_text is specified then
 | 
						|
                               must specify ddl_text_len as well.
 | 
						|
  ddl_text_len         (OUT) - DDL text length in bytes without NULL 
 | 
						|
                               terminator.
 | 
						|
  logon_user           (OUT) - Canonicalized name of the user whose session 
 | 
						|
                               executed the DDL statement. 
 | 
						|
                               Optional, if logon_user is specified then
 | 
						|
                               must specify logon_user_len as well.
 | 
						|
  logon_user_len       (OUT) - logon user name length in bytes without NULL 
 | 
						|
                               terminator.
 | 
						|
  current_schema       (OUT) - The canonicalized schema name that is used if 
 | 
						|
                               no schema is specified explicitly for the
 | 
						|
                               modified database objects in ddl_text.
 | 
						|
                               Optional, if current_schema is specified then
 | 
						|
                               must specify current_schema_len as well.
 | 
						|
  current_schema_len   (OUT)- schema name length in bytes without NULL 
 | 
						|
                              terminator
 | 
						|
  base_table_owner     (OUT) - If the DDL statement is a table related DDL 
 | 
						|
                               (such as CREATE TABLE and ALTER TABLE), or if
 | 
						|
                               the DDL statement involves a table (such as
 | 
						|
                               creating a trigger on a table), then
 | 
						|
                               base_table_owner specifies the canonicalized
 | 
						|
                               owner of the table involved. Otherwise,
 | 
						|
                               base_table_owner is NULL.  Optional, if
 | 
						|
                               base_table_owner is specified then must specify
 | 
						|
                               base_table_owner_len as well.
 | 
						|
  base_table_owner_len (OUT) - base table owner name length in bytes without 
 | 
						|
                               NULL terminator.
 | 
						|
  base_table_name      (OUT) - If the DDL statement is a table related DDL 
 | 
						|
                               (such as CREATE TABLE and ALTER TABLE), or if
 | 
						|
                               the DDL statement involves a table (such as
 | 
						|
                               creating a trigger on a table), then
 | 
						|
                               base_table_name specifies the canonicalized name
 | 
						|
                               of the table involved. Otherwise,
 | 
						|
                               base_table_name is NULL.  Optional, if
 | 
						|
                               base_table_name is specified then must specify
 | 
						|
                               base_table_name_len as well.
 | 
						|
  base_table_name_len  (OUT) - base table name length in bytes without NULL
 | 
						|
                               terminator.
 | 
						|
  flag                 (OUT) - DDL LCR flag. Optional, data not returned if 
 | 
						|
                               NULL.
 | 
						|
  ddl_lcrp             (IN)  - Streams DDL LCR pointer
 | 
						|
  mode                 (IN)  - mode (for future extention - not used currently)
 | 
						|
RETURNS
 | 
						|
  OCI_SUCCESS or OCI_ERROR.
 | 
						|
NOTES
 | 
						|
  - For now, specify OCI_DEFAULT for mode
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
*/
 | 
						|
sword OCILCRDDLInfoGet(OCISvcCtx   *svchp,
 | 
						|
                       OCIError    *errhp,
 | 
						|
                       oratext    **object_type,
 | 
						|
                       ub2         *object_type_len,
 | 
						|
                       oratext    **ddl_text,
 | 
						|
                       ub4         *ddl_text_len, 
 | 
						|
                       oratext    **logon_user,
 | 
						|
                       ub2         *logon_user_len,
 | 
						|
                       oratext    **current_schema,
 | 
						|
                       ub2         *current_schema_len,
 | 
						|
                       oratext    **base_table_owner,
 | 
						|
                       ub2         *base_table_owner_len,
 | 
						|
                       oratext    **base_table_name,
 | 
						|
                       ub2         *base_table_name_len,
 | 
						|
                       oraub8      *flag,
 | 
						|
                       void        *ddl_lcrp,
 | 
						|
                       ub4          mode);
 | 
						|
 | 
						|
/*
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
NAME
 | 
						|
  OCILCRAttributesSet - OCI LCR SET ATTRIBUTES
 | 
						|
DESCRIPTION
 | 
						|
  populates extra attribute information in ROW/DDL LCR, as well as any 
 | 
						|
  non first class attributes that can not be set through
 | 
						|
  OCILCRHeaderSet, OCILCRDDLInfoSet, or OCILCRRowColumnInfoSet.
 | 
						|
  e.g. edition name
 | 
						|
PARAMETERS
 | 
						|
  svchp           (IN)    - OCI service context
 | 
						|
  errhp           (IN)    - OCI Error Handle
 | 
						|
  num_attrs       (IN)    - Number of extra attributes to be populated
 | 
						|
  attr_names      (IN)    - Pointer to an array of attribute names. Attribute
 | 
						|
                            names must be canonicalized and should follow 
 | 
						|
                            Oracle naming conventions
 | 
						|
  attr_names_lens (IN)    - Pointer to an array of attribute name lengths
 | 
						|
                            in bytes, excluding the NULL terminator.
 | 
						|
  attr_dtyp       (IN)    - Pointer to an array of attribute datatypes. 
 | 
						|
  attr_valuesp    (IN)    - Pointer to an array of attribute data values.
 | 
						|
  attr_indp       (IN)    - Pointer to an indicator array. For all datatypes,
 | 
						|
                            this is a pointer to an array of  OCIInd values 
 | 
						|
                            (OCI_IND_NULL/OCI_IND_NOTNULL).
 | 
						|
  attr_alensp     (IN)    - Pointer to an array of actual attribute lengths in 
 | 
						|
                            bytes.
 | 
						|
  lcrp            (IN/OUT)- Streams (Row/DDL) LCR pointer
 | 
						|
  mode            (IN)    - mode
 | 
						|
NOTES
 | 
						|
  - For now, specify OCI_DEFAULT for mode
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
*/
 | 
						|
sword OCILCRAttributesSet(OCISvcCtx   *svchp, 
 | 
						|
                          OCIError    *errhp, 
 | 
						|
                          ub2          num_attrs,
 | 
						|
                          oratext    **attr_names,
 | 
						|
                          ub2         *attr_name_lens,
 | 
						|
                          ub2         *attr_dtyp,
 | 
						|
                          void       **attr_valuesp,
 | 
						|
                          OCIInd      *attr_indp,
 | 
						|
                          ub2         *attr_alensp,
 | 
						|
                          void        *lcrp,
 | 
						|
                          ub4          mode);
 | 
						|
 | 
						|
/*
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
NAME
 | 
						|
  OCILCRAttributesGet - OCI LCR GET EXTRA ATTRIBUTES
 | 
						|
DESCRIPTION
 | 
						|
  Gets extra attribute information in (ROW/DDL) LCR, as well as any 
 | 
						|
  non first class attributes that are not populated through
 | 
						|
  OCILCRHeaderGet, OCILCRDDLInfoGet, or OCILCRRowColumnInfoGet
 | 
						|
  e.g. edition name
 | 
						|
PARAMETERS
 | 
						|
  svchp          (IN)    - OCI service context
 | 
						|
  errhp          (IN)    - OCI Error Handle
 | 
						|
  num_attrs      (OUT)   - Number of extra attributes to be populated
 | 
						|
  attr_names     (IN/OUT)- Pointer to an array of attribute names. Attribute
 | 
						|
                           names must be canonicalized and should follow 
 | 
						|
                           Oracle naming conventions
 | 
						|
  attr_namesl    (IN/OUT)- Pointer to an array of attribute name lengths
 | 
						|
                           in bytes, excluding the NULL terminator.
 | 
						|
  attr_dtyp      (IN/OUT)- Pointer to an array of attribute datatypes. 
 | 
						|
  attr_valuesp   (IN/OUT)- Pointer to an array of attribute data values.
 | 
						|
  attr_indp      (IN/OUT)- Pointer to an indicator array. For all datatypes,
 | 
						|
                           this is a pointer to an array of OCIInd values 
 | 
						|
                           (OCI_IND_NULL/OCI_IND_NOTNULL).
 | 
						|
  attr_alensp    (IN/OUT)- Pointer to an array of actual attribute lengths in 
 | 
						|
                           bytes.
 | 
						|
  lcrp           (IN)    - Streams (Row/DDL) LCR pointer
 | 
						|
  array_size     (IN)    - Size of each of above arrays, use at least the size
 | 
						|
                           defined by OCI_LCR_MAX_ATTRIBUTES
 | 
						|
  mode           (IN)    - mode
 | 
						|
NOTES
 | 
						|
  - For now, specify OCI_DEFAULT for mode
 | 
						|
  - If array_size is not large enough to accommodate the number of attributes
 | 
						|
    in the requested attribute list then OCI_ERROR is returned. Parameter
 | 
						|
    num_attrs will return the suggested size. 
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
*/
 | 
						|
sword OCILCRAttributesGet(OCISvcCtx   *svchp,
 | 
						|
                          OCIError    *errhp,
 | 
						|
                          ub2         *num_attrs,
 | 
						|
                          oratext    **attr_names,
 | 
						|
                          ub2         *attr_namesl,
 | 
						|
                          ub2         *attr_dtyp,
 | 
						|
                          void       **attr_valuesp,
 | 
						|
                          OCIInd      *attr_indp,
 | 
						|
                          ub2         *attr_alensp,
 | 
						|
                          void        *lcrp,
 | 
						|
                          ub2          array_size,
 | 
						|
                          ub4          mode);
 | 
						|
 | 
						|
/*--------------------- OCILCRWhereClauseGet ----------------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCILCRWhereClauseGet - OCI Get Where Clause
 | 
						|
   DESCRIPTION
 | 
						|
     Gets the Where clause  statement for the given ROW LCR.
 | 
						|
   PARAMETERS
 | 
						|
       svchp                      (IN/OUT) - OCI service handle
 | 
						|
       errhp                      (IN/OUT) - Error Handle to which errors
 | 
						|
                                             should be reported
 | 
						|
       wc_stmt                    (OUT)    - Sql Statement equivalent to the 
 | 
						|
                                             LCR has applied
 | 
						|
       wc_stmt_len                (IN/OUT) - length of wc_stmt buffer
 | 
						|
       row_lcrp                   (IN)     - row LCR to be converted to SQL
 | 
						|
       mode                       (IN)     - Mode flags (For future extension. 
 | 
						|
                                             Not used currently)
 | 
						|
   RETURNS
 | 
						|
       OCI_SUCCESS or OCI_ERROR.
 | 
						|
   NOTES
 | 
						|
     - For now, specify OCI_DEFAULT for mode
 | 
						|
     - WHERE clause generated for INSERT lcr will have all the columns that
 | 
						|
       are being inserted. This WHERE clause could be used to identify the 
 | 
						|
       inserted row after inserting. (like "returning ROWID").
 | 
						|
       INSERT INTO TAB(COL1) VALUES (10) -> WHERE COL1=10
 | 
						|
     - WHERE clause generated for UPDATE will have all the columns in the
 | 
						|
       old column list. However the values of the columns will be that of 
 | 
						|
       new value if it exist in the new column list
 | 
						|
       of the UPDATE. If the column doesnt have new value then the old column
 | 
						|
       value will be used.
 | 
						|
       UPDATE TAB SET COL1 = 10 WHERE COL1 = 20 -> WHERE COL1 = 10
 | 
						|
       UPDATE TAB SET COL2 = 20 WHERE COL1 = 20 -> WHERE COL1 = 20
 | 
						|
     - WHERE clause for DELETE will use the columns and values from 
 | 
						|
       old column lst
 | 
						|
     - LOB piecewise operations would use the new columns and values for
 | 
						|
       generating the WHERE clause.
 | 
						|
*/
 | 
						|
 | 
						|
sword OCILCRWhereClauseGet(
 | 
						|
     OCISvcCtx  *svchp,
 | 
						|
     OCIError   *errhp,
 | 
						|
     oratext    *wc_stmt,
 | 
						|
     ub4        *wc_stmt_len,
 | 
						|
     void       *row_lcrp,
 | 
						|
     ub4         mode);
 | 
						|
 | 
						|
/*--------------------- OCILCRRowStmtGet ----------------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCILCRRowStmtGet - OCI Get Row Statement 
 | 
						|
   DESCRIPTION
 | 
						|
     Gets the SQL statement for the given ROW LCR.
 | 
						|
   PARAMETERS
 | 
						|
       svchp                      (IN/OUT) - OCI service handle
 | 
						|
       errhp                      (IN/OUT) - Error Handle to which errors
 | 
						|
                                             should be reported
 | 
						|
       row_stmt                   (OUT)    - Sql Statement equivalent to the 
 | 
						|
                                             LCR has applied
 | 
						|
       row_stmt_len               (IN/OUT) - length of row_stmt buffer
 | 
						|
       row_lcrp                   (IN)     - row LCR to be converted to SQL
 | 
						|
       mode                       (IN)     - Mode flags (For future extension. 
 | 
						|
                                             Not used currently)
 | 
						|
   RETURNS
 | 
						|
       OCI_SUCCESS or OCI_ERROR.
 | 
						|
   NOTES
 | 
						|
       None
 | 
						|
*/
 | 
						|
sword OCILCRRowStmtGet(
 | 
						|
     OCISvcCtx  *svchp,
 | 
						|
     OCIError   *errhp,
 | 
						|
     oratext    *row_stmt,
 | 
						|
     ub4        *row_stmt_len,
 | 
						|
     void       *row_lcrp,
 | 
						|
     ub4         mode);
 | 
						|
 | 
						|
/*--------------------- OCILCRWhereClauseWithBindVarGet ----------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCILCRWhereClauseWithBindVarGet - OCI Get Where clause with binds
 | 
						|
   DESCRIPTION
 | 
						|
     Gets the where clause statement with bind variables for the given ROW LCR. 
 | 
						|
   PARAMETERS
 | 
						|
       svchp                      (IN/OUT) - OCI service handle
 | 
						|
       errhp                      (IN/OUT) - Error Handle to which errors
 | 
						|
                                             should be reported
 | 
						|
       wc_stmt                    (OUT)    - Sql Stmt equivalent to the LCR
 | 
						|
       wc_stmt_len                (IN/OUT) - length of wc_stmt  buffer
 | 
						|
       num_bind_var               (OUT)    - Number of bind variables
 | 
						|
       bind_var_dtyp              (OUT)    - Array of Data types of bind 
 | 
						|
                                             variables
 | 
						|
       bind_var_valuesp           (OUT)    - Array of Values of bind variables
 | 
						|
       bind_var_indp              (OUT)    - Array of null indicators of 
 | 
						|
                                             bind variables
 | 
						|
       bind_var_alensp            (OUT)    - Array of lengths of bind values
 | 
						|
       bind_var_csetidp           (OUT)    - Array of char set id of binds
 | 
						|
       bind_var_csetfp            (OUT)    - Array of char set form of binds
 | 
						|
       row_lcrp                   (IN)     - row LCR to be converted to SQL
 | 
						|
       array_size                 (IN)     - Size of the array of bind values
 | 
						|
       bind_var_syntax            (IN)     - Native syntax to be used for binds
 | 
						|
       mode                       (IN)     - Mode flags (For future extension. 
 | 
						|
                                             Not used currently)
 | 
						|
   RETURNS
 | 
						|
       OCI_SUCCESS or OCI_ERROR.
 | 
						|
   NOTES
 | 
						|
     - For now, specify OCI_DEFAULT for mode
 | 
						|
     - If array_size is not large enough to accommodate the number of columns
 | 
						|
       in the requested column list then OCI_ERROR is returned. Expected 
 | 
						|
       array_size is returned through num_bind_var parameter. 
 | 
						|
     - bind_var_syntax for oracle should contain ":". This will generate 
 | 
						|
       positional binds such as :1, :2, :3 etc. For other non-oracle databases
 | 
						|
       they can give the string that needs to be used for binds. 
 | 
						|
     - WHERE clause generated for INSERT lcr will have all the columns that
 | 
						|
       are being inserted. This WHERE clause could be used to identify the 
 | 
						|
       inserted row after inserting. (like "returning ROWID").
 | 
						|
       INSERT INTO TAB(COL1) VALUES (10) -> WHERE COL1=10
 | 
						|
     - WHERE clause generated for UPDATE will have all the columns in the
 | 
						|
       old column list. However the values of the columns will be that of 
 | 
						|
       new column value of the column if it exist in the new values
 | 
						|
       of the UPDATE. If the column appears only in the old column then
 | 
						|
       old column value will be used.
 | 
						|
       UPDATE TAB SET COL1 = 10 WHERE COL1 = 20 -> WHERE COL1 = 10
 | 
						|
       UPDATE TAB SET COL2 = 20 WHERE COL1 = 20 -> WHERE COL1 = 20
 | 
						|
     - WHERE clause for DELETE will use the columns and values from 
 | 
						|
       old column lst
 | 
						|
     - LOB piecewise operations would use the new columns and values for
 | 
						|
       generating the WHERE clause.
 | 
						|
*/
 | 
						|
sword OCILCRWhereClauseWithBindVarGet(
 | 
						|
     OCISvcCtx *svchp,
 | 
						|
     OCIError  *errhp,
 | 
						|
     oratext   *wc_stmt,
 | 
						|
     ub4       *wc_stmt_len,
 | 
						|
     ub2       *num_bind_var,
 | 
						|
     ub2       *bind_var_dtyp,
 | 
						|
     void     **bind_var_valuesp,
 | 
						|
     OCIInd    *bind_var_indp,
 | 
						|
     ub2       *bind_var_alensp,
 | 
						|
     ub2       *bind_var_csetidp,
 | 
						|
     ub1       *bind_var_csetfp,
 | 
						|
     void      *row_lcrp,
 | 
						|
     ub2        array_size,
 | 
						|
     oratext   *bind_var_syntax,
 | 
						|
     ub4        mode);
 | 
						|
 | 
						|
/*--------------------- OCILCRRowStmtWithBindVarGet ----------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCILCRRowStmtWithBindVarGet - OCI Get Row Statement 
 | 
						|
   DESCRIPTION
 | 
						|
     Gets the SQL statement with bind variables for the given ROW LCR.
 | 
						|
   PARAMETERS
 | 
						|
       svchp                      (IN/OUT) - OCI service handle
 | 
						|
       errhp                      (IN/OUT) - Error Handle to which errors
 | 
						|
                                             should be reported
 | 
						|
       row_stmt                   (OUT)    - Sql Stmt equivalent to the LCR
 | 
						|
       row_stmt_len               (IN/OUT) - length of row_stmt buffer
 | 
						|
       num_bind_var               (OUT)    - Number of bind variables
 | 
						|
       bind_var_dtyp              (OUT)    - Array of Data types of bind 
 | 
						|
                                             variables
 | 
						|
       bind_var_valuesp           (OUT)    - Array of Values of bind variables
 | 
						|
       bind_var_indp              (OUT)    - Array of null indicators of 
 | 
						|
                                             bind variables
 | 
						|
       bind_var_alensp            (OUT)    - Array of lengths od bind values
 | 
						|
       bind_var_csetidp           (OUT)    - Array of char set id of binds
 | 
						|
       bind_var_csetfp            (OUT)    - Array of char set form of binds
 | 
						|
       row_lcrp                   (IN)     - row LCR to be converted to SQL
 | 
						|
       chunk_column_names         (OUT)    - Array of chunked column names in 
 | 
						|
                                             lcr
 | 
						|
       chunk_column_namesl        (OUT)    - Length of chunk_column_names 
 | 
						|
       chunk_column_flags         (OUT)    - flags of chunked columns in lcr
 | 
						|
                                             Possible bit values are 
 | 
						|
                                             OCI_LCR_COLUMN_* flags listed 
 | 
						|
                                             above.
 | 
						|
       array_size                 (IN)     - Size of the array of bind values
 | 
						|
       bind_var_syntax            (IN)     - Native syntax to be used for binds
 | 
						|
       mode                       (IN)     - Mode flags (For future extension. 
 | 
						|
                                             Not used currently)
 | 
						|
   RETURNS
 | 
						|
       OCI_SUCCESS or OCI_ERROR.
 | 
						|
   NOTES
 | 
						|
     - For now, specify OCI_DEFAULT for mode
 | 
						|
     - If array_size is not large enough to accommodate the number of columns
 | 
						|
       in the requested column list then OCI_ERROR is returned. Expected 
 | 
						|
       array_size is returned through num_bind_var parameter. 
 | 
						|
     - bind_var_syntax for oracle should contain ":". This will generate 
 | 
						|
       positional binds such as :1, :2, :3 etc. For other non-oracle databases
 | 
						|
       they can give the string that needs to be used for binds. 
 | 
						|
*/
 | 
						|
sword OCILCRRowStmtWithBindVarGet(
 | 
						|
     OCISvcCtx *svchp,
 | 
						|
     OCIError  *errhp,
 | 
						|
     oratext   *row_stmt,
 | 
						|
     ub4       *row_stmt_len,
 | 
						|
     ub2       *num_bind_var,
 | 
						|
     ub2       *bind_var_dtyp,
 | 
						|
     void     **bind_var_valuesp,
 | 
						|
     OCIInd    *bind_var_indp,
 | 
						|
     ub2       *bind_var_alensp,
 | 
						|
     ub2       *bind_var_csetidp,
 | 
						|
     ub1       *bind_var_csetfp,
 | 
						|
     void      *row_lcrp,
 | 
						|
     oratext  **chunk_column_names,
 | 
						|
     ub2       *chunk_column_namesl,
 | 
						|
     oraub8    *chunk_column_flags,
 | 
						|
     ub2        array_size,
 | 
						|
     oratext   *bind_var_syntax,
 | 
						|
     ub4        mode); 
 | 
						|
 | 
						|
/*
 | 
						|
-------------------------------------------------------------------------------
 | 
						|
  NAME
 | 
						|
    OCILCRSCNsFromPosition - Get SCNs From Position
 | 
						|
                        
 | 
						|
  DESCRIPTION
 | 
						|
    Returns the SCN and commit SCN from the given position. 
 | 
						|
  PARAMETERS
 | 
						|
    svchp          (IN)  -  OCI service context
 | 
						|
    errhp          (IN)  -  OCI Error Handle
 | 
						|
    position       (IN)  -  LCR position
 | 
						|
    position_len   (IN)  -  length of position 
 | 
						|
    scn            (OUT) -  the SCN stored in position
 | 
						|
    commit_scn     (OUT) -  the commit SCN stored in position 
 | 
						|
    mode           (IN)  -  Mode flags (For future extension. Not used 
 | 
						|
                            currently)
 | 
						|
  RETURN
 | 
						|
    OCI_SUCCESS if the conversion succeeds, OCI_ERROR otherwise.
 | 
						|
  NOTE
 | 
						|
    The user must allocate memory for the return numbers.
 | 
						|
    The input position must conform to the format generated by an XStream 
 | 
						|
    server.
 | 
						|
-------------------------------------------------------------------------------
 | 
						|
*/
 | 
						|
sword OCILCRSCNsFromPosition(OCISvcCtx  *svchp,
 | 
						|
                            OCIError   *errhp,
 | 
						|
                            ub1        *position,
 | 
						|
                            ub2         position_len,
 | 
						|
                            OCINumber  *scn, 
 | 
						|
                            OCINumber  *commit_scn,  
 | 
						|
                            ub4         mode); 
 | 
						|
 | 
						|
/*
 | 
						|
-------------------------------------------------------------------------------
 | 
						|
  NAME
 | 
						|
    OCILCRSCNToPosition - Converts SCN To Position
 | 
						|
 | 
						|
  DESCRIPTION
 | 
						|
    Converts an SCN to a position. The generated position can be passed as the
 | 
						|
    last_position to OCIXStreamOutAttach function to filter the LCRs
 | 
						|
    with commit SCN less than the given SCN and the LCR's SCN less than the
 | 
						|
    given SCN. This means the first LCR sent by the Outbound server is either
 | 
						|
     - a commit LCR at the given SCN, or 
 | 
						|
     - the first LCR of the subsequent transaction with commit SCN greater 
 | 
						|
       than or equal to the given SCN.
 | 
						|
  PARAMETERS
 | 
						|
    svchp          (IN)  -  OCI service context
 | 
						|
    errhp          (IN)  -  OCI Error Handle
 | 
						|
    position       (OUT) -  Result position. Must pre-allocate 
 | 
						|
                            OCI_LCR_MAX_POSITION_LEN bytes.
 | 
						|
    position_len   (OUT) -  Length of position
 | 
						|
    scn            (IN)  -  The SCN to be stored in position
 | 
						|
    mode           (IN)  -  Mode flags (for future extension)
 | 
						|
  RETURN
 | 
						|
    OCI_SUCCESS if the conversion succeeds, OCI_ERROR otherwise.
 | 
						|
-------------------------------------------------------------------------------
 | 
						|
*/
 | 
						|
sword OCILCRSCNToPosition(OCISvcCtx  *svchp,
 | 
						|
                          OCIError   *errhp,
 | 
						|
                          ub1        *position,
 | 
						|
                          ub2        *position_len,
 | 
						|
                          OCINumber  *scn,
 | 
						|
                          ub4         mode);
 | 
						|
 | 
						|
/*
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
NAME
 | 
						|
  OCILCRLobInfoGet - OCI LCR GET LOB INFO
 | 
						|
DESCRIPTION
 | 
						|
  Returns the LOB information for a given piece-wise LOB LCR.
 | 
						|
PARAMETERS
 | 
						|
  svchp          (IN)    - OCI service context
 | 
						|
  errhp          (IN)    - OCI Error Handle
 | 
						|
  column_name    (OUT)   - Pointer to the LOB column name. 
 | 
						|
                           Optional. If specified then column_name_len must
 | 
						|
                           be specified as well.
 | 
						|
  column_name_len(OUT)   - Length of LOB column name without the NULL 
 | 
						|
                           terminator.
 | 
						|
  column_dty     (OUT)   - LOB column dty - either SQLT_CHR (for CLOB) or 
 | 
						|
                           SQLT_BIN (for BLOB).
 | 
						|
  column_flag    (OUT)   - LOB column flag.
 | 
						|
                           Possible bit values are OCI_LCR_COLUMN_* flags 
 | 
						|
                           listed above.
 | 
						|
  offset         (OUT)   - LOB operation offset in code points. Returned only
 | 
						|
                           for LOB_TRIM and LOB_WRITE operations; otherwise,
 | 
						|
                           a zero is returned.
 | 
						|
                           This is the same as the 'soffset' parameter for 
 | 
						|
                           OCILobErase or the 'offset' parameter in 
 | 
						|
                           OCILobWrite functions.
 | 
						|
  size           (OUT)   - LOB operation size in code points. Returned only
 | 
						|
                           for LOB_TRIM and LOB_ERASE operations; otherwise,
 | 
						|
                           a zero is returned.
 | 
						|
                           This is the same as the 'new_length' parameter in 
 | 
						|
                           OCILobTrim or the 'amtp' parameter in OCILobErase 
 | 
						|
                           functions.
 | 
						|
  row_lcrp       (IN)    - Streams Row LCR pointer
 | 
						|
  mode           (IN)    - mode
 | 
						|
NOTES
 | 
						|
  - For now, specify OCI_DEFAULT for mode
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
*/
 | 
						|
sword OCILCRLobInfoGet(OCISvcCtx   *svchp, 
 | 
						|
                       OCIError    *errhp, 
 | 
						|
                       oratext    **column_name,
 | 
						|
                       ub2         *column_name_len,
 | 
						|
                       ub2         *column_dty,
 | 
						|
                       oraub8      *column_flag,
 | 
						|
                       ub4         *offset,
 | 
						|
                       ub4         *size,
 | 
						|
                       void        *row_lcrp,
 | 
						|
                       ub4          mode);
 | 
						|
 | 
						|
/*
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
NAME
 | 
						|
  OCILCRLobInfoSet - OCI LCR SET LOB INFO
 | 
						|
DESCRIPTION
 | 
						|
  Sets the LOB information for a given piece-wise LOB LCR.
 | 
						|
PARAMETERS
 | 
						|
  svchp          (IN)    - OCI service context
 | 
						|
  errhp          (IN)    - OCI Error Handle
 | 
						|
  column_name    (IN)    - Pointer to the LOB column name. 
 | 
						|
  column_name_len(IN)    - Length of LOB column name without the NULL 
 | 
						|
                           terminator.
 | 
						|
  column_dty     (IN)    - LOB column dty - either SQLT_CHR (for CLOB) or 
 | 
						|
                           SQLT_BIN (for BLOB).
 | 
						|
  column_flag    (IN)    - LOB column flag.
 | 
						|
                           Possible bit values are OCI_LCR_COLUMN_* flags 
 | 
						|
                           listed above.
 | 
						|
  offset         (IN)    - LOB operation offset in code points. Returned only
 | 
						|
                           for LOB_TRIM and LOB_WRITE operations; otherwise,
 | 
						|
                           a zero is returned.
 | 
						|
                           This is the same as the 'soffset' parameter for 
 | 
						|
                           OCILobErase or the 'offset' parameter in 
 | 
						|
                           OCILobWrite functions.
 | 
						|
  size           (IN)    - LOB operation size in code points. Returned only
 | 
						|
                           for LOB_TRIM and LOB_ERASE operations; otherwise,
 | 
						|
                           a zero is returned.
 | 
						|
                           This is the same as the 'new_length' parameter in 
 | 
						|
                           OCILobTrim or the 'amtp' parameter in OCILobErase 
 | 
						|
                           functions.
 | 
						|
  row_lcrp       (IN/OUT)- Streams Row LCR pointer
 | 
						|
  mode           (IN)    - mode
 | 
						|
NOTES
 | 
						|
  - For now, specify OCI_DEFAULT for mode
 | 
						|
------------------------------------------------------------------------------=
 | 
						|
*/
 | 
						|
sword OCILCRLobInfoSet(OCISvcCtx   *svchp, 
 | 
						|
                       OCIError    *errhp, 
 | 
						|
                       oratext     *column_name,
 | 
						|
                       ub2          column_name_len,
 | 
						|
                       ub2          column_dty,
 | 
						|
                       oraub8       column_flag,
 | 
						|
                       ub4          offset,
 | 
						|
                       ub4          size,
 | 
						|
                       void        *row_lcrp,
 | 
						|
                       ub4          mode);
 | 
						|
 | 
						|
/*---------------------------------------------------------------------------
 | 
						|
                        STREAMS XSTREAM OUT FUNCTIONS
 | 
						|
  ---------------------------------------------------------------------------*/
 | 
						|
 | 
						|
/*------------------------- OCIXStreamOutAttach -----------------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCIXStreamOutAttach - OCI Attach to XStreams Out
 | 
						|
   DESCRIPTION
 | 
						|
       Given the name of the server process, attach to the outbound server.
 | 
						|
   PARAMETERS
 | 
						|
       svchp                  (IN/OUT) - OCI service handle
 | 
						|
       errhp                  (IN/OUT) - Error Handle for error reporting
 | 
						|
       server_name                (IN) - Server name.
 | 
						|
       server_name_len            (IN) - Length of server name.
 | 
						|
       last_position              (IN) - last rcv position. (Optional)
 | 
						|
       last_position_len          (IN) - Length of last_position.
 | 
						|
       mode                       (IN) - Mode flags (future extension. 
 | 
						|
                                         Not used currently)
 | 
						|
   RETURNS
 | 
						|
       OCI_SUCCESS or OCI_ERROR.
 | 
						|
   NOTES
 | 
						|
       Specify OCI_DEFAULT for the mode parameter.
 | 
						|
 | 
						|
       The name of the outbound server must be provided because multiple 
 | 
						|
       outbound servers can be configured in one Oracle instance. This call 
 | 
						|
       returns OCI_ERROR if it encounters any error while attaching to the 
 | 
						|
       outbound server.
 | 
						|
       
 | 
						|
       The last_position parameter is used to establish the starting point 
 | 
						|
       of the stream. This call returns OCI_ERROR if the specified position 
 | 
						|
       is non-null and less than the server's processed low-watermark; 
 | 
						|
       otherwise, LCRs with position greater than last_position will be
 | 
						|
       sent to the user.
 | 
						|
 | 
						|
       If last_position is null then the stream will start from the processed 
 | 
						|
       low-watermark maintained in the server.
 | 
						|
*/
 | 
						|
 | 
						|
sword OCIXStreamOutAttach (OCISvcCtx *svchp, OCIError *errhp, 
 | 
						|
                           oratext *server_name, ub2 server_name_len, 
 | 
						|
                           ub1 *last_position, 
 | 
						|
                           ub2  last_position_len, 
 | 
						|
                           ub4  mode);  
 | 
						|
 | 
						|
#define OCIXSTREAM_OUT_ATTACH_RESERVED_1              (0x00000001) 
 | 
						|
 | 
						|
/*---------------------- OCIXStreamOutProcessedLWMSet ----------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCIXStreamOutProcessedLWMSet - Set Processed Low-Watermark
 | 
						|
   DESCRIPTION
 | 
						|
       Sets the processed low-watermark maintained at the client.
 | 
						|
   PARAMETERS
 | 
						|
       svchp                  (IN/OUT) - OCI service handle
 | 
						|
       errhp                  (IN/OUT) - Error Handle for error reporting
 | 
						|
       processed_low_position     (IN) - processed low position.
 | 
						|
       processed_low_position_len (IN) - processed low position length.
 | 
						|
       mode                       (IN) - mode for future extension. (Not used 
 | 
						|
                                         currently).
 | 
						|
   RETURNS
 | 
						|
       OCI_SUCCESS or OCI_ERROR.
 | 
						|
 | 
						|
   NOTES
 | 
						|
       The processed low-watermark denotes all LCRs at or below this position
 | 
						|
       have been processed. After successfully attaching to an XStream 
 | 
						|
       outbound server, a local copy of the processed low-watermark is 
 | 
						|
       maintained at the client. Periodically, this watermark is sent to the 
 | 
						|
       server so that archived logs containing already processed transactions 
 | 
						|
       can be purged. 
 | 
						|
 | 
						|
       The following API is used to update the local copy of the processed 
 | 
						|
       low-watermark. It can be called anytime between OCIXStreamOutAttach 
 | 
						|
       and OCIXStreamOutDetach calls. Clients, using the callback mechanism 
 | 
						|
       to stream LCRs from the server, can invoke this API while 
 | 
						|
       in the callback functions.
 | 
						|
*/
 | 
						|
 | 
						|
sword OCIXStreamOutProcessedLWMSet (OCISvcCtx *svchp, OCIError *errhp, 
 | 
						|
                                    ub1 *processed_low_position, 
 | 
						|
                                    ub2  processed_low_position_len, 
 | 
						|
                                    ub4  mode);  
 | 
						|
 | 
						|
 | 
						|
/*-------------------- OCICallbackXStreamOutLCRProcess ----------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCICallbackXStreamOutLCRProcess - Callback to process each LCR received 
 | 
						|
   DESCRIPTION
 | 
						|
       This callback is invoked during OCIXStreamOutLCRCallbackReceive
 | 
						|
       to process each LCR received from the outbound server.
 | 
						|
   PARAMETERS
 | 
						|
       usrctxp                (IN/OUT) - Ptr to the user context.
 | 
						|
       lcrp                       (IN) - Pointer to the LCR just received.
 | 
						|
       lcrtyp                     (IN) - LCR type (OCI_LCR_XROW / OCI_LCR_XDDL)
 | 
						|
       flag                       (IN) - If OCI_XSTREAM_MORE_ROW_DATA is set,
 | 
						|
                                         this means the current LCR has more
 | 
						|
                                         chunk data.
 | 
						|
   RETURNS
 | 
						|
    This callback function must return OCI_CONTINUE to continue processing
 | 
						|
    OCIXStreamOutLCRCallbackReceive call.  Any return code other than 
 | 
						|
    OCI_CONTINUE signals that the client wants to terminate 
 | 
						|
    OCIXStreamOutLCRCallbackReceive immediately.
 | 
						|
*/
 | 
						|
typedef sb4 (*OCICallbackXStreamOutLCRProcess) (void *usrctxp, void *lcrp,
 | 
						|
                                                ub1 lcrtyp, oraub8 flag);
 | 
						|
 | 
						|
 | 
						|
/*-------------------- OCICallbackXStreamOutChunkProcess --------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCICallbackXStreamOutChunkProcess - Callback to process each chunk 
 | 
						|
   DESCRIPTION
 | 
						|
       This callback is invoked during OCIXStreamOutLCRCallbackReceive
 | 
						|
       to process each chunk in an LCR.
 | 
						|
   PARAMETERS
 | 
						|
       usrctxp     (IN/OUT) - Ptr to the user context.
 | 
						|
       column_name     (IN) - Column name for the current chunk.
 | 
						|
       column_name_len (IN) - Length of column name.
 | 
						|
       column_dty      (IN) - Chunk data type (SQLT_CHR or SQLT_BIN).
 | 
						|
       column_flag     (IN) - LCR column flags. Possible bit values are
 | 
						|
                              OCI_LCR_COLUMN_* flags listed above.
 | 
						|
       column_csid     (IN) - Column character set id. Relevant only if 
 | 
						|
                              the column is an XMLType column (i.e., 
 | 
						|
                              column_flag has OCI_LCR_COLUMN_XML_DATA bit set).
 | 
						|
       chunk_bytes     (IN) - Chunk data length in bytes.
 | 
						|
       chunk_data      (IN) - Chunk data buffer.
 | 
						|
       flag            (IN) - If OCI_XSTREAM_MORE_ROW_DATA is set, this means
 | 
						|
                              the current LCR has more chunks.
 | 
						|
   RETURNS
 | 
						|
    This callback function must return OCI_CONTINUE to continue processing
 | 
						|
    OCIXStreamOutLCRCallbackReceive call.  Any return code other than 
 | 
						|
    OCI_CONTINUE signals that the client wants to terminate 
 | 
						|
    OCIXStreamOutLCRCallbackReceive immediately.
 | 
						|
*/
 | 
						|
typedef sb4 (*OCICallbackXStreamOutChunkProcess)
 | 
						|
                  (void  *usrctxp, oratext *column_name, ub2 column_name_len,
 | 
						|
                   ub2 column_dty, oraub8 column_flag, ub2 column_csid,
 | 
						|
                   ub4 chunk_bytes, ub1 *chunk_data, oraub8 flag);
 | 
						|
 | 
						|
/*-------------------- OCIXStreamOutLCRCallbackReceive ----------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCIXStreamOutLCRCallbackReceive - OCI Receive LCR stream using Callbacks
 | 
						|
   DESCRIPTION
 | 
						|
       This API is used to get the LCR stream from the outbound server using 
 | 
						|
       callbacks to gain better performance. The user must supply a callback 
 | 
						|
       function to be invoked for each LCR received. If some row changes 
 | 
						|
       in the stream may contain LOB/LONG/XMLType columns then the data for
 | 
						|
       those columns are returned to the user in chunks. To receive those row
 | 
						|
       changes, the user must provide a second callback to be invoked to
 | 
						|
       process each chunk data.
 | 
						|
 | 
						|
       If there is an LCR available in the stream, the processlcr_cb function 
 | 
						|
       is invoked immediately. After the processlcr_cb function exits, if the 
 | 
						|
       current LCR contains additional chunks then the processchunk_cb function
 | 
						|
       is invoked for each chunk belonging to that LCR.  
 | 
						|
 | 
						|
       If there is no LCR in the stream when the idle timeout expires (see
 | 
						|
       OCI_ATTR_XSTREAM_IDLE_TIMEOUT), this call returns a null LCR with 
 | 
						|
       OCI_SUCCESS code.
 | 
						|
   PARAMETERS
 | 
						|
       svchp                  (IN/OUT) - OCI service handle
 | 
						|
       errhp                  (IN/OUT) - Error Handle for error reporting
 | 
						|
       processlcr_cb              (IN) - Client callback function for each LCR.
 | 
						|
       processchunk_cb            (IN) - Client callback function for each 
 | 
						|
                                         chunk.
 | 
						|
       usrctxp                    (IN) - Client context. (Optional)
 | 
						|
       fetch_low_position         (OUT)- Fetch low watermark. (Optional)
 | 
						|
       fetch_low_position_len     (OUT)- Fetch low watermark length.
 | 
						|
       mode                       (IN) - mode for future extension. (Not used 
 | 
						|
                                         currently).
 | 
						|
   RETURNS
 | 
						|
       OCI_SUCCESS or OCI_ERROR.
 | 
						|
   NOTES
 | 
						|
      - The fetch low watermark is used to indicate all transactions
 | 
						|
        with commit position below this have been received by the XStream
 | 
						|
        outbound server.
 | 
						|
 | 
						|
      - If the LCR contains non-chunked column(s), the duration of that LCR is
 | 
						|
        limited to the processlcr_cb function. If the LCR contains some 
 | 
						|
        chunk data then the duration of the LCR is extended until all the 
 | 
						|
        chunks have been processed (that is, when the flag passing to
 | 
						|
        processchunk_cb function does not have OCI_XSTREAM_MORE_ROW_DATA flag
 | 
						|
        set). If the user wants to access the LCR data at a later time, a 
 | 
						|
        copy of the LCR must be made.  The client callback should not modify 
 | 
						|
        or free the LCR passing to the callback. 
 | 
						|
 | 
						|
      - The given usrctxp is passed to both callbacks.
 | 
						|
 | 
						|
      - An ACK interval is the interval in seconds which the outbound
 | 
						|
        server receives the processed LWM or the inbound server sends 
 | 
						|
        the processed LWM.  The default ACK interval is 30 seconds. This 
 | 
						|
        value can be changed by setting the OCI_ATTR_XSTREAM_ACK_INTERVAL 
 | 
						|
        attribute using OCIAttrSet API.  This attribute is checked only 
 | 
						|
        during the Attach call; thus, it must be set before invoking this API. 
 | 
						|
 | 
						|
      - The idle timeout is the interval in seconds after which the current 
 | 
						|
        call will terminate if there is no LCR in the stream. The default 
 | 
						|
        idle timeout is one second. This value can be changed by setting the 
 | 
						|
        OCI_ATTR_XSTREAM_IDLE_TIMEOUT attribute using OCIAttrSet API.  This 
 | 
						|
        attribute is checked only during the Attach call; thus, it must be 
 | 
						|
        set before invoking this API. 
 | 
						|
 | 
						|
      - The outbound server ends each call at the transaction boundary 
 | 
						|
        after an ACK interval has elapsed from the start of the call
 | 
						|
        or when the idle timeout expires. This API returns the fetch 
 | 
						|
        low watermark at the end of each call. 
 | 
						|
*/
 | 
						|
sword OCIXStreamOutLCRCallbackReceive(
 | 
						|
  OCISvcCtx *svchp, OCIError *errhp, 
 | 
						|
  OCICallbackXStreamOutLCRProcess processlcr_cb,
 | 
						|
  OCICallbackXStreamOutChunkProcess processchunk_cb, void *usrctxp, 
 | 
						|
  ub1 *fetch_low_position, ub2 *fetch_low_position_len, ub4 mode);
 | 
						|
 | 
						|
/*---------------------- OCIXStreamOutLCRReceive -------------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCIXStreamOutLCRReceive - Receive LCR without using callback 
 | 
						|
   DESCRIPTION
 | 
						|
       This API is used to receive an LCR from an outbound stream. If there 
 | 
						|
       is an LCR available, this API immediately returns that LCR. The 
 | 
						|
       duration of each LCR is limited to the processlcr_cb function. 
 | 
						|
       When there is no LCR available in the stream, this call returns a 
 | 
						|
       null LCR after the idle timeout (see OCI_ATTR_XSTREAM_IDLE_TIMEOUT)
 | 
						|
       has expired.
 | 
						|
 | 
						|
       To avoid network round trip for every OCIXStreamOutLCRReceive call, 
 | 
						|
       the connection is tied to this call to let the server fill up 
 | 
						|
       the network buffer with LCRs so subsequent calls can quickly receive 
 | 
						|
       the LCRs from the network. The server ends each call at the 
 | 
						|
       transaction boundary after an ACK interval has elapsed since the start
 | 
						|
       of the call or when the idle timeout expires. See 
 | 
						|
       OCI_ATTR_XSTREAM_ACK_INTERVAL & OCI_ATTR_XSTREAM_IDLE_TIMEOUT
 | 
						|
       attributes.
 | 
						|
   PARAMETERS
 | 
						|
       svchp                  (IN/OUT) - OCI service handle
 | 
						|
       errhp                  (IN/OUT) - Error Handle for error reporting
 | 
						|
       lcrp                      (OUT) - Pointer to the LCR received from the
 | 
						|
                                         stream. 
 | 
						|
       lcrtype                   (OUT) - LCR type (OCI_LCR_XROW / OCI_LCR_XDDL)
 | 
						|
       flag                      (OUT) - If OCI_XSTREAM_MORE_ROW_DATA is set, 
 | 
						|
                                         it means the current LCR has more 
 | 
						|
                                         chunk data.
 | 
						|
       fetch_low_position         (OUT)- Fetch low watermark. (Optional)
 | 
						|
       fetch_low_position_len     (OUT)- Fetch low watermark length.
 | 
						|
       mode                       (IN) - mode for future extension. (Not used 
 | 
						|
                                         currently).
 | 
						|
   RETURNS
 | 
						|
     -  OCI_STILL_EXECUTING means the current call is still in progress. The 
 | 
						|
        connection associated with the specified service context handle is 
 | 
						|
        still tied to this call for streaming the LCRs from the server. An 
 | 
						|
        error is returned if the user attempts to use the same connection to 
 | 
						|
        execute any OCI calls that require database round trip, for example, 
 | 
						|
        OCIStmtExecute, OCIStmtFetch, OCILobRead, etc. OCILcr* calls are 
 | 
						|
        local calls; thus, they are valid while the stream is in progress.
 | 
						|
     -  OCI_SUCCESS means the current call is completed. User is free to 
 | 
						|
        execute OCIStmt*, OCILob*, etc. from the same service context.
 | 
						|
     -  OCI_ERROR means the current call encounters some errors. Use 
 | 
						|
        OCIErrorGet to obtain information about the error.
 | 
						|
 | 
						|
   NOTES
 | 
						|
     This call always returns a null LCR when the return code is OCI_SUCCESS. 
 | 
						|
     In addition, it returns the fetch low position to denote the outbound 
 | 
						|
     server has received all transactions with commit position lower than or 
 | 
						|
     equal to this value.
 | 
						|
*/
 | 
						|
 | 
						|
sword OCIXStreamOutLCRReceive(
 | 
						|
  OCISvcCtx *svchp, OCIError *errhp, 
 | 
						|
  void     **lcrp,
 | 
						|
  ub1       *lcrtype,
 | 
						|
  oraub8    *flag,
 | 
						|
  ub1       *fetch_low_position,
 | 
						|
  ub2       *fetch_low_position_len,
 | 
						|
  ub4        mode);
 | 
						|
 | 
						|
/*-------------------------- OCIXStreamOutChunkReceive ---------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCIXStreamOutChunkReceive - Receive Chunk data
 | 
						|
   DESCRIPTION
 | 
						|
       Receives next chunk of LCR data from XStream Outbound server.
 | 
						|
       This API can only be called while OCIXStreamOutLCRReceive call is
 | 
						|
       in progress.
 | 
						|
   PARAMETERS
 | 
						|
       svchp        (IN/OUT) - OCI service handle
 | 
						|
       errhp        (IN/OUT) - Error Handle to which errors should be reported
 | 
						|
       column_name     (OUT) - Name of column for which data is retrieved.
 | 
						|
       column_name_len (OUT) - Length of column name.
 | 
						|
       column_dty      (OUT) - LCR column data type.
 | 
						|
       column_flag     (OUT) - LCR column flag. Possible bit values are
 | 
						|
                                OCI_LCR_COLUMN_LOB_DATA     
 | 
						|
                                OCI_LCR_COLUMN_LONG_DATA   
 | 
						|
                                OCI_LCR_COLUMN_EMPTY_LOB  
 | 
						|
                                OCI_LCR_COLUMN_LAST_CHUNK
 | 
						|
                                OCI_LCR_COLUMN_AL16UTF16
 | 
						|
                                OCI_LCR_COLUMN_ENCRYPTED   
 | 
						|
                                OCI_LCR_COLUMN_NCLOB      
 | 
						|
                                OCI_LCR_COLUMN_XML_DATA  
 | 
						|
                                OCI_LCR_COLUMN_XML_DIFF 
 | 
						|
       column_csid     (OUT) - Column character set id. This is returned only
 | 
						|
                               if the column is an XMLType column (i.e., 
 | 
						|
                               column_flag has OCI_LCR_COLUMN_XML_DATA bit 
 | 
						|
                               set).
 | 
						|
       chunk_bytes     (OUT) - Number of bytes in output buffer.
 | 
						|
       chunk_data      (OUT) - Pointer to the chunk data in the LCR. 
 | 
						|
                               Client must not de-allocate this pointer.
 | 
						|
       flag            (OUT) - If OCI_XSTREAM_MORE_ROW_DATA is set, it means
 | 
						|
                               the current LCR has more data coming.
 | 
						|
       mode             (IN) - mode for future extension. (Not used currently).
 | 
						|
   RETURNS
 | 
						|
       OCI_SUCCESS - Check colname_len and chunk_bytes to determine the 
 | 
						|
                     data just read.
 | 
						|
       OCI_ERROR   - Error encountered. Execute OCIErrorGet to get information
 | 
						|
                     about the error.
 | 
						|
   NOTES
 | 
						|
      - If the return code is OCI_SUCCESS, client should check chunk_bytes to 
 | 
						|
        determine the # of bytes read and check column_name to determine 
 | 
						|
        which LCR column the data associated with.
 | 
						|
 | 
						|
      - All the chunks from one LOB/LONG/XMLType column are returned entirely 
 | 
						|
        before the chunk value for the next LOB/LONG/XMLType column is 
 | 
						|
        returned.
 | 
						|
 | 
						|
      - The is no fixed ordering on how the LOB/LONG/XMLType columns is 
 | 
						|
        returned. Users must check the column name to determine which column. 
 | 
						|
        The column_flag will have OCI_LCR_COLUMN_LAST_CHUNK bit set when this 
 | 
						|
        function returns the last chunk of each column.
 | 
						|
 | 
						|
      - This call returns a null column name and null chunk data if it's 
 | 
						|
        invoked when the current LCR contains only non-chunked columns.
 | 
						|
 | 
						|
      - If OCIXStreamOutLCRReceive call returns OCI_XSTREAM_MORE_ROW_DATA flag 
 | 
						|
        then the user must iteratively call OCIXStreamOutChunkReceive to 
 | 
						|
        retrieve all the chunks belonging to the current row change before
 | 
						|
        calling the next OCIXStreamOutLCRReceive.
 | 
						|
 | 
						|
*/
 | 
						|
sword OCIXStreamOutChunkReceive(OCISvcCtx *svchp, OCIError *errhp, 
 | 
						|
                                oratext **column_name, ub2 *column_name_len, 
 | 
						|
                                ub2 *column_dty, oraub8 *column_flag, 
 | 
						|
                                ub2 *column_csid, ub4 *chunk_bytes, 
 | 
						|
                                ub1 **chunk_data, oraub8 *flag, ub4 mode);
 | 
						|
 | 
						|
/*------------------------- OCIXStreamOutDetach -----------------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCIXStreamOutDetach - OCI Detach from XStream Out
 | 
						|
   DESCRIPTION
 | 
						|
      Detaches from the attached XStream outbound server. This call sends the 
 | 
						|
      current local processed low-watermark to the server before detaching 
 | 
						|
      from the outbound server. The outbound server automatically restarts 
 | 
						|
      after this call. This API returns OCI_ERROR if it is invoked while a 
 | 
						|
      ReceiveLCR call is in progress.
 | 
						|
   PARAMETERS
 | 
						|
       svchp    (IN/OUT) - OCI service handle
 | 
						|
       errhp    (IN/OUT) - Error Handle to which errors should be reported
 | 
						|
       mode     (IN)     - mode for future extension. (Not used currently).
 | 
						|
   RETURNS
 | 
						|
       OCI_SUCCESS or OCI_ERROR.
 | 
						|
   NOTES
 | 
						|
      - The processed_low_position is passed to the server so it can update its
 | 
						|
        copy.  This value if provided must be greater than or equal to the
 | 
						|
        value maintained in the server; otherwise, an error is returned.
 | 
						|
*/
 | 
						|
sword OCIXStreamOutDetach (OCISvcCtx *svchp, OCIError *errhp, ub4 mode);
 | 
						|
 | 
						|
 | 
						|
/*---------------------------------------------------------------------------
 | 
						|
                        STREAMS XSTREAM IN FUNCTIONS
 | 
						|
  ---------------------------------------------------------------------------*/
 | 
						|
 | 
						|
/*------------------------ OCIXStreamInAttach -------------------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCIXStreamInAttach - OCI XStream In Attach
 | 
						|
   DESCRIPTION
 | 
						|
       Attaches to the specified XStream inbound server.
 | 
						|
   PARAMETERS
 | 
						|
       svchp                 (IN/OUT) - OCI service handle
 | 
						|
       errhp                 (IN/OUT) - Error Handle to which errors
 | 
						|
                                        should be reported
 | 
						|
       server_name               (IN) - XStream inbound server name.
 | 
						|
       server_name_len           (IN) - Length of server name.
 | 
						|
       source_name               (IN) - source name to identify the data src.
 | 
						|
       source_name_len           (IN) - Length of source name.
 | 
						|
       last_position            (OUT) - Last position received by inbound
 | 
						|
                                        server. Optional. If specified must 
 | 
						|
                                        pre-allocate OCI_LCR_MAX_POSITION_LEN 
 | 
						|
                                        bytes for return value.
 | 
						|
       last_position_len        (OUT) - Length of last_position. Must be 
 | 
						|
                                        non-NULL if last_position is non-NULL.
 | 
						|
       mode                      (IN) - Mode flags (For future extension. 
 | 
						|
                                        (Not used currently)
 | 
						|
   RETURNS
 | 
						|
       OCI_SUCCESS or OCI_ERROR.
 | 
						|
   NOTES
 | 
						|
       The last_position parameter is returned to establish the starting point 
 | 
						|
       to resume the inbound stream. The client should start sending LCRs with 
 | 
						|
       positions greater than the last_position since the inbound server will
 | 
						|
       ignore all LCRs with positions less than or equal to this value. 
 | 
						|
*/
 | 
						|
 | 
						|
sword OCIXStreamInAttach(
 | 
						|
      OCISvcCtx *svchp,
 | 
						|
      OCIError  *errhp,
 | 
						|
      oratext   *server_name,
 | 
						|
      ub2        server_name_len,
 | 
						|
      oratext   *source_name,
 | 
						|
      ub2        source_name_len,
 | 
						|
      ub1       *last_position, 
 | 
						|
      ub2       *last_position_len, 
 | 
						|
      ub4        mode);
 | 
						|
 | 
						|
/*-------------------- OCICallbackXStreamInLCRCreate ------------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCICallbackXStreamInLCRCreate - Callback to create an LCR 
 | 
						|
   DESCRIPTION
 | 
						|
       This callback is invoked during OCIXStreamInLCRCallbackSend
 | 
						|
       to create each LCR to be sent to the inbound server.
 | 
						|
   PARAMETERS
 | 
						|
       usrctxp                (IN/OUT) - Ptr to the user context
 | 
						|
       lcrp                      (OUT) - Pointer to the LCR to be sent
 | 
						|
       lcrtyp                    (OUT) - LCR type (OCI_LCR_XROW / OCI_LCR_XDDL)
 | 
						|
       flag                      (OUT) - If OCI_XSTREAM_MORE_ROW_DATA is set,
 | 
						|
                                         this means the current LCR has more
 | 
						|
                                         chunk data.
 | 
						|
   RETURNS
 | 
						|
    This callback function must return OCI_CONTINUE to continue processing
 | 
						|
    OCIXStreamInLCRCallbackSend call.  Any return code other than 
 | 
						|
    OCI_CONTINUE signals that the client wants to terminate 
 | 
						|
    OCIXStreamInLCRCallbackSend immediately.
 | 
						|
*/
 | 
						|
typedef sb4  (*OCICallbackXStreamInLCRCreate)(
 | 
						|
               void   *usrctxp,
 | 
						|
               void  **lcrp,  
 | 
						|
               ub1    *lcrtyp,  
 | 
						|
               oraub8 *flag);
 | 
						|
 | 
						|
/*-------------------- OCICallbackXStreamInChunkCreate --------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCICallbackXStreamInChunkCreate - Callback to create each chunk 
 | 
						|
   DESCRIPTION
 | 
						|
       This callback is invoked during OCIXStreamInLCRCallbackSend
 | 
						|
       to create each chunk to be sent to the inbound server.
 | 
						|
   PARAMETERS
 | 
						|
       usrctxp      (IN/OUT) - Ptr to the user context.
 | 
						|
       column_name     (OUT) - Column name for the current chunk.
 | 
						|
       column_name_len (OUT) - Length of column name.
 | 
						|
       column_dty      (OUT) - Chunk data type (SQLT_CHR or SQLT_BIN).
 | 
						|
       column_flag     (OUT) - LCR column flags. Possible bit values are
 | 
						|
                               OCI_LCR_COLUMN_* flags listed above.
 | 
						|
       column_csid     (OUT) - Column character set id. Relevant only if 
 | 
						|
                               the column is an XMLType column (i.e., 
 | 
						|
                               column_flag has OCI_LCR_COLUMN_XML_DATA bit 
 | 
						|
                               set).
 | 
						|
       chunk_bytes     (OUT) - Chunk data length in bytes.
 | 
						|
       chunk_data      (OUT) - Chunk data buffer.
 | 
						|
       flag            (OUT) - If OCI_XSTREAM_MORE_ROW_DATA is set, this means
 | 
						|
                               the current LCR has more chunks.
 | 
						|
   RETURNS
 | 
						|
    This callback function must return OCI_CONTINUE to continue processing
 | 
						|
    OCIXStreamInLCRCallbackSend call.  Any return code other than 
 | 
						|
    OCI_CONTINUE signals that the client wants to terminate 
 | 
						|
    OCIXStreamInLCRCallbackSend immediately.
 | 
						|
*/
 | 
						|
typedef sb4  (*OCICallbackXStreamInChunkCreate)(
 | 
						|
               void      *usrctxp,
 | 
						|
               oratext  **column_name, 
 | 
						|
               ub2       *column_name_len, 
 | 
						|
               ub2       *column_dty, 
 | 
						|
               oraub8    *column_flag,
 | 
						|
               ub2       *column_csid,
 | 
						|
               ub4       *chunk_bytes, 
 | 
						|
               ub1      **chunk_data, 
 | 
						|
               oraub8    *flag);
 | 
						|
 | 
						|
/*--------------------- OCIXStreamInLCRCallbackSend ------------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCIXStreamInLCRCallbackSend - OCI XStream In Send LCR to Inbound Server
 | 
						|
   DESCRIPTION
 | 
						|
       Sends LCR stream to XStream inbound server using callbacks.
 | 
						|
       The API invokes createlcr_cb function to obtain each LCR to send to the 
 | 
						|
       server. If the return flag from the createlcr_cb function has 
 | 
						|
       OCI_XSTREAM_MORE_ROW_DATA bit set, then it invokes createchunk_cb 
 | 
						|
       procedure to obtain each chunk. It repeatedly calls createchunk_cb 
 | 
						|
       function while the flag returned from this callback has 
 | 
						|
       OCI_XSTREAM_MORE_ROW_DATA bit set. When this bit is not set, this API 
 | 
						|
       cycles back to invoke createlcr_cb function to get the next LCR. 
 | 
						|
       This cycle is repeated until the createlcr_cb function returns a null 
 | 
						|
       LCR or when an ACK interval has elapsed since the start of the call.
 | 
						|
       See OCI_ATTR_XSTREAM_ACK_INTERVAL attribute.
 | 
						|
   PARAMETERS
 | 
						|
       svchp                 (IN/OUT) - OCI service handle
 | 
						|
       errhp                 (IN/OUT) - Error Handle to which errors
 | 
						|
                                        should be reported
 | 
						|
       createlcr_cb              (IN) - Callback function to be invoked
 | 
						|
                                        to generate an LCR for streaming. 
 | 
						|
                                        Cannot be null.
 | 
						|
       createchunk_cb            (IN) - Callback function to be invoked to 
 | 
						|
                                        create each chunk. Can be null if the 
 | 
						|
                                        user does not need to send any LCR with
 | 
						|
                                        LOB/LONG/XMLType columns. OCI_ERROR 
 | 
						|
                                        will be returned if this argument is 
 | 
						|
                                        null and the user attempts to send an 
 | 
						|
                                        LCR with additional chunk data.
 | 
						|
       usrctxp                   (IN) - Client context to pass to both
 | 
						|
                                        callback functions.
 | 
						|
       mode                      (IN) - Mode flags (For future extension. 
 | 
						|
                                        Not used currently)
 | 
						|
   RETURNS
 | 
						|
       OCI_SUCCESS or OCI_ERROR.
 | 
						|
   NOTES
 | 
						|
       None
 | 
						|
*/
 | 
						|
 | 
						|
sword OCIXStreamInLCRCallbackSend(
 | 
						|
       OCISvcCtx                              *svchp,
 | 
						|
       OCIError                               *errhp,
 | 
						|
       OCICallbackXStreamInLCRCreate           createlcr_cb,
 | 
						|
       OCICallbackXStreamInChunkCreate         createchunk_cb,
 | 
						|
       void                                   *userctxp,
 | 
						|
       ub4                                     mode);
 | 
						|
 | 
						|
/*---------------------------- OCIXStreamInLCRSend --------------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCIXStreamInLCRSend - OCI XStream In Send LCR to Inbound Server
 | 
						|
   DESCRIPTION
 | 
						|
       Sends LCR stream to XStream inbound server without using callbacks.
 | 
						|
       To avoid a network round trip for every OCIXStreamInLCRSend call,    
 | 
						|
       the connection is tied to this call for at least the duration 
 | 
						|
       specified by the OCI_ATTR_XSTREAM_ACK_INTERVAL attribute.
 | 
						|
   PARAMETERS
 | 
						|
       svchp                 (IN/OUT) - OCI service handle
 | 
						|
       errhp                 (IN/OUT) - Error Handle to which errors
 | 
						|
                                        should be reported
 | 
						|
       lcrp                      (IN) - Pointer to the LCR to send. Cannot
 | 
						|
                                        be null.
 | 
						|
       lcrtype                   (IN) - LCR type (OCI_LCR_XROW / OCI_LCR_XDDL)
 | 
						|
       flag                      (IN) - If OCI_XSTREAM_MORE_ROW_DATA is set,
 | 
						|
                                        it means the current LCR has more
 | 
						|
                                        chunk data.
 | 
						|
       mode                      (IN) - Mode flags (For future extension. 
 | 
						|
                                        Not used currently)
 | 
						|
   RETURNS
 | 
						|
     -  OCI_STILL_EXECUTING means the current call is still in progress. The 
 | 
						|
        connection associated with the specified service context handle is 
 | 
						|
        still tied to this call for streaming the LCRs to the server. An error 
 | 
						|
        is returned if the user attempts to use the same connection to 
 | 
						|
        execute any OCI calls that require database round trip, for example, 
 | 
						|
        OCIStmtExecute, OCIStmtFetch, OCILobRead, etc. OCILcr* calls are 
 | 
						|
        local calls; thus, they are valid while this call is in progress.
 | 
						|
     -  OCI_SUCCESS means the current call is completed. User is free to 
 | 
						|
        execute OCIStmt*, OCILob*, etc. from the same service context.
 | 
						|
     -  OCI_ERROR means this call encounters some errors. Use OCIErrorGet to 
 | 
						|
        obtain information about the error.
 | 
						|
*/
 | 
						|
sword OCIXStreamInLCRSend(
 | 
						|
       OCISvcCtx     *svchp,
 | 
						|
       OCIError      *errhp,
 | 
						|
       void          *lcrp,
 | 
						|
       ub1            lcrtype,
 | 
						|
       oraub8         flag,
 | 
						|
       ub4            mode);
 | 
						|
 | 
						|
/*----------------------------- OCIXStreamInChunkSend -----------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCIXStreamInChunkSend - Send Chunk
 | 
						|
   DESCRIPTION
 | 
						|
       Sends the given chunk of column data to XStream Inbound server.
 | 
						|
       This chunk is associated with the LCR that is sent by the 
 | 
						|
       most recent OCIXStreamInLCRSend call prior to this call.
 | 
						|
   PARAMETERS
 | 
						|
       svchp       (IN/OUT) - OCI service handle
 | 
						|
       errhp       (IN/OUT) - Error Handle to which errors should be reported
 | 
						|
       column_name     (IN) - Name of column for which data is sent.
 | 
						|
                              Column names must be canonicalized and must 
 | 
						|
                              follow Oracle naming conventions.
 | 
						|
       column_name_len (IN) - Length of column name.
 | 
						|
       column_dty      (IN) - LCR column data type (must be SQLT_CHR or 
 | 
						|
                              SQLT_BIN).
 | 
						|
       column_flag     (IN) - LCR column flags. Possible bit values are
 | 
						|
                                OCI_LCR_COLUMN_LOB_DATA
 | 
						|
                                OCI_LCR_COLUMN_LONG_DATA
 | 
						|
                                OCI_LCR_COLUMN_EMPTY_LOB
 | 
						|
                                OCI_LCR_COLUMN_LAST_CHUNK
 | 
						|
                                OCI_LCR_COLUMN_AL16UTF16
 | 
						|
                                OCI_LCR_COLUMN_ENCRYPTED
 | 
						|
                                OCI_LCR_COLUMN_NCLOB
 | 
						|
                                OCI_LCR_COLUMN_XML_DATA
 | 
						|
                                OCI_LCR_COLUMN_XML_DIFF
 | 
						|
       column_csid     (IN) - Column character set id. This is required only
 | 
						|
                              if the column is an XMLType column (i.e., 
 | 
						|
                              column_flag has OCI_LCR_COLUMN_XML_DATA bit set).
 | 
						|
       chunk_bytes     (IN) - Chunk data length in bytes.
 | 
						|
       chunk_data      (IN) - Chunk data buffer.
 | 
						|
       flag            (IN) - If OCI_XSTREAM_MORE_ROW_DATA is set, it means
 | 
						|
                              the current LCR has more data coming.
 | 
						|
       mode            (IN) - mode for future extension. (Not used currently).
 | 
						|
RETURNS
 | 
						|
   OCI_SUCCESS - Successful call.
 | 
						|
   OCI_ERROR   - Error encountered. Execute OCIErrorGet to get information
 | 
						|
                 about the error.
 | 
						|
NOTES
 | 
						|
 - This function must be called while OCIXStreamInLCRSend is in progress.
 | 
						|
   
 | 
						|
 - This function is valid only if the associated LCR's cmd type is
 | 
						|
   INSERT, UPDATE or LOB_WRITE. It can be invoked multiple times for the
 | 
						|
   same LCR. 
 | 
						|
 | 
						|
 - This API is not valid for LOB_ERASE and LOB_TRIM LCRs.
 | 
						|
 | 
						|
 - The chunk values for different columns can not be interleaved. If a 
 | 
						|
   column contains multiple chunks, this procedure must be called 
 | 
						|
   consecutively using the same column name before proceeding to a new column. 
 | 
						|
   The ordering in which the LOB/LONG/XMLType column values are set is 
 | 
						|
   irrelevant. 
 | 
						|
 | 
						|
 - The OCI_LCR_COLUMN_LAST_CHUNK must be specified for the last chunk of
 | 
						|
   each column. 
 | 
						|
 | 
						|
 - Only one column can be specified for LOB_WRITE operation.
 | 
						|
 | 
						|
 - For NCLOB or varying width CLOB, the input buffer must be in 
 | 
						|
   AL16UTF16 format.
 | 
						|
 | 
						|
 - For INSERT operation, each LOB/LONG/XMLType column, with value set using 
 | 
						|
   OCIXStreamInChunkSend, must be included in the current LCR's NEW 
 | 
						|
   column list. The value of that LOB/LONG/XMLType column must be set to 
 | 
						|
   null and must have OCI_LCR_COLUMN_EMPTY_LOB flag defined.
 | 
						|
 
 | 
						|
*/
 | 
						|
sword OCIXStreamInChunkSend (OCISvcCtx *svchp, OCIError *errhp,
 | 
						|
                             oratext  *column_name, ub2 column_name_len, 
 | 
						|
                             ub2 column_dty, oraub8 column_flag,
 | 
						|
                             ub2 column_csid, ub4 chunk_bytes, 
 | 
						|
                             ub1 *chunk_data, oraub8 flag, ub4 mode);
 | 
						|
 | 
						|
/*--------------------- OCIXStreamInDetach ----------------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
       OCIXStreamInDetach - OCI XStream In Detach from Inbound Server
 | 
						|
   DESCRIPTION
 | 
						|
       Detaches from XStream inbound server and returns the inbound server's 
 | 
						|
       processed low-watermark.
 | 
						|
   PARAMETERS
 | 
						|
       svchp                 (IN/OUT) - OCI service handle
 | 
						|
       errhp                 (IN/OUT) - Error Handle to which errors
 | 
						|
                                        should be reported
 | 
						|
       processed_low_position   (OUT) - Inbound server's processed low
 | 
						|
                                        position. Must pre-allocate 
 | 
						|
                                        OCI_LCR_MAX_POSITION_LEN bytes for
 | 
						|
                                        output buffer.
 | 
						|
       processed_low_position_len(OUT)- Processed_low_position length.
 | 
						|
       mode                      (IN) - Mode flags (For future extension. 
 | 
						|
                                        Not used currently)
 | 
						|
   RETURNS
 | 
						|
       OCI_SUCCESS or OCI_ERROR.
 | 
						|
   NOTES
 | 
						|
       None
 | 
						|
*/
 | 
						|
sword OCIXStreamInDetach(
 | 
						|
       OCISvcCtx *svchp, 
 | 
						|
       OCIError  *errhp,
 | 
						|
       ub1       *processed_low_position,
 | 
						|
       ub2       *processed_low_position_len,
 | 
						|
       ub4        mode);
 | 
						|
 | 
						|
/*--------------------- OCIXStreamInProcessedLWMGet -------------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
     OCIXStreamInProcessedLWMGet - OCI XStream In Get LowWatermark 
 | 
						|
   DESCRIPTION
 | 
						|
     Returns XStream inbound server's processed low watermark 
 | 
						|
     cached at the client.
 | 
						|
   PARAMETERS
 | 
						|
     svchp                      (IN/OUT) - OCI service handle
 | 
						|
     errhp                      (IN/OUT) - Error Handle to which errors
 | 
						|
                                           should be reported
 | 
						|
     processed_low_position        (OUT) - Inbound server's cached processed
 | 
						|
                                           low position. Must pre-
 | 
						|
                                           allocate OCI_LCR_MAX_POSITION_LEN 
 | 
						|
                                           bytes for output buffer.
 | 
						|
     processed_low_position_len    (OUT) - Processed_low_position length.
 | 
						|
     mode                           (IN) - Mode flags (For future extension.
 | 
						|
                                           Not used currently)
 | 
						|
   RETURNS
 | 
						|
       OCI_SUCCESS or OCI_ERROR.
 | 
						|
   NOTES
 | 
						|
       None
 | 
						|
*/
 | 
						|
sword OCIXStreamInProcessedLWMGet(
 | 
						|
       OCISvcCtx *svchp,
 | 
						|
       OCIError  *errhp,
 | 
						|
       ub1       *processed_low_position,
 | 
						|
       ub2       *processed_low_position_len,
 | 
						|
       ub4        mode);
 | 
						|
 | 
						|
/*-------------------------- OCIXStreamInFlush ------------------------------*/
 | 
						|
/*
 | 
						|
   NAME
 | 
						|
     OCIXStreamInFlush - OCI XStream In Flush network
 | 
						|
   DESCRIPTION
 | 
						|
     Flushes network and terminates any in-progress OCIXStreamInLCRSend or
 | 
						|
     OCIXStreamInLCRCallbackSend call associated with the given service handle.
 | 
						|
   PARAMETERS
 | 
						|
     svchp                      (IN/OUT) - OCI service handle
 | 
						|
     errhp                      (IN/OUT) - Error Handle to which errors
 | 
						|
                                           should be reported
 | 
						|
     mode                           (IN) - Mode flags (For future extension.
 | 
						|
                                           Not used currently)
 | 
						|
   RETURNS
 | 
						|
     OCI_SUCCESS or OCI_ERROR.
 | 
						|
   NOTES
 | 
						|
     Each call will incur a database round trip to get the server's processed 
 | 
						|
     low-watermark, which the user can retrieve afterward using 
 | 
						|
     OCIXStreamInProcessedLWMGet API. This API should be called only when 
 | 
						|
     there is no LCR to send to the server and the client wants to know the 
 | 
						|
     progress of the attached inbound server.
 | 
						|
 | 
						|
     This call returns OCI_ERROR if it is invoked from the callback functions
 | 
						|
     of OCIXStreamInLCRCallbackSend API.
 | 
						|
 | 
						|
     Client must have attached to an XStream inbound server prior to calling
 | 
						|
     this API. 
 | 
						|
*/
 | 
						|
sword OCIXStreamInFlush(
 | 
						|
       OCISvcCtx *svchp,
 | 
						|
       OCIError  *errhp,
 | 
						|
       ub4        mode);
 | 
						|
 | 
						|
/*---------------------------------------------------------------------------
 | 
						|
                          INTERNAL FUNCTIONS
 | 
						|
  ---------------------------------------------------------------------------*/
 | 
						|
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif /* __cplusplus */
 | 
						|
 | 
						|
#endif                                                  /* OCIXSTREAM_ORACLE */
 |