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 */
 |