Annotation of win32/sql/oracle/include/oci/oci.h, revision 1.1

1.1     ! parser      1: /*
        !             2:  * $Header: /var/lib/cvsroot/parser3/parser3/src/sql/oracle/oracle32/include/oci/oci.h,v 1.1 2001/08/22 14:02:18 parser Exp $
        !             3:  */
        !             4: 
        !             5: /* Copyright (c) Oracle Corporation 1995, 1996, 1997, 1998, 1999. 
        !             6: All Rights Reserved. */
        !             7:  
        !             8: /* 
        !             9:    NAME 
        !            10:      oci.h - V8 Oracle Call Interface public definitions
        !            11: 
        !            12:    DESCRIPTION 
        !            13:      This file defines all the constants and structures required by a V8
        !            14:      OCI programmer.
        !            15: 
        !            16:    RELATED DOCUMENTS 
        !            17:      V8 OCI Functional Specification 
        !            18:      V8 OCI Design Specification
        !            19:      Oracle Call Interface Programmer's Guide Vol 1 and 2
        !            20:  
        !            21:    INSPECTION STATUS 
        !            22:      Inspection date: 
        !            23:      Inspection status: 
        !            24:      Estimated increasing cost defects per page: 
        !            25:      Rule sets: 
        !            26:  
        !            27:    ACCEPTANCE REVIEW STATUS 
        !            28:      Review date: 
        !            29:      Review status: 
        !            30:      Reviewers: 
        !            31:  
        !            32:    PUBLIC FUNCTION(S) 
        !            33:      None
        !            34: 
        !            35:    PRIVATE FUNCTION(S) 
        !            36:      None
        !            37:  
        !            38:    EXAMPLES 
        !            39:  
        !            40:    NOTES 
        !            41: 
        !            42: 
        !            43:    MODIFIED   (MM/DD/YY)
        !            44:    porangas    09/21/99 - Correct lines to 80 characters wide: 974710
        !            45:    slari       08/23/99 - add OCI_DTYPE_UCB
        !            46:    slari       08/20/99 - add OCI_UCBTYPE_REPLACE
        !            47:    sgollapu    08/02/99 - oci sql routing
        !            48:    slari       08/06/99 - rename values for OCI_SERVER_STATUS
        !            49:    slari       08/02/99 - add OCI_ATTR_SERVER_STATUS
        !            50:    tnbui       07/28/99 - Remove OCI_DTYPE_TIMESTAMP_ITZ                       
        !            51:    amangal     07/19/99 - Merge into 8.1.6 : bug 785797
        !            52:    tnbui       07/07/99 - Change ADJUSTMENT modes                              
        !            53:    dsaha       07/07/99 - OCI_SAHRED_EXT
        !            54:    dmwong      06/08/99 - add OCI_ATTR_APPCTX_*
        !            55:    vyanaman    06/23/99 -
        !            56:    vyanaman    06/21/99 - Add new OCI Datetime and Interval descriptors
        !            57:    esoyleme    06/29/99 - expose MTS performance enhancements                  
        !            58:    rshaikh     04/23/99 - add OCI_SQL_VERSION_*
        !            59:    tnbui       05/24/99 - Remove OCIAdjStr                                     
        !            60:    dsaha       05/21/99 - Add OCI_ADJUST_UNK
        !            61:    mluong      05/17/99 - fix merge
        !            62:    tnbui       04/05/99 - ADJUSTMENT values
        !            63:    abrumm      04/16/99 - dpapi: more attributes
        !            64:    dsaha       02/24/99 - Add OCI_SHOW_DML_WARNINGS
        !            65:    jiyang      12/07/98 - Add OCI_NLS_DUAL_CURRENCY
        !            66:    slari       12/07/98 - change OCI_NOMUTEX to OCI_NO_MUTEX
        !            67:    aroy        11/30/98 - change OCI_NOCALLBACK to OCI_NO_UCB
        !            68:    aroy        11/13/98 - add env modes to process modes
        !            69:    slari       09/08/98 - add OCI_FNCODE_SVC2HST and _SVCRH
        !            70:    aroy        09/04/98 - Add OCI_ATTR_MIGSESSION
        !            71:    skray       08/14/98 - server groups for session switching
        !            72:    mluong      08/11/98 - add back OCI_HTYPE_LAST.
        !            73:    aroy        05/25/98 - add process handle type                              
        !            74:    aroy        04/06/98 - add shared mode                                      
        !            75:    slari       07/13/98 -  merge forward to 8.1.4
        !            76:    slari       07/09/98 -  add OCI_BIND_RESERVED_2
        !            77:    slari       07/08/98 -  add OCI_EXACT_FETCH_RESERVED_1
        !            78:    dsaha       07/07/98 -  Add OCI_PARSE_ONLY
        !            79:    dsaha       06/29/98 -  Add OCI_PARSE_ONLY
        !            80:    slari       07/01/98 -  add OCI_BIND_RESERVED_2
        !            81:    sgollapu    06/25/98 -  Fix bug 683565
        !            82:    slari       06/17/98 -  remove OC_FETCH_RESERVED_2
        !            83:    slari       06/11/98 -  add OCI_FETCH_RESERVED_1 and 2
        !            84:    jhasenbe    05/27/98 -  Remove definitions for U-Calls (Unicode)
        !            85:    jiyang      05/18/98 - remove OCI_ATTR_CARTLANG
        !            86:    nbhatt      05/20/98 -  OCI_DEQ_REMOVE_NODATA
        !            87:    nbhatt      05/19/98 - correct AQ opcode
        !            88:    skmishra    05/06/98 - Add precision attribute to Attributes list
        !            89:    aroy        04/20/98 - merge forward 8.0.5 -> 8.1.3
        !            90:    schandra    05/01/98 - OCI sender id
        !            91:    sgollapu    02/19/98 - enhanced array DML
        !            92:    nbhatt      05/15/98 -  AQ listen call
        !            93:    sgollapu    04/27/98 - more attributes
        !            94:    skaluska    04/06/98 - Add OCI_PTYPE_SCHEMA, OCI_PTYPE_DATABASE
        !            95:    slari       04/28/98 - add OCI_ATTR_PDPRC
        !            96:    lchidamb    05/05/98 - change OCI_NAMESPACE_AQ to 1
        !            97:    nbhatt      04/27/98 - AQ Notification Descriptor
        !            98:    abrumm      06/24/98 - more direct path attributes
        !            99:    abrumm      05/27/98 - OCI direct path interface support
        !           100:    abrumm      05/08/98 - OCI direct path interface support
        !           101:    lchidamb    03/02/98 - client notification additions
        !           102:    kkarun      04/17/98 - Add more Interval functions
        !           103:    vyanaman    04/16/98 - Add get/set TZ
        !           104:    kkarun      04/14/98 - Add OCI Datetime shortnames
        !           105:    vyanaman    04/13/98 - Add OCI DateTime and Interval check error codes
        !           106:    kkarun      04/07/98 - Add OCI_DTYPE_DATETIME and OCI_DTYPE_INTERVAL
        !           107:    esoyleme    12/15/97 - support failover callback retry
        !           108:    esoyleme    04/22/98 - merge support for failover callback retry
        !           109:    mluong      04/16/98 - add OCI_FNCODE_LOBLOCATORASSIGN
        !           110:    rkasamse    04/17/98 - add short names for OCIPickler(Memory/Ctx) cart servi
        !           111:    slari       04/10/98 - add OCI_FNCODE_SVCCTXTOLDA
        !           112:    slari       04/09/98 - add OCI_FNCODE_RESET
        !           113:    slari       04/07/98 - add OCI_FNCODE_LOBFILEISOPEN
        !           114:    slari       04/06/98 - add OCI_FNCODE_LOBOPEN
        !           115:    slari       03/20/98 - change OCI_CBTYPE_xxx to OCI_UCBTYPE_xxx
        !           116:    slari       03/18/98 - add OCI_FNCODE_MAXFCN
        !           117:    slari       02/12/98 - add OCI_ENV_NO_USRCB
        !           118:    skabraha    04/09/98 - adding shortnames for OCIFile
        !           119:    rhwu        04/03/98 - Add short names for the OCIThread package
        !           120:    tanguyen    04/03/98 - add OCI_ATTR_xxxx for type inheritance
        !           121:    rkasamse    04/02/98 - add OCI_ATTR_UCI_REFRESH
        !           122:    nramakri    04/01/98 - Add short names for the OCIExtract package
        !           123:    ewaugh      03/31/98 - Add short names for the OCIFormat package.
        !           124:    jhasenbe    04/06/98 - Add definitions for U-Calls (Unicode)
        !           125:                           (OCI_TEXT, OCI_UTEXT, OCI_UTEXT4)
        !           126:    skmishra    03/03/98 - Add OCI_ATTR_PARSE_ERROR_OFFSET
        !           127:    rwessman    03/11/98 - Added OCI_CRED_PROXY for proxy authentication
        !           128:    abrumm      03/31/98 - OCI direct path interface support
        !           129:    nmallava    03/03/98 - add constants for temp lob apis
        !           130:    skotsovo    03/05/98 - resolve merge conflicts
        !           131:    skotsovo    02/24/98 - add OCI_DTYPE_LOC
        !           132:    skaluska    01/21/98 - Add OCI_ATTR_LTYPE
        !           133:    rkasamse    01/06/98 - add OCI_ATTR* for obj cache enhancements
        !           134:    dchatter    01/08/98 - more comments
        !           135:    skabraha    12/02/97 - moved oci1.h to the front of include files.
        !           136:    jiyang      12/18/97 - Add OCI_NLS_MAX_BUFSZ
        !           137:    rhwu        12/02/97 - move oci1.h up
        !           138:    ewaugh      12/15/97 - Add short names for the OCIFormat package.
        !           139:    rkasamse    12/02/97 - Add a constant for memory cartridge services -- OCI_M
        !           140:    nmallava    12/31/97 - open/close for internal lobs
        !           141:    khnguyen    11/27/97 - add OCI_ATTR_LFPRECISION, OCI_ATTR_FSPRECISION
        !           142:    rkasamse    11/03/97 - add types for pickler cartridge services
        !           143:    mluong      11/20/97 - changed ubig_ora to ub4 per skotsovo
        !           144:    ssamu       11/14/97 - add oci1.h
        !           145:    jiyang      11/13/97 - Add NLS service for cartridge
        !           146:    esoyleme    12/15/97 - support failover callback retry
        !           147:    jwijaya     10/21/97 - change OCILobOffset/Length from ubig_ora to ub4
        !           148:    cxcheng     07/28/97 - fix compile with SLSHORTNAME
        !           149:    schandra    06/25/97 - AQ OCI interface
        !           150:    sgollapu    07/25/97 - Add OCI_ATTR_DESC_PUBLIC
        !           151:    cxcheng     06/16/97 - add OCI_ATTR_TDO
        !           152:    skotsovo    06/05/97 - add fntcodes for lob buffering subsystem
        !           153:    esoyleme    05/13/97 - move failover callback prototype
        !           154:    skmishra    05/06/97 - stdc compiler fixes
        !           155:    skmishra    04/22/97 - Provide C++ compatibility
        !           156:    lchidamb    04/19/97 - add OCI_ATTR_SESSLANG
        !           157:    ramkrish    04/15/97 - Add OCI_LOB_BUFFER_(NO)FREE
        !           158:    sgollapu    04/18/97 - Add OCI_ATTR_TABLESPACE
        !           159:    skaluska    04/17/97 - Add OCI_ATTR_SUB_NAME
        !           160:    schandra    04/10/97 - Use long OCI names
        !           161:    aroy        03/27/97 - add OCI_DTYPE_FILE
        !           162:    sgollapu    03/26/97 - Add OCI_OTYPEs
        !           163:    skmishra    04/09/97 - Added constant OCI_ROWID_LEN
        !           164:    dchatter    03/21/97 - add attr OCI_ATTR_IN_V8_MODE
        !           165:    lchidamb    03/21/97 - add OCI_COMMIT_ON_SUCCESS execution mode
        !           166:    skmishra    03/20/97 - Added OCI_ATTR_LOBEMPTY
        !           167:    sgollapu    03/19/97 - Add OCI_ATTR_OVRLD_ID
        !           168:    aroy        03/17/97 - add postprocessing callback
        !           169:    sgollapu    03/15/97 - Add OCI_ATTR_PARAM
        !           170:    cxcheng     02/07/97 - change OCI_PTYPE codes for type method for consistenc
        !           171:    cxcheng     02/05/97 - add OCI_PTYPE_TYPE_RESULT
        !           172:    cxcheng     02/04/97 - rename OCI_PTYPE constants to be more consistent
        !           173:    cxcheng     02/03/97 - add OCI_ATTR, OCI_PTYPE contants for describe type
        !           174:    esoyleme    01/23/97 - merge neerja callback
        !           175:    sgollapu    12/30/96 - Remove OCI_DTYPE_SECURITY
        !           176:    asurpur     12/26/96 - CHanging OCI_NO_AUTH to OCI_AUTH
        !           177:    sgollapu    12/23/96 - Add more attrs to COL, ARG, and SEQ
        !           178:    sgollapu    12/12/96 - Add OCI_DESCRIBE_ONLY
        !           179:    slari       12/11/96 - change prototype of OCICallbackInBind
        !           180:    nbhatt      12/05/96 - "callback"
        !           181:    lchidamb    11/19/96 - handle subclassing
        !           182:    sgollapu    11/09/96 - OCI_PATTR_*
        !           183:    dchatter    11/04/96 - add attr OCI_ATTR_CHRCNT
        !           184:    mluong      11/01/96 - test
        !           185:    cxcheng     10/31/96 - add #defines for OCILobLength etc
        !           186:    dchatter    10/31/96 - add lob read write call back fp defs
        !           187:    dchatter    10/30/96 - more changes
        !           188:    rhari       10/30/96 - Include ociextp.h at the very end
        !           189:    lchidamb    10/22/96 - add fdo attribute for bind/server handle
        !           190:    dchatter    10/22/96 - change attr defn for prefetch parameters & lobs/file
        !           191:                           calls
        !           192:    slari       10/21/96 - add OCI_ENV_NO_MUTEX
        !           193:    rhari       10/25/96 - Include ociextp.h
        !           194:    rxgovind    10/25/96 - add OCI_LOBMAXSIZE, remove OCI_FILE_READWRITE
        !           195:    sgollapu    10/24/96 - Correct OCILogon and OCILogoff
        !           196:    sgollapu    10/24/96 - Correct to OCILogon and OCILogoff
        !           197:    sgollapu    10/21/96 - Add ocilon and ociloff
        !           198:    skaluska    10/31/96 - Add OCI_PTYPE values
        !           199:    sgollapu    10/17/96 - correct OCI_ATTR_SVCCTX to OCI_ATTR_SERVER
        !           200:    rwessman    10/16/96 - Added security functions and fixed olint errors.
        !           201:    sthakur     10/14/96 - add more COR attributes
        !           202:    cxcheng     10/14/96 - re-enable LOB functions
        !           203:    sgollapu    10/10/96 - Add ocibdp and ocibdn
        !           204:    slari       10/07/96 - add back OCIRowid
        !           205:    aroy        10/08/96 -  add typedef ocibfill for PRO*C
        !           206:    mluong      10/11/96 - replace OCI_ATTR_CHARSET* with OCI_ATTR_CHARSET_*
        !           207:    cxcheng     10/10/96 - temporarily take out #define for lob functions
        !           208:    sgollapu    10/02/96 - Rename OCI functions and datatypes
        !           209:    skotsovo    10/01/96 - move orl lob fnts to oci
        !           210:    aroy        09/10/96 - fix merge errors
        !           211:    aroy        08/19/96 - NCHAR support
        !           212:    jboonleu    09/05/96 - add OCI attributes for object cache
        !           213:    dchatter    08/20/96 - HTYPE ranges from 1-50; DTYPE from 50-255
        !           214:    slari       08/06/96 - define OCI_DTYPE_ROWID
        !           215:    sthakur     08/14/96 - complex object support
        !           216:    schandra    06/17/96 - Convert XA to use new OCI
        !           217:    abrik       08/15/96 - OCI_ATTR_HEAPALLOC added
        !           218:    aroy        07/17/96 - terminology change: ocilobd => ocilobl
        !           219:    aroy        07/03/96 - add lob typedefs for Pro*C
        !           220:    slari       06/28/96 - add OCI_ATTR_STMT_TYPE
        !           221:    lchidamb    06/26/96 - reorg #ifndef
        !           222:    schandra    05/31/96 - attribute types for internal and external client name
        !           223:    asurpur     05/30/96 - Changing the value of mode
        !           224:    schandra    05/18/96 - OCI_TRANS_TWOPHASE -> 0x00000001 to 0x00100000
        !           225:    slari       05/30/96 - add callback function prototypes
        !           226:    jbellemo    05/23/96 - remove ociisc
        !           227:    schandra    04/23/96 - loosely-coupled branches
        !           228:    asurpur     05/15/96 - New mode for ocicpw
        !           229:    aroy        04/24/96 - making ocihandles opaque
        !           230:    slari       04/18/96 - add missing defines
        !           231:    schandra    03/27/96 - V8OCI - add transaction related calls
        !           232:    dchatter    04/01/96 - add OCI_FILE options
        !           233:    dchatter    03/21/96 - add oci2lda conversion routines
        !           234:    dchatter    03/07/96 - add OCI piece definition
        !           235:    slari       03/12/96 - add describe attributes
        !           236:    slari       03/12/96 - add OCI_OTYPE_QUERY
        !           237:    aroy        02/28/96 - Add column attributes
        !           238:    slari       02/09/96 - add OCI_OBJECT
        !           239:    slari       02/07/96 - add OCI_HYTPE_DSC
        !           240:    aroy        01/10/96 - adding function code defines...
        !           241:    dchatter    01/03/96 - define OCI_NON_BLOCKING
        !           242:    dchatter    01/02/96 - Add Any descriptor
        !           243:    dchatter    01/02/96 - Add Select List descriptor
        !           244:    dchatter    12/29/95 - V8 OCI definitions
        !           245:    dchatter    12/29/95 - Creation
        !           246: 
        !           247: */
        !           248: 
        !           249: #ifdef __cplusplus
        !           250: extern "C" {
        !           251: #endif
        !           252: 
        !           253: #ifndef ORATYPES 
        !           254: #include <oratypes.h> 
        !           255: #endif
        !           256:  
        !           257: #ifndef OCIDFN
        !           258: #include <ocidfn.h>
        !           259: #endif
        !           260: 
        !           261: #ifndef OCI_ORACLE
        !           262: # define OCI_ORACLE
        !           263: 
        !           264:  
        !           265: /*--------------------------------------------------------------------------- 
        !           266:  Short names provided for platforms which do not allow extended symbolic names 
        !           267:   ---------------------------------------------------------------------------*/
        !           268: 
        !           269: #ifdef SLSHORTNAME
        !           270: /* Translation of the long function/type names to short names for IBM only */
        !           271: /* maybe lint will use this too */
        !           272: #define OCISessionEnd              ocitac
        !           273: #define OCIResultSetToStmt         ocirs2sh
        !           274: #define OCISessionBegin            ociauth
        !           275: #define OCIServerAttach            ociatch
        !           276: #define OCIDescriptorAlloc         ocigdesc
        !           277: #define OCIServerDetach            ocidtch
        !           278: #define OCIDescriptorFree          ocifdesc
        !           279: #define OCIServerVersion           ocivers
        !           280: #define OCIDescribeAny             ocidsca
        !           281: #define OCIBindDynamic             ocibda
        !           282: #define OCIBindByName              ocibdn
        !           283: #define OCIBindByPos               ocibdp
        !           284: #define OCIErrorGet                ocigdr
        !           285: #define OCIBindArrayOfStruct       ocibsa
        !           286: #define OCIEnvInit                 ociinit
        !           287: #define OCIBindObject              ocibndt
        !           288: #define OCIHandleAlloc             ocighndl
        !           289: #define OCIHandleFree              ocifhndl
        !           290: #ifdef NEVER
        !           291: #define OCIStmtBindByPos           ocibndp
        !           292: #define OCIStmtBindByName          ocibndn
        !           293: #endif
        !           294: #define OCIAttrGet                 ocigattr
        !           295: #define OCIDefineByPos             ocidfne
        !           296: #define OCIAttrSet                 ocisattr
        !           297: #define OCIDefineDynamic           ociddf
        !           298: #define OCILdaToSvcCtx             ocild2sv
        !           299: #define OCIDefineArrayOfStruct     ocidarr
        !           300: #define OCIInitialize              ocipi
        !           301: #define OCIDefineObject            ocidndt
        !           302: #define OCIStmtExecute             ociexec
        !           303: #define OCILobAppend               ocilfap
        !           304: #define OCILobOpenFile             ocifopn
        !           305: #define OCILobCloseFile            ocifcls
        !           306: #define OCILobLocator              ocilobd
        !           307: #define OCILobCopy                 ocilfcp
        !           308: #define OCILobFileCreate           ocifcrt
        !           309: #define OCILobFileDelete           ocifdel
        !           310: #define OCILobGetLength            ocilfln
        !           311: #define OCILobWrite                ocilfwr
        !           312: #define OCILobRead                 ocilfrd
        !           313: #define OCILobErase                ocilfer
        !           314: #define OCILobTrim                 ocilftr
        !           315: 
        !           316: #define OCIStmtFetch               ocifch
        !           317: #define OCIStmtGetBindInfo         ocigbp
        !           318: #define OCIStmtGetPieceInfo        ocigpi
        !           319: #define OCIStmtPrepare             ocireq
        !           320: #define OCIStmtSetPieceInfo        ocispi
        !           321: #define OCISvcCtxToLda             ocisv2ld
        !           322: #define OCITransCommit             ocitxcm
        !           323: #define OCITransDetach             ocitxdt
        !           324: #define OCITransForget             ocitxfgt
        !           325: #define OCITransPrepare            ocitxpre
        !           326: #define OCITransRollback           ocitxrl
        !           327: #define OCIPasswordChange          ocicpw
        !           328: #define OCITransStart              ocitxst
        !           329: #define OCITransMultiPrepare       ocitxmp
        !           330: 
        !           331: #define OCIBreak                   ocibreak
        !           332: #define OCIParamGet                ocigparm
        !           333: #define OCIParamSet                ocisparm
        !           334: 
        !           335: #define OCISecurityOpenWallet           ocizwOpenWallet
        !           336: #define OCISecurityCloseWallet          ocizwCloseWallet
        !           337: #define OCISecurityCreateWallet         ocizwCreateWallet
        !           338: #define OCISecurityDestroyWallet        ocizwDestroyWallet
        !           339: #define OCISecurityStorePersona         ocizeStorePersona
        !           340: #define OCISecurityOpenPersona          ocizeOpenPersona
        !           341: #define OCISecurityClosePersona         ocizeClosePersona
        !           342: #define OCISecurityRemovePersona        ocizeRemovePersona
        !           343: #define OCISecurityCreatePersona        ocizeCreatePersona
        !           344: #define OCISecuritySetProtection        ocizeSetProtection
        !           345: #define OCISecurityGetProtection        ocizeGetProtection
        !           346: #define OCISecurityRemoveIdentity       ociziRemoveIdentity
        !           347: #define OCISecurityCreateIdentity       ociziCreateIdentity
        !           348: #define OCISecurityAbortIdentity        ociziAbortIdentity
        !           349: #define OCISecurityFreeIdentity         ociziFreeIdentity
        !           350: #define OCISecurityStoreTrustedIdentity ociziStoreTrustedIdentity
        !           351: #define OCISecuritySign                 ocizSign
        !           352: #define OCISecuritySignExpansion        ocizxSignExpansion
        !           353: #define OCISecurityVerify               ocizVerify
        !           354: #define OCISecurityValidate             ocizValidate
        !           355: #define OCISecuritySignDetached         ocizsd_SignDetached
        !           356: #define OCISecuritySignDetExpansion     ocizxsd_SignDetachedExpansion
        !           357: #define OCISecurityVerifyDetached       ocizved_VerifyDetached
        !           358: #define OCISecurity_PKEncrypt           ocizkec_PKEncrypt
        !           359: #define OCISecurityPKEncryptExpansion   ocizxkec_PKEncryptExpansion
        !           360: #define OCISecurityPKDecrypt            ocizkdc_PKDecrypt
        !           361: #define OCISecurityEncrypt              ocizEncrypt
        !           362: #define OCISecurityEncryptExpansion     ocizxEncryptExpansion
        !           363: #define OCISecurityDecrypt              ocizDecrypt
        !           364: #define OCISecurityEnvelope             ocizEnvelope
        !           365: #define OCISecurityDeEnvelope           ocizDeEnvelope
        !           366: #define OCISecurityKeyedHash            ocizKeyedHash
        !           367: #define OCISecurityKeyedHashExpansion   ocizxKeyedHashExpansion
        !           368: #define OCISecurityHash                 ocizHash
        !           369: #define OCISecurityHashExpansion        ocizxHashExpansion
        !           370: #define OCISecuritySeedRandom           ocizSeedRandom
        !           371: #define OCISecurityRandomBytes          ocizrb_RandomBytes
        !           372: #define OCISecurityRandomNumber         ocizrn_RandomNumber
        !           373: #define OCISecurityInitBlock            ocizibInitBlock
        !           374: #define OCISecurityReuseBlock           ocizrbReuseBlock
        !           375: #define OCISecurityPurgeBlock           ocizpbPurgeBlock
        !           376: #define OCISecuritySetBlock             ocizsbSetBlock
        !           377: #define OCISecurityGetIdentity          ocizgi_GetIdentity
        !           378: 
        !           379: #define OCIExtractInit             ocixeini
        !           380: #define OCIExtractTerm             ocixetrm
        !           381: #define OCIExtractReset            ocixerst
        !           382: #define OCIExtractSetNumKeys       ocixesnk
        !           383: #define OCIExtractSetKey           ocixesk
        !           384: #define OCIExtractFromFile         ocixeff
        !           385: #define OCIExtractFromStr          ocixefs
        !           386: #define OCIExtractToInt            ocixeti
        !           387: #define OCIExtractToBool           ocixetb
        !           388: #define OCIExtractToStr            ocixets
        !           389: #define OCIExtractToOCINum         ocixeton
        !           390: #define OCIExtractToList           ocixetl
        !           391: #define OCIExtractFromList         ocixefl
        !           392: 
        !           393: #define OCIDateTimeGetTime         ocidt01_GetTime
        !           394: #define OCIDateTimeGetDate         ocidt02_GetDate
        !           395: #define OCIDateTimeGetTimeZoneOffset     ocidt03_GetTZ
        !           396: #define OCIDateTimeSysTimeStamp    ocidt07_SysTS
        !           397: #define OCIDateTimeAssign          ocidt08_Assign 
        !           398: #define OCIDateTimeToText          ocidt09_ToText
        !           399: #define OCIDateTimeFromText        ocidt10_FromText
        !           400: #define OCIDateTimeCompare         ocidt11_Compare
        !           401: #define OCIDateTimeCheck           ocidt12_Check
        !           402: #define OCIDateTimeConvert         ocidt13_Convert
        !           403: #define OCIDateTimeSubtract        ocidt14_Subtract
        !           404: #define OCIDateTimeIntervalAdd     ocidt15_IntervalAdd
        !           405: #define OCIDateTimeIntervalSub     ocidt16_IntervalSub
        !           406: 
        !           407: #define OCIIntervalSubtract        ociint01_Subtract  
        !           408: #define OCIIntervalAdd             ociint02_Add  
        !           409: #define OCIIntervalMultiply        ociint03_Multiply  
        !           410: #define OCIIntervalDivide          ociint04_Divide  
        !           411: #define OCIIntervalCompare         ociint05_Compare  
        !           412: #define OCIIntervalFromText        ociint06_FromText  
        !           413: #define OCIIntervalToText          ociint07_ToText  
        !           414: #define OCIIntervalToNumber        ociint08_ToNumber  
        !           415: #define OCIIntervalCheck           ociint09_Check  
        !           416: #define OCIIntervalAssign          ociint10_Assign  
        !           417: #define OCIIntervalGetYearMonth    ociint11_GetYearMonth
        !           418: #define OCIIntervalSetYearMonth    ociint12_SetYearMonth
        !           419: #define OCIIntervalGetDaySecond    ociint13_GetDaySecond
        !           420: #define OCIIntervalSetDaySecond    ociint14_SetDaySecond
        !           421: #define OCIIntervalFromNumber      ociint15_FromNumber
        !           422: 
        !           423: #define OCIFormatInit              ocixs01_Init
        !           424: #define OCIFormatString            ocixs02_Format
        !           425: #define OCIFormatTerm              ocixs03_Term
        !           426: #define OCIFormatTUb1              ocixs04_TUb1
        !           427: #define OCIFormatTUb2              ocixs05_TUb2
        !           428: #define OCIFormatTUb4              ocixs06_TUb4
        !           429: #define OCIFormatTUword            ocixs07_TUword
        !           430: #define OCIFormatTUbig_ora         ocixs08_TUbig_ora
        !           431: #define OCIFormatTSb1              ocixs09_TSb1
        !           432: #define OCIFormatTSb2              ocixs10_TSb2
        !           433: #define OCIFormatTSb4              ocixs11_TSb4
        !           434: #define OCIFormatTSword            ocixs12_TSword
        !           435: #define OCIFormatTSbig_ora         ocixs13_TSbig_ora
        !           436: #define OCIFormatTEb1              ocixs14_TEb1
        !           437: #define OCIFormatTEb2              ocixs15_TEb2
        !           438: #define OCIFormatTEb4              ocixs16_TEb4
        !           439: #define OCIFormatTEword            ocixs17_TEword
        !           440: #define OCIFormatTChar             ocixs18_TChar
        !           441: #define OCIFormatTText             ocixs19_TText
        !           442: #define OCIFormatTDouble           ocixs20_TDouble
        !           443: #define OCIFormatTDvoid            ocixs21_TDvoid
        !           444: #define OCIFormatTEnd              ocixs22_TEnd
        !           445: 
        !           446: #define OCIFileInit                ocifinit
        !           447: #define OCIFileTerm                ocifterm
        !           448: #define OCIFileOpen                ocifopen
        !           449: #define OCIFileClose               ocifclose
        !           450: #define OCIFileRead                ocifread
        !           451: #define OCIFileWrite               ocifwrite
        !           452: #define OCIFileSeek                ocifseek
        !           453: #define OCIFileExists              ocifexists
        !           454: #define OCIFileGetLength           ocifglen
        !           455: #define OCIFileFlush               ocifflush
        !           456: 
        !           457: 
        !           458: /* OCIThread short name */
        !           459: #define OCIThreadProcessInit       ocitt01_ProcessInit
        !           460: #define OCIThreadInit              ocitt02_Init
        !           461: #define OCIThreadTerm              ocitt03_Term
        !           462: #define OCIThreadIsMulti           ocitt04_IsMulti
        !           463: #define OCIThreadMutexInit         ocitt05_MutexInit
        !           464: #define OCIThreadMutexDestroy      ocitt06_MutexDestroy
        !           465: #define OCIThreadMutexAcquire      ocitt07_MutexAcquire
        !           466: #define OCIThreadMutexRelease      ocitt08_MutexRelease
        !           467: #define OCIThreadKeyInit           ocitt09_KeyInit
        !           468: #define OCIThreadKeyDestroy        ocitt10_KeyDestroy
        !           469: #define OCIThreadKeyGet            ocitt11_KeyGet
        !           470: #define OCIThreadKeySet            ocitt12_KeySet
        !           471: #define OCIThreadIdInit            ocitt13_IdInit
        !           472: #define OCIThreadIdDestroy         ocitt14_IdDestroy
        !           473: #define OCIThreadIdSet             ocitt15_IdSet
        !           474: #define OCIThreadIdSetNull         ocitt16_IdSetNull
        !           475: #define OCIThreadIdGet             ocitt17_IdGet
        !           476: #define OCIThreadIdSame            ocitt18_IdSame
        !           477: #define OCIThreadIdNull            ocitt19_IdNull
        !           478: #define OCIThreadHndInit           ocitt20_HndInit
        !           479: #define OCIThreadHndDestroy        ocitt21_HndDestroy
        !           480: #define OCIThreadCreate            ocitt22_Create
        !           481: #define OCIThreadJoin              ocitt23_Join
        !           482: #define OCIThreadClose             ocitt24_Close
        !           483: #define OCIThreadHandleGet         ocitt25_HandleGet
        !           484: 
        !           485: /* Translation between the old and new datatypes */
        !           486: 
        !           487: #define OCISession                 ociusrh
        !           488: #define OCIBind                    ocibndh
        !           489: #define OCIDescribe                ocidsch
        !           490: #define OCIDefine                  ocidfnh
        !           491: #define OCIEnv                     ocienvh
        !           492: #define OCIError                   ocierrh
        !           493: 
        !           494: #define OCILob                     ocilobd
        !           495: #define OCILobLength               ocillen
        !           496: #define OCILobMode                 ocilmo
        !           497: #define OCILobOffset               ociloff
        !           498: 
        !           499: #define OCILobLocator              ocilobd
        !           500: #define OCIBlobLocator            ociblobl
        !           501: #define OCIClobLocator            ociclobl
        !           502: #define OCIBFileLocator            ocibfilel
        !           503: 
        !           504: #define OCIParam                   ocipard
        !           505: #define OCIResult                  ocirstd
        !           506: #define OCISnapshot                ocisnad
        !           507: #define OCIServer                  ocisrvh
        !           508: #define OCIStmt                    ocistmh
        !           509: #define OCISvcCtx                  ocisvch
        !           510: #define OCITrans                   ocitxnh
        !           511: #define OCICallbackInBind          ocibicfp
        !           512: #define OCICallbackOutBind         ocibocfp
        !           513: #define OCICallbackDefine          ocidcfp
        !           514: #define OCICallbackLobRead         ocilrfp
        !           515: #define OCICallbackLobWrite        ocilwfp
        !           516: #define OCISecurity                ociossh
        !           517: #define OCIComplexObject           ocicorh
        !           518: #define OCIComplexObjectComp       ocicord
        !           519: #define OCIRowid                   ociridd
        !           520: 
        !           521: #endif /* ifdef SLSHORTNAME */
        !           522: 
        !           523: /*--------------------------------------------------------------------------- 
        !           524:                      PUBLIC TYPES AND CONSTANTS 
        !           525:   ---------------------------------------------------------------------------*/
        !           526: 
        !           527: /*-----------------------------Handle Types----------------------------------*/
        !           528:                                            /* handle types range from 1 - 49 */
        !           529: #define OCI_HTYPE_FIRST          1             /* start value of handle type */
        !           530: #define OCI_HTYPE_ENV            1                     /* environment handle */
        !           531: #define OCI_HTYPE_ERROR          2                           /* error handle */
        !           532: #define OCI_HTYPE_SVCCTX         3                         /* service handle */
        !           533: #define OCI_HTYPE_STMT           4                       /* statement handle */
        !           534: #define OCI_HTYPE_BIND           5                            /* bind handle */
        !           535: #define OCI_HTYPE_DEFINE         6                          /* define handle */
        !           536: #define OCI_HTYPE_DESCRIBE       7                        /* describe handle */
        !           537: #define OCI_HTYPE_SERVER         8                          /* server handle */
        !           538: #define OCI_HTYPE_SESSION        9                  /* authentication handle */
        !           539: #define OCI_HTYPE_TRANS         10                     /* transaction handle */
        !           540: #define OCI_HTYPE_COMPLEXOBJECT 11        /* complex object retrieval handle */
        !           541: #define OCI_HTYPE_SECURITY      12                        /* security handle */
        !           542: #define OCI_HTYPE_SUBSCRIPTION  13                    /* subscription handle */
        !           543: #define OCI_HTYPE_DIRPATH_CTX   14                    /* direct path context */
        !           544: #define OCI_HTYPE_DIRPATH_COLUMN_ARRAY 15        /* direct path column array */
        !           545: #define OCI_HTYPE_DIRPATH_STREAM       16              /* direct path stream */
        !           546: #define OCI_HTYPE_PROC          17                         /* process handle */
        !           547: #define OCI_HTYPE_LAST          17            /* last value of a handle type */
        !           548: 
        !           549: /*---------------------------------------------------------------------------*/
        !           550: 
        !           551: 
        !           552: /*-------------------------Descriptor Types----------------------------------*/
        !           553:                                     /* descriptor values range from 50 - 255 */
        !           554: #define OCI_DTYPE_FIRST 50                 /* start value of descriptor type */
        !           555: #define OCI_DTYPE_LOB 50                                     /* lob  locator */
        !           556: #define OCI_DTYPE_SNAP 51                             /* snapshot descriptor */
        !           557: #define OCI_DTYPE_RSET 52                           /* result set descriptor */
        !           558: #define OCI_DTYPE_PARAM 53  /* a parameter descriptor obtained from ocigparm */
        !           559: #define OCI_DTYPE_ROWID  54                              /* rowid descriptor */
        !           560: #define OCI_DTYPE_COMPLEXOBJECTCOMP  55
        !           561:                                       /* complex object retrieval descriptor */
        !           562: #define OCI_DTYPE_FILE 56                                /* File Lob locator */
        !           563: #define        OCI_DTYPE_AQENQ_OPTIONS 57                        /* enqueue options */
        !           564: #define        OCI_DTYPE_AQDEQ_OPTIONS 58                        /* dequeue options */
        !           565: #define OCI_DTYPE_AQMSG_PROPERTIES 59                 /* message properties */
        !           566: #define OCI_DTYPE_AQAGENT 60                                    /* aq agent */
        !           567: #define OCI_DTYPE_LOCATOR 61                                  /* LOB locator */
        !           568: #define OCI_DTYPE_INTERVAL_YM 62                 /* Interval year month */
        !           569: #define OCI_DTYPE_INTERVAL_DS 63                 /* Interval day second */
        !           570: #define OCI_DTYPE_AQNFY_DESCRIPTOR  64              /* AQ notify descriptor */
        !           571: #define OCI_DTYPE_DATE 65                            /* Date */
        !           572: #define OCI_DTYPE_TIME 66                            /* Time */
        !           573: #define OCI_DTYPE_TIME_TZ 67                         /* Time with timezone */
        !           574: #define OCI_DTYPE_TIMESTAMP 68                       /* Timestamp */
        !           575: #define OCI_DTYPE_TIMESTAMP_TZ 69                /* Timestamp with timezone */
        !           576: #define OCI_DTYPE_TIMESTAMP_LTZ 70             /* Timestamp with local tz */
        !           577: #define OCI_DTYPE_UCB          71               /* user callback descriptor */
        !           578: #define OCI_DTYPE_LAST         71        /* last value of a descriptor type */
        !           579: /*---------------------------------------------------------------------------*/
        !           580: 
        !           581: /*--------------------------------LOB types ---------------------------------*/
        !           582: #define OCI_TEMP_BLOB 1                /* LOB type - BLOB ------------------ */
        !           583: #define OCI_TEMP_CLOB 2                /* LOB type - CLOB ------------------ */
        !           584: /*---------------------------------------------------------------------------*/
        !           585: 
        !           586: /*-------------------------Object Ptr Types----------------------------------*/
        !           587: #define OCI_OTYPE_NAME 1                                     /* object name */
        !           588: #define OCI_OTYPE_REF  2                                      /* REF to TDO */
        !           589: #define OCI_OTYPE_PTR  3                                      /* PTR to TDO */
        !           590: /*---------------------------------------------------------------------------*/
        !           591: 
        !           592: /*=============================Attribute Types===============================*/
        !           593: /* 
        !           594:    Note: All attributes are global.  New attibutes should be added to the end
        !           595:    of the list. Before you add an attribute see if an existing one can be 
        !           596:    used for your handle. 
        !           597: 
        !           598:    If you see any holes please use the holes first. 
        !           599:  
        !           600: */
        !           601: /*===========================================================================*/
        !           602: 
        !           603: 
        !           604: #define OCI_ATTR_FNCODE  1                          /* the OCI function code */
        !           605: #define OCI_ATTR_OBJECT   2 /* is the environment initialized in object mode */
        !           606: #define OCI_ATTR_NONBLOCKING_MODE  3                    /* non blocking mode */
        !           607: #define OCI_ATTR_SQLCODE  4                                  /* the SQL verb */
        !           608: #define OCI_ATTR_ENV  5                            /* the environment handle */
        !           609: #define OCI_ATTR_SERVER 6                               /* the server handle */
        !           610: #define OCI_ATTR_SESSION 7                        /* the user session handle */
        !           611: #define OCI_ATTR_TRANS   8                         /* the transaction handle */
        !           612: #define OCI_ATTR_ROW_COUNT   9                  /* the rows processed so far */
        !           613: #define OCI_ATTR_SQLFNCODE 10               /* the SQL verb of the statement */
        !           614: #define OCI_ATTR_PREFETCH_ROWS  11    /* sets the number of rows to prefetch */
        !           615: #define OCI_ATTR_NESTED_PREFETCH_ROWS 12 /* the prefetch rows of nested table*/
        !           616: #define OCI_ATTR_PREFETCH_MEMORY 13         /* memory limit for rows fetched */
        !           617: #define OCI_ATTR_NESTED_PREFETCH_MEMORY 14   /* memory limit for nested rows */
        !           618: #define OCI_ATTR_CHAR_COUNT  15 
        !           619:                     /* this specifies the bind and define size in characters */
        !           620: #define OCI_ATTR_PDSCL   16                          /* packed decimal scale */
        !           621: #define OCI_ATTR_FSPRECISION OCI_ATTR_PDSCL   
        !           622:                                           /* fs prec for datetime data types */
        !           623: #define OCI_ATTR_PDPRC   17                         /* packed decimal format */
        !           624: #define OCI_ATTR_LFPRECISION OCI_ATTR_PDPRC 
        !           625:                                           /* fs prec for datetime data types */
        !           626: #define OCI_ATTR_PARAM_COUNT 18       /* number of column in the select list */
        !           627: #define OCI_ATTR_ROWID   19                                     /* the rowid */
        !           628: #define OCI_ATTR_CHARSET  20                      /* the character set value */
        !           629: #define OCI_ATTR_NCHAR   21                                    /* NCHAR type */
        !           630: #define OCI_ATTR_USERNAME 22                           /* username attribute */
        !           631: #define OCI_ATTR_PASSWORD 23                           /* password attribute */
        !           632: #define OCI_ATTR_STMT_TYPE   24                            /* statement type */
        !           633: #define OCI_ATTR_INTERNAL_NAME   25             /* user friendly global name */
        !           634: #define OCI_ATTR_EXTERNAL_NAME   26      /* the internal name for global txn */
        !           635: #define OCI_ATTR_XID     27           /* XOPEN defined global transaction id */
        !           636: #define OCI_ATTR_TRANS_LOCK 28                                            /* */
        !           637: #define OCI_ATTR_TRANS_NAME 29    /* string to identify a global transaction */
        !           638: #define OCI_ATTR_HEAPALLOC 30                /* memory allocated on the heap */
        !           639: #define OCI_ATTR_CHARSET_ID 31                           /* Character Set ID */
        !           640: #define OCI_ATTR_CHARSET_FORM 32                       /* Character Set Form */
        !           641: #define OCI_ATTR_MAXDATA_SIZE 33       /* Maximumsize of data on the server  */
        !           642: #define OCI_ATTR_CACHE_OPT_SIZE 34              /* object cache optimal size */
        !           643: #define OCI_ATTR_CACHE_MAX_SIZE 35   /* object cache maximum size percentage */
        !           644: #define OCI_ATTR_PINOPTION 36             /* object cache default pin option */
        !           645: #define OCI_ATTR_ALLOC_DURATION 37
        !           646:                                  /* object cache default allocation duration */
        !           647: #define OCI_ATTR_PIN_DURATION 38        /* object cache default pin duration */
        !           648: #define OCI_ATTR_FDO          39       /* Format Descriptor object attribute */
        !           649: #define OCI_ATTR_POSTPROCESSING_CALLBACK 40
        !           650:                                          /* Callback to process outbind data */
        !           651: #define OCI_ATTR_POSTPROCESSING_CONTEXT 41
        !           652:                                  /* Callback context to process outbind data */
        !           653: #define OCI_ATTR_ROWS_RETURNED 42
        !           654:                /* Number of rows returned in current iter - for Bind handles */
        !           655: #define OCI_ATTR_FOCBK        43              /* Failover Callback attribute */
        !           656: #define OCI_ATTR_IN_V8_MODE   44 /* is the server/service context in V8 mode */
        !           657: #define OCI_ATTR_LOBEMPTY     45                              /* empty lob ? */
        !           658: #define OCI_ATTR_SESSLANG     46                  /* session language handle */
        !           659: 
        !           660: #define OCI_ATTR_VISIBILITY            47                     /* visibility */
        !           661: #define OCI_ATTR_RELATIVE_MSGID                48            /* relative message id */
        !           662: #define OCI_ATTR_SEQUENCE_DEVIATION    49             /* sequence deviation */
        !           663: 
        !           664: #define OCI_ATTR_CONSUMER_NAME         50                  /* consumer name */
        !           665: #define OCI_ATTR_DEQ_MODE              51                   /* dequeue mode */
        !           666: #define OCI_ATTR_NAVIGATION            52                     /* navigation */
        !           667: #define OCI_ATTR_WAIT                  53                           /* wait */
        !           668: #define OCI_ATTR_DEQ_MSGID             54             /* dequeue message id */
        !           669: 
        !           670: #define OCI_ATTR_PRIORITY              55                       /* priority */
        !           671: #define OCI_ATTR_DELAY                 56                          /* delay */
        !           672: #define OCI_ATTR_EXPIRATION            57                     /* expiration */
        !           673: #define OCI_ATTR_CORRELATION           58                 /* correlation id */
        !           674: #define OCI_ATTR_ATTEMPTS              59                  /* # of attempts */
        !           675: #define OCI_ATTR_RECIPIENT_LIST                60                 /* recipient list */
        !           676: #define OCI_ATTR_EXCEPTION_QUEUE       61           /* exception queue name */
        !           677: #define OCI_ATTR_ENQ_TIME              62 /* enqueue time (only OCIAttrGet) */
        !           678: #define OCI_ATTR_MSG_STATE             63/* message state (only OCIAttrGet) */
        !           679:                                                    /* NOTE: 64-66 used below */
        !           680: #define OCI_ATTR_AGENT_NAME            64                     /* agent name */
        !           681: #define OCI_ATTR_AGENT_ADDRESS         65                  /* agent address */
        !           682: #define OCI_ATTR_AGENT_PROTOCOL                66                 /* agent protocol */
        !           683: 
        !           684: #define OCI_ATTR_SENDER_ID             68                      /* sender id */
        !           685: #define OCI_ATTR_ORIGINAL_MSGID                69            /* original message id */
        !           686: 
        !           687: #define OCI_ATTR_QUEUE_NAME            70                     /* queue name */
        !           688: #define OCI_ATTR_NFY_MSGID              71                    /* message id */
        !           689: #define OCI_ATTR_MSG_PROP               72            /* message properties */
        !           690: 
        !           691: #define OCI_ATTR_NUM_DML_ERRORS         73       /* num of errs in array DML */
        !           692: #define OCI_ATTR_DML_ROW_OFFSET         74        /* row offset in the array */
        !           693: 
        !           694: #define OCI_ATTR_DATEFORMAT             75     /* default date format string */
        !           695: #define OCI_ATTR_BUF_ADDR               76                 /* buffer address */
        !           696: #define OCI_ATTR_BUF_SIZE               77                    /* buffer size */
        !           697: #define OCI_ATTR_DIRPATH_MODE           78  /* mode of direct path operation */
        !           698: #define OCI_ATTR_DIRPATH_NOLOG          79               /* nologging option */
        !           699: #define OCI_ATTR_DIRPATH_PARALLEL       80     /* parallel (temp seg) option */
        !           700: #define OCI_ATTR_NUM_ROWS               81 /* number of rows in column array */
        !           701:                                   /* NOTE that OCI_ATTR_NUM_COLS is a column
        !           702:                                   * array attribute too.
        !           703:                                   */
        !           704: #define OCI_ATTR_COL_COUNT              82        /* columns of column array
        !           705:                                                     processed so far.       */
        !           706: #define OCI_ATTR_STREAM_OFFSET          83  /* str off of last row processed */
        !           707: #define OCI_ATTR_SHARED_HEAPALLOC       84    /* Shared Heap Allocation Size */
        !           708: 
        !           709: #define OCI_ATTR_SERVER_GROUP           85              /* server group name */
        !           710: 
        !           711: #define OCI_ATTR_MIGSESSION             86   /* migratable session attribute */
        !           712: 
        !           713: #define OCI_ATTR_NOCACHE                87                 /* Temporary LOBs */
        !           714: 
        !           715: #define OCI_ATTR_MEMPOOL_SIZE           88                      /* Pool Size */
        !           716: #define OCI_ATTR_MEMPOOL_INSTNAME       89                  /* Instance name */
        !           717: #define OCI_ATTR_MEMPOOL_APPNAME        90               /* Application name */
        !           718: #define OCI_ATTR_MEMPOOL_HOMENAME       91            /* Home Directory name */
        !           719: #define OCI_ATTR_MEMPOOL_MODEL          92     /* Pool Model (proc,thrd,both)*/
        !           720: #define OCI_ATTR_MODES                  93                          /* Modes */
        !           721: 
        !           722: #define OCI_ATTR_SUBSCR_NAME            94           /* name of subscription */
        !           723: #define OCI_ATTR_SUBSCR_CALLBACK        95            /* associated callback */
        !           724: #define OCI_ATTR_SUBSCR_CTX             96    /* associated callback context */
        !           725: #define OCI_ATTR_SUBSCR_PAYLOAD         97             /* associated payload */
        !           726: #define OCI_ATTR_SUBSCR_NAMESPACE       98           /* associated namespace */
        !           727: 
        !           728: #define OCI_ATTR_PROXY_CREDENTIALS      99         /* Proxy user credentials */
        !           729: #define OCI_ATTR_INITIAL_CLIENT_ROLES  100       /* Initial client role list */
        !           730: 
        !           731: #define OCI_ATTR_UNK              101                   /* unknown attribute */
        !           732: #define OCI_ATTR_NUM_COLS         102                   /* number of columns */
        !           733: #define OCI_ATTR_LIST_COLUMNS     103        /* parameter of the column list */
        !           734: #define OCI_ATTR_RDBA             104           /* DBA of the segment header */
        !           735: #define OCI_ATTR_CLUSTERED        105      /* whether the table is clustered */
        !           736: #define OCI_ATTR_PARTITIONED      106    /* whether the table is partitioned */
        !           737: #define OCI_ATTR_INDEX_ONLY       107     /* whether the table is index only */
        !           738: #define OCI_ATTR_LIST_ARGUMENTS   108      /* parameter of the argument list */
        !           739: #define OCI_ATTR_LIST_SUBPROGRAMS 109    /* parameter of the subprogram list */
        !           740: #define OCI_ATTR_REF_TDO          110          /* REF to the type descriptor */
        !           741: #define OCI_ATTR_LINK             111              /* the database link name */
        !           742: #define OCI_ATTR_MIN              112                       /* minimum value */
        !           743: #define OCI_ATTR_MAX              113                       /* maximum value */
        !           744: #define OCI_ATTR_INCR             114                     /* increment value */
        !           745: #define OCI_ATTR_CACHE            115   /* number of sequence numbers cached */
        !           746: #define OCI_ATTR_ORDER            116     /* whether the sequence is ordered */
        !           747: #define OCI_ATTR_HW_MARK          117                     /* high-water mark */
        !           748: #define OCI_ATTR_TYPE_SCHEMA      118                  /* type's schema name */
        !           749: #define OCI_ATTR_TIMESTAMP        119             /* timestamp of the object */
        !           750: #define OCI_ATTR_NUM_ATTRS        120                /* number of sttributes */
        !           751: #define OCI_ATTR_NUM_PARAMS       121                /* number of parameters */
        !           752: #define OCI_ATTR_OBJID            122       /* object id for a table or view */
        !           753: #define OCI_ATTR_PTYPE            123           /* type of info described by */
        !           754: #define OCI_ATTR_PARAM            124                /* parameter descriptor */
        !           755: #define OCI_ATTR_OVERLOAD_ID      125     /* overload ID for funcs and procs */
        !           756: #define OCI_ATTR_TABLESPACE       126                    /* table name space */
        !           757: #define OCI_ATTR_TDO              127                       /* TDO of a type */
        !           758: #define OCI_ATTR_LTYPE            128                           /* list type */
        !           759: #define OCI_ATTR_PARSE_ERROR_OFFSET 129                /* Parse Error offset */
        !           760: #define OCI_ATTR_IS_TEMPORARY     130          /* whether table is temporary */
        !           761: #define OCI_ATTR_IS_TYPED         131              /* whether table is typed */
        !           762: #define OCI_ATTR_DURATION         132         /* duration of temporary table */
        !           763: #define OCI_ATTR_IS_INVOKER_RIGHTS 133                  /* is invoker rights */
        !           764: #define OCI_ATTR_OBJ_NAME         134          /* top level schema obj name */
        !           765: #define OCI_ATTR_OBJ_SCHEMA       135                        /* schema name */
        !           766: #define OCI_ATTR_OBJ_ID           136          /* top level schema object id */
        !           767: 
        !           768: #define OCI_ATTR_DIRPATH_SORTED_INDEX    137 /* index that data is sorted on */
        !           769: 
        !           770:             /* direct path index maint method (see oci8dp.h) */
        !           771: #define OCI_ATTR_DIRPATH_INDEX_MAINT_METHOD 138
        !           772: 
        !           773:     /* parallel load: db file, initial and next extent sizes */
        !           774: 
        !           775: #define OCI_ATTR_DIRPATH_FILE               139      /* DB file to load into */
        !           776: #define OCI_ATTR_DIRPATH_STORAGE_INITIAL    140       /* initial extent size */
        !           777: #define OCI_ATTR_DIRPATH_STORAGE_NEXT       141          /* next extent size */
        !           778: 
        !           779: 
        !           780: #define OCI_ATTR_TRANS_TIMEOUT              142       /* transaction timeout */
        !           781: #define OCI_ATTR_SERVER_STATUS             143 /* state of the server handle */
        !           782: #define OCI_ATTR_STATEMENT                  144 /* statement txt in stmt hdl */
        !           783: 
        !           784: 
        !           785: /* ----- Temporary attribute value for UCS2 character set ID -------- */ 
        !           786: #define OCI_UCS2ID            1000                        /* UCS2 charset ID */
        !           787: 
        !           788: /*============================== End OCI Attribute Types ====================*/
        !           789: 
        !           790: /*---------------- Server Handle Attribute Values ---------------------------*/
        !           791: 
        !           792: /* OCI_ATTR_SERVER_STATUS */
        !           793: #define OCI_SERVER_NOT_CONNECTED       0x0 
        !           794: #define OCI_SERVER_NORMAL                      0x1 
        !           795: 
        !           796: /*---------------------------------------------------------------------------*/
        !           797: 
        !           798: /*------------------------- Supported Namespaces  ---------------------------*/
        !           799: #define OCI_SUBSCR_NAMESPACE_ANONYMOUS   0            /* Anonymous Namespace */
        !           800: #define OCI_SUBSCR_NAMESPACE_AQ          1                /* Advanced Queues */
        !           801: #define OCI_SUBSCR_NAMESPACE_MAX         2          /* Max Name Space Number */
        !           802: 
        !           803: 
        !           804: /*-------------------------Credential Types----------------------------------*/
        !           805: #define OCI_CRED_RDBMS    1                    /* database username/password */
        !           806: #define OCI_CRED_EXT      2               /* externally provided credentials */
        !           807: #define OCI_CRED_PROXY    3                          /* proxy authentication */
        !           808: /*---------------------------------------------------------------------------*/
        !           809: 
        !           810: /*------------------------Error Return Values--------------------------------*/
        !           811: #define OCI_SUCCESS 0                      /* maps to SQL_SUCCESS of SAG CLI */
        !           812: #define OCI_SUCCESS_WITH_INFO 1             /* maps to SQL_SUCCESS_WITH_INFO */
        !           813: #define OCI_RESERVED_FOR_INT_USE 200            /* reserved for internal use */ 
        !           814: #define OCI_NO_DATA 100                               /* maps to SQL_NO_DATA */
        !           815: #define OCI_ERROR -1                                    /* maps to SQL_ERROR */
        !           816: #define OCI_INVALID_HANDLE -2                  /* maps to SQL_INVALID_HANDLE */
        !           817: #define OCI_NEED_DATA 99                            /* maps to SQL_NEED_DATA */
        !           818: #define OCI_STILL_EXECUTING -3123                   /* OCI would block error */
        !           819: #define OCI_CONTINUE -24200    /* Continue with the body of the OCI function */
        !           820: /*---------------------------------------------------------------------------*/
        !           821: 
        !           822: /*------------------DateTime and Interval check Error codes------------------*/
        !           823: 
        !           824: /* DateTime Error Codes used by OCIDateTimeCheck() */
        !           825: #define   OCI_DT_INVALID_DAY         0x1                          /* Bad day */
        !           826: #define   OCI_DT_DAY_BELOW_VALID     0x2      /* Bad DAy Low/high bit (1=low)*/
        !           827: #define   OCI_DT_INVALID_MONTH       0x4                       /*  Bad MOnth */
        !           828: #define   OCI_DT_MONTH_BELOW_VALID   0x8   /* Bad MOnth Low/high bit (1=low) */
        !           829: #define   OCI_DT_INVALID_YEAR        0x10                        /* Bad YeaR */
        !           830: #define   OCI_DT_YEAR_BELOW_VALID    0x20  /*  Bad YeaR Low/high bit (1=low) */
        !           831: #define   OCI_DT_INVALID_HOUR        0x40                       /*  Bad HouR */
        !           832: #define   OCI_DT_HOUR_BELOW_VALID    0x80   /* Bad HouR Low/high bit (1=low) */
        !           833: #define   OCI_DT_INVALID_MINUTE      0x100                     /* Bad MiNute */
        !           834: #define   OCI_DT_MINUTE_BELOW_VALID  0x200 /*Bad MiNute Low/high bit (1=low) */
        !           835: #define   OCI_DT_INVALID_SECOND      0x400                    /*  Bad SeCond */
        !           836: #define   OCI_DT_SECOND_BELOW_VALID  0x800  /*bad second Low/high bit (1=low)*/
        !           837: #define   OCI_DT_DAY_MISSING_FROM_1582 0x1000     
        !           838:                                  /*  Day is one of those "missing" from 1582 */
        !           839: #define   OCI_DT_YEAR_ZERO           0x2000       /* Year may not equal zero */
        !           840: #define   OCI_DT_INVALID_TIMEZONE    0x4000                 /*  Bad Timezone */
        !           841: #define   OCI_DT_INVALID_FORMAT      0x8000         /* Bad date format input */
        !           842: 
        !           843: 
        !           844: /* Interval Error Codes used by OCIInterCheck() */
        !           845: #define   OCI_INTER_INVALID_DAY         0x1                       /* Bad day */
        !           846: #define   OCI_INTER_DAY_BELOW_VALID     0x2  /* Bad DAy Low/high bit (1=low) */
        !           847: #define   OCI_INTER_INVALID_MONTH       0x4                     /* Bad MOnth */
        !           848: #define   OCI_INTER_MONTH_BELOW_VALID   0x8 /*Bad MOnth Low/high bit (1=low) */
        !           849: #define   OCI_INTER_INVALID_YEAR        0x10                     /* Bad YeaR */
        !           850: #define   OCI_INTER_YEAR_BELOW_VALID    0x20 /*Bad YeaR Low/high bit (1=low) */
        !           851: #define   OCI_INTER_INVALID_HOUR        0x40                     /* Bad HouR */
        !           852: #define   OCI_INTER_HOUR_BELOW_VALID    0x80 /*Bad HouR Low/high bit (1=low) */
        !           853: #define   OCI_INTER_INVALID_MINUTE      0x100                  /* Bad MiNute */
        !           854: #define   OCI_INTER_MINUTE_BELOW_VALID  0x200 
        !           855:                                             /*Bad MiNute Low/high bit(1=low) */
        !           856: #define   OCI_INTER_INVALID_SECOND      0x400                  /* Bad SeCond */
        !           857: #define   OCI_INTER_SECOND_BELOW_VALID  0x800   
        !           858:                                             /*bad second Low/high bit(1=low) */
        !           859: #define   OCI_INTER_INVALID_FRACSEC     0x1000      /* Bad Fractional second */
        !           860: #define   OCI_INTER_FRACSEC_BELOW_VALID 0x2000  
        !           861:                                            /* Bad fractional second Low/High */
        !           862: 
        !           863: 
        !           864: /*------------------------Parsing Syntax Types-------------------------------*/
        !           865: #define OCI_V7_SYNTAX 2       /* V815 language - for backwards compatibility */
        !           866: #define OCI_V8_SYNTAX 3       /* V815 language - for backwards compatibility */
        !           867: #define OCI_NTV_SYNTAX 1    /* Use what so ever is the native lang of server */
        !           868:                      /* these values must match the values defined in kpul.h */
        !           869: /*---------------------------------------------------------------------------*/
        !           870: 
        !           871: /*------------------------Scrollable Cursor Options--------------------------*/
        !           872: #define OCI_FETCH_NEXT 0x02                                      /* next row */
        !           873: #define OCI_FETCH_FIRST 0x04                  /* first row of the result set */
        !           874: #define OCI_FETCH_LAST 0x08                /* the last row of the result set */
        !           875: #define OCI_FETCH_PRIOR 0x10         /* the previous row relative to current */
        !           876: #define OCI_FETCH_ABSOLUTE 0x20                /* absolute offset from first */
        !           877: #define OCI_FETCH_RELATIVE 0x40                /* offset relative to current */
        !           878: #define OCI_FETCH_RESERVED_1 0x80               /* reserved for internal use */
        !           879: 
        !           880: /*---------------------------------------------------------------------------*/
        !           881: 
        !           882: /*------------------------Bind and Define Options----------------------------*/
        !           883: #define OCI_SB2_IND_PTR   0x01                                     /* unused */
        !           884: #define OCI_DATA_AT_EXEC  0x02                       /* data at execute time */
        !           885: #define OCI_DYNAMIC_FETCH 0x02                          /* fetch dynamically */
        !           886: #define OCI_PIECEWISE     0x04                    /* piecewise DMLs or fetch */
        !           887: #define OCI_DEFINE_RESERVED_1 0x08              /* reserved for internal use */
        !           888: #define OCI_BIND_RESERVED_2   0x10              /* reserved for internal use */
        !           889: #define OCI_DEFINE_RESERVED_2 0x20              /* reserved for internal use */
        !           890: /*---------------------------------------------------------------------------*/
        !           891: 
        !           892: /*-----------------------------  Various Modes ------------------------------*/
        !           893: #define OCI_DEFAULT  0x00 /* the default value for parameters and attributes */
        !           894: 
        !           895: /*-------------OCIInitialize Modes / OCICreateEnvironment Modes -------------*/
        !           896: #define OCI_THREADED  0x01     /* the application is in threaded environment */
        !           897: #define OCI_OBJECT    0x02       /* the application is in object environment */
        !           898: #define OCI_EVENTS    0x04          /* the application is enabled for events */
        !           899: #define OCI_RESERVED1 0x08                      /* Reserved for internal use */
        !           900: #define OCI_SHARED    0x10              /* the application is in shared mode */
        !           901: #define OCI_RESERVED2 0x20                      /* Reserved for internal use */
        !           902: /* The following *TWO* are only valid for OCICreateEnvironment call */
        !           903: #define OCI_NO_UCB    0x40            /* No user callback called during init */
        !           904: #define OCI_NO_MUTEX  0x80            /* the environment handle will not be  */
        !           905:                                          /*  protected by a mutex internally */
        !           906: #define OCI_SHARED_EXT 0x100                        /* Used for shared forms */
        !           907: #define OCI_CACHE     0x200                                /* used by iCache */
        !           908: 
        !           909: /*---------------------------------------------------------------------------*/
        !           910: 
        !           911: /*----------------------------- OCIEnvInit Modes ----------------------------*/
        !           912: /* NOTE: NO NEW MODES SHOULD BE ADDED HERE BECAUSE THE RECOMMENDED METHOD 
        !           913:  * IS TO USE THE NEW OCICreateEnvironment MODES.
        !           914:  */
        !           915: #define OCI_ENV_NO_UCB 0x01         /* A user callback will not be called in
        !           916:                                        OCIEnvInit() */
        !           917: #define OCI_ENV_NO_MUTEX 0x08 /* the environment handle will not be protected
        !           918:                                 by a mutex internally */
        !           919: /*---------------------------------------------------------------------------*/
        !           920: 
        !           921: /*------------------------ Parse Modes --------------------------------------*/
        !           922: #define OCI_NO_SHARING        0x01      /* turn off statement handle sharing */
        !           923:                   /* This flag is only valid when process is in sharing mode */
        !           924: /*---------------------------------------------------------------------------*/
        !           925: 
        !           926: /*----------------------- Execution Modes -----------------------------------*/
        !           927: #define OCI_BATCH_MODE        0x01  /* batch the oci statement for execution */
        !           928: #define OCI_EXACT_FETCH       0x02         /* fetch the exact rows specified */
        !           929: #define OCI_KEEP_FETCH_STATE  0x04                                 /* unused */
        !           930: #define OCI_SCROLLABLE_CURSOR 0x08                      /* cursor scrollable */
        !           931: #define OCI_DESCRIBE_ONLY     0x10            /* only describe the statement */
        !           932: #define OCI_COMMIT_ON_SUCCESS 0x20        /* commit, if successful execution */
        !           933: #define OCI_NON_BLOCKING      0x40                           /* non-blocking */
        !           934: #define OCI_BATCH_ERRORS      0x80             /* batch errors in array dmls */
        !           935: #define OCI_PARSE_ONLY       0x100               /* only parse the statement */
        !           936: #define OCI_EXACT_FETCH_RESERVED_1 0x200        /* reserved for internal use */
        !           937: #define OCI_SHOW_DML_WARNINGS 0x400
        !           938:             /* return OCI_SUCCESS_WITH_INFO for del/upd with no where clause */
        !           939: 
        !           940: /*---------------------------------------------------------------------------*/
        !           941: 
        !           942: /*------------------------Authentication Modes-------------------------------*/
        !           943: #define OCI_MIGRATE     0x0001                    /* migratable auth context */
        !           944: #define OCI_SYSDBA      0x0002                   /* for SYSDBA authorization */
        !           945: #define OCI_SYSOPER     0x0004                  /* for SYSOPER authorization */
        !           946: #define OCI_PRELIM_AUTH 0x0008              /* for preliminary authorization */
        !           947: /*---------------------------------------------------------------------------*/
        !           948: /*-----------------------------End Various Modes ----------------------------*/
        !           949: 
        !           950: /*------------------------Piece Information----------------------------------*/
        !           951: #define OCI_PARAM_IN 0x01                                    /* in parameter */
        !           952: #define OCI_PARAM_OUT 0x02                                  /* out parameter */
        !           953: /*---------------------------------------------------------------------------*/
        !           954: 
        !           955: /*------------------------ Transaction Start Flags --------------------------*/
        !           956: /* NOTE: OCI_TRANS_JOIN and OCI_TRANS_NOMIGRATE not supported in 8.0.X       */
        !           957: #define OCI_TRANS_NEW          0x00000001 /* starts a new transaction branch */
        !           958: #define OCI_TRANS_JOIN         0x00000002    /* join an existing transaction */
        !           959: #define OCI_TRANS_RESUME       0x00000004         /* resume this transaction */
        !           960: #define OCI_TRANS_STARTMASK    0x000000ff
        !           961: 
        !           962: #define OCI_TRANS_READONLY     0x00000100   /* starts a readonly transaction */
        !           963: #define OCI_TRANS_READWRITE    0x00000200 /* starts a read-write transaction */
        !           964: #define OCI_TRANS_SERIALIZABLE 0x00000400
        !           965:                                         /* starts a serializable transaction */
        !           966: #define OCI_TRANS_ISOLMASK     0x0000ff00
        !           967: 
        !           968: #define OCI_TRANS_LOOSE        0x00010000        /* a loosely coupled branch */
        !           969: #define OCI_TRANS_TIGHT        0x00020000        /* a tightly coupled branch */
        !           970: #define OCI_TRANS_TYPEMASK     0x000f0000
        !           971: 
        !           972: #define OCI_TRANS_NOMIGRATE    0x00100000      /* non migratable transaction */
        !           973: 
        !           974: /*---------------------------------------------------------------------------*/
        !           975: 
        !           976: /*------------------------ Transaction End Flags ----------------------------*/
        !           977: #define OCI_TRANS_TWOPHASE      0x01000000           /* use two phase commit */
        !           978: /*---------------------------------------------------------------------------*/
        !           979: 
        !           980: /*------------------------- AQ Constants ------------------------------------
        !           981:  * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
        !           982:  * The following constants must match the PL/SQL dbms_aq constants
        !           983:  * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
        !           984:  */
        !           985: /* ------------------------- Visibility flags -------------------------------*/
        !           986: #define OCI_ENQ_IMMEDIATE      1   /* enqueue is an independent transaction */
        !           987: #define OCI_ENQ_ON_COMMIT      2  /* enqueue is part of current transaction */
        !           988: 
        !           989: /* ----------------------- Dequeue mode flags -------------------------------*/
        !           990: #define OCI_DEQ_BROWSE         1   /* read message without acquiring a lock */
        !           991: #define OCI_DEQ_LOCKED         2   /* read and obtain write lock on message */
        !           992: #define OCI_DEQ_REMOVE         3          /* read the message and delete it */
        !           993: #define OCI_DEQ_REMOVE_NODATA   4    /* delete message w'o returning payload */
        !           994: 
        !           995: /* ----------------- Dequeue navigation flags -------------------------------*/
        !           996: #define OCI_DEQ_FIRST_MSG       1     /* get first message at head of queue */
        !           997: #define OCI_DEQ_NEXT_MSG        3         /* next message that is available */
        !           998: #define OCI_DEQ_NEXT_TRANSACTION 2    /* get first message of next txn group */
        !           999: 
        !          1000: /* --------------------- Message states -------------------------------------*/
        !          1001: #define OCI_MSG_WAITING                1 /* the message delay has not yet completed */
        !          1002: #define OCI_MSG_READY          0    /* the message is ready to be processed */
        !          1003: #define OCI_MSG_PROCESSED      2          /* the message has been processed */
        !          1004: #define OCI_MSG_EXPIRED                3    /* message has moved to exception queue */
        !          1005: 
        !          1006: /* --------------------- Sequence deviation ---------------------------------*/
        !          1007: #define OCI_ENQ_BEFORE         2  /* enqueue message before another message */
        !          1008: #define OCI_ENQ_TOP            3     /* enqueue message before all messages */
        !          1009: 
        !          1010: /* ------------------------- Visibility flags -------------------------------*/
        !          1011: #define OCI_DEQ_IMMEDIATE      1   /* dequeue is an independent transaction */
        !          1012: #define OCI_DEQ_ON_COMMIT      2  /* dequeue is part of current transaction */
        !          1013: 
        !          1014: /* ------------------------ Wait --------------------------------------------*/
        !          1015: #define OCI_DEQ_WAIT_FOREVER   -1   /* wait forever if no message available */
        !          1016: #define OCI_DEQ_NO_WAIT                0  /* do not wait if no message is available */
        !          1017: 
        !          1018: /* ------------------------ Delay -------------------------------------------*/
        !          1019: #define OCI_MSG_NO_DELAY       0        /* message is available immediately */
        !          1020: 
        !          1021: /* ------------------------- Expiration -------------------------------------*/
        !          1022: #define OCI_MSG_NO_EXPIRATION -1                /* message will never expire */
        !          1023: 
        !          1024: /* -------------------------- END AQ Constants ----------------------------- */
        !          1025: 
        !          1026: /* --------------------END DateTime and Interval Constants ------------------*/
        !          1027: 
        !          1028: /*-----------------------Object Types----------------------------------------*/
        !          1029: /*-----------Object Types **** Not to be Used **** --------------------------*/
        !          1030: /* Deprecated */
        !          1031: #define OCI_OTYPE_UNK           0
        !          1032: #define OCI_OTYPE_TABLE         1
        !          1033: #define OCI_OTYPE_VIEW          2
        !          1034: #define OCI_OTYPE_SYN           3
        !          1035: #define OCI_OTYPE_PROC          4
        !          1036: #define OCI_OTYPE_FUNC          5
        !          1037: #define OCI_OTYPE_PKG           6
        !          1038: #define OCI_OTYPE_STMT          7
        !          1039: /*---------------------------------------------------------------------------*/
        !          1040: 
        !          1041: /*=======================Describe Handle Parameter Attributes ===============*/
        !          1042: /* 
        !          1043:    These attributes are orthogonal to the other set of attributes defined 
        !          1044:    above.  These attrubutes are tobe used only for the desscribe handle 
        !          1045: */
        !          1046: /*===========================================================================*/
        !          1047: /* Attributes common to Columns and Stored Procs */
        !          1048: #define OCI_ATTR_DATA_SIZE      1                /* maximum size of the data */
        !          1049: #define OCI_ATTR_DATA_TYPE      2     /* the SQL type of the column/argument */
        !          1050: #define OCI_ATTR_DISP_SIZE      3                        /* the display size */
        !          1051: #define OCI_ATTR_NAME           4         /* the name of the column/argument */
        !          1052: #define OCI_ATTR_PRECISION      5                /* precision if number type */
        !          1053: #define OCI_ATTR_SCALE          6                    /* scale if number type */
        !          1054: #define OCI_ATTR_IS_NULL        7                            /* is it null ? */
        !          1055: #define OCI_ATTR_TYPE_NAME      8
        !          1056:   /* name of the named data type or a package name for package private types */
        !          1057: #define OCI_ATTR_SCHEMA_NAME    9             /* the schema name */
        !          1058: #define OCI_ATTR_SUB_NAME       10      /* type name if package private type */
        !          1059: #define OCI_ATTR_POSITION       11
        !          1060:                     /* relative position of col/arg in the list of cols/args */
        !          1061: /* complex object retrieval parameter attributes */
        !          1062: #define OCI_ATTR_COMPLEXOBJECTCOMP_TYPE                50 
        !          1063: #define OCI_ATTR_COMPLEXOBJECTCOMP_TYPE_LEVEL  51
        !          1064: #define OCI_ATTR_COMPLEXOBJECT_LEVEL           52
        !          1065: #define OCI_ATTR_COMPLEXOBJECT_COLL_OUTOFLINE   53
        !          1066: 
        !          1067: /* Only Columns */
        !          1068: #define OCI_ATTR_DISP_NAME      100                      /* the display name */
        !          1069: 
        !          1070: /*Only Stored Procs */
        !          1071: #define OCI_ATTR_OVERLOAD       210           /* is this position overloaded */
        !          1072: #define OCI_ATTR_LEVEL          211            /* level for structured types */
        !          1073: #define OCI_ATTR_HAS_DEFAULT    212                   /* has a default value */
        !          1074: #define OCI_ATTR_IOMODE         213                         /* in, out inout */
        !          1075: #define OCI_ATTR_RADIX          214                       /* returns a radix */
        !          1076: #define OCI_ATTR_NUM_ARGS       215             /* total number of arguments */
        !          1077: 
        !          1078: /* only named type attributes */
        !          1079: #define OCI_ATTR_TYPECODE                  216       /* object or collection */
        !          1080: #define OCI_ATTR_COLLECTION_TYPECODE       217     /* varray or nested table */
        !          1081: #define OCI_ATTR_VERSION                   218      /* user assigned version */
        !          1082: #define OCI_ATTR_IS_INCOMPLETE_TYPE        219 /* is this an incomplete type */
        !          1083: #define OCI_ATTR_IS_SYSTEM_TYPE            220              /* a system type */
        !          1084: #define OCI_ATTR_IS_PREDEFINED_TYPE        221          /* a predefined type */
        !          1085: #define OCI_ATTR_IS_TRANSIENT_TYPE         222           /* a transient type */
        !          1086: #define OCI_ATTR_IS_SYSTEM_GENERATED_TYPE  223      /* system generated type */
        !          1087: #define OCI_ATTR_HAS_NESTED_TABLE          224 /* contains nested table attr */
        !          1088: #define OCI_ATTR_HAS_LOB                   225        /* has a lob attribute */
        !          1089: #define OCI_ATTR_HAS_FILE                  226       /* has a file attribute */
        !          1090: #define OCI_ATTR_COLLECTION_ELEMENT        227 /* has a collection attribute */
        !          1091: #define OCI_ATTR_NUM_TYPE_ATTRS            228  /* number of attribute types */
        !          1092: #define OCI_ATTR_LIST_TYPE_ATTRS           229    /* list of type attributes */
        !          1093: #define OCI_ATTR_NUM_TYPE_METHODS          230     /* number of type methods */
        !          1094: #define OCI_ATTR_LIST_TYPE_METHODS         231       /* list of type methods */
        !          1095: #define OCI_ATTR_MAP_METHOD                232         /* map method of type */
        !          1096: #define OCI_ATTR_ORDER_METHOD              233       /* order method of type */
        !          1097: 
        !          1098: /* only collection element */
        !          1099: #define OCI_ATTR_NUM_ELEMS                 234         /* number of elements */
        !          1100: 
        !          1101: /* only type methods */
        !          1102: #define OCI_ATTR_ENCAPSULATION             235        /* encapsulation level */
        !          1103: #define OCI_ATTR_IS_SELFISH                236             /* method selfish */
        !          1104: #define OCI_ATTR_IS_VIRTUAL                237                    /* virtual */
        !          1105: #define OCI_ATTR_IS_INLINE                 238                     /* inline */
        !          1106: #define OCI_ATTR_IS_CONSTANT               239                   /* constant */
        !          1107: #define OCI_ATTR_HAS_RESULT                240                 /* has result */
        !          1108: #define OCI_ATTR_IS_CONSTRUCTOR            241                /* constructor */
        !          1109: #define OCI_ATTR_IS_DESTRUCTOR             242                 /* destructor */
        !          1110: #define OCI_ATTR_IS_OPERATOR               243                   /* operator */
        !          1111: #define OCI_ATTR_IS_MAP                    244               /* a map method */
        !          1112: #define OCI_ATTR_IS_ORDER                  245               /* order method */
        !          1113: #define OCI_ATTR_IS_RNDS                   246  /* read no data state method */
        !          1114: #define OCI_ATTR_IS_RNPS                   247      /* read no process state */
        !          1115: #define OCI_ATTR_IS_WNDS                   248 /* write no data state method */
        !          1116: #define OCI_ATTR_IS_WNPS                   249     /* write no process state */
        !          1117: 
        !          1118: #define OCI_ATTR_DESC_PUBLIC               250              /* public object */
        !          1119: 
        !          1120: /* Object Cache Enhancements : attributes for User Constructed Instances     */
        !          1121: #define OCI_ATTR_CACHE_CLIENT_CONTEXT      251
        !          1122: #define OCI_ATTR_UCI_CONSTRUCT            252
        !          1123: #define OCI_ATTR_UCI_DESTRUCT             253
        !          1124: #define OCI_ATTR_UCI_COPY                 254
        !          1125: #define OCI_ATTR_UCI_PICKLE               255
        !          1126: #define OCI_ATTR_UCI_UNPICKLE             256
        !          1127: #define OCI_ATTR_UCI_REFRESH              257
        !          1128: 
        !          1129: /* for type inheritance */
        !          1130: #define OCI_ATTR_IS_SUBTYPE                258
        !          1131: #define OCI_ATTR_SUPERTYPE_SCHEMA_NAME     259
        !          1132: #define OCI_ATTR_SUPERTYPE_NAME            260
        !          1133: 
        !          1134: /* for schemas */
        !          1135: #define OCI_ATTR_LIST_OBJECTS              261 /* list of objects in schema */
        !          1136: 
        !          1137: /* for database */
        !          1138: #define OCI_ATTR_NCHARSET_ID               262               /* char set id */
        !          1139: #define OCI_ATTR_LIST_SCHEMAS              263           /* list of schemas */
        !          1140: #define OCI_ATTR_MAX_PROC_LEN              264      /* max procedure length */
        !          1141: #define OCI_ATTR_MAX_COLUMN_LEN            265    /* max column name length */
        !          1142: #define OCI_ATTR_CURSOR_COMMIT_BEHAVIOR    266    /* cursor commit behavior */
        !          1143: #define OCI_ATTR_MAX_CATALOG_NAMELEN       267        /* catalog namelength */
        !          1144: #define OCI_ATTR_CATALOG_LOCATION          268          /* catalog location */
        !          1145: #define OCI_ATTR_SAVEPOINT_SUPPORT         269         /* savepoint support */
        !          1146: #define OCI_ATTR_NOWAIT_SUPPORT            270            /* nowait support */
        !          1147: #define OCI_ATTR_AUTOCOMMIT_DDL            271            /* autocommit DDL */
        !          1148: #define OCI_ATTR_LOCKING_MODE              272              /* locking mode */
        !          1149: 
        !          1150: /* for externally initialized context */
        !          1151: #define OCI_ATTR_APPCTX_SIZE               273 /* count of context to be init*/
        !          1152: #define OCI_ATTR_APPCTX_LIST               274 /* count of context to be init*/
        !          1153: #define OCI_ATTR_APPCTX_NAME               275 /* name  of context to be init*/
        !          1154: #define OCI_ATTR_APPCTX_ATTR               276 /* attr  of context to be init*/
        !          1155: #define OCI_ATTR_APPCTX_VALUE              277 /* value of context to be init*/
        !          1156: 
        !          1157: /*---------------------------End Describe Handle Attributes -----------------*/
        !          1158: 
        !          1159: /*---------------- Describe Handle Parameter Attribute Values ---------------*/
        !          1160: 
        !          1161: /* OCI_ATTR_CURSOR_COMMIT_BEHAVIOR */
        !          1162: #define OCI_CURSOR_OPEN   0 
        !          1163: #define OCI_CURSOR_CLOSED 1
        !          1164: 
        !          1165: /* OCI_ATTR_CATALOG_LOCATION */
        !          1166: #define OCI_CL_START 0
        !          1167: #define OCI_CL_END   1
        !          1168: 
        !          1169: /* OCI_ATTR_SAVEPOINT_SUPPORT */
        !          1170: #define OCI_SP_SUPPORTED   0
        !          1171: #define OCI_SP_UNSUPPORTED 1
        !          1172: 
        !          1173: /* OCI_ATTR_NOWAIT_SUPPORT */
        !          1174: #define OCI_NW_SUPPORTED   0
        !          1175: #define OCI_NW_UNSUPPORTED 1
        !          1176: 
        !          1177: /* OCI_ATTR_AUTOCOMMIT_DDL */
        !          1178: #define OCI_AC_DDL    0
        !          1179: #define OCI_NO_AC_DDL 1
        !          1180: 
        !          1181: /* OCI_ATTR_LOCKING_MODE */
        !          1182: #define OCI_LOCK_IMMEDIATE 0
        !          1183: #define OCI_LOCK_DELAYED   1
        !          1184: 
        !          1185: /*---------------------------------------------------------------------------*/
        !          1186: 
        !          1187: /*---------------------------OCIPasswordChange-------------------------------*/
        !          1188: #define OCI_AUTH         0x08        /* Change the password but do not login */
        !          1189: 
        !          1190: 
        !          1191: /*------------------------Other Constants------------------------------------*/
        !          1192: #define OCI_MAX_FNS   100                     /* max number of OCI Functions */
        !          1193: #define OCI_SQLSTATE_SIZE 5  
        !          1194: #define OCI_ERROR_MAXMSG_SIZE   1024         /* max size of an error message */
        !          1195: #define OCI_LOBMAXSIZE MINUB4MAXVAL                 /* maximum lob data size */
        !          1196: #define OCI_ROWID_LEN             23 
        !          1197: /*---------------------------------------------------------------------------*/
        !          1198: 
        !          1199: /*------------------------ Fail Over Events ---------------------------------*/
        !          1200: #define OCI_FO_END          0x00000001
        !          1201: #define OCI_FO_ABORT        0x00000002   
        !          1202: #define OCI_FO_REAUTH       0x00000004
        !          1203: #define OCI_FO_BEGIN        0x00000008 
        !          1204: #define OCI_FO_ERROR        0x00000010
        !          1205: /*---------------------------------------------------------------------------*/
        !          1206: 
        !          1207: /*------------------------ Fail Over Callback Return Codes ------------------*/
        !          1208: #define OCI_FO_RETRY        25410
        !          1209: /*---------------------------------------------------------------------------*/
        !          1210: 
        !          1211: /*------------------------- Fail Over Types ---------------------------------*/
        !          1212: #define OCI_FO_NONE           0x00000001
        !          1213: #define OCI_FO_SESSION        0x00000002
        !          1214: #define OCI_FO_SELECT         0x00000004
        !          1215: #define OCI_FO_TXNAL          0x00000008
        !          1216: /*---------------------------------------------------------------------------*/
        !          1217: 
        !          1218: /*-----------------------Function Codes--------------------------------------*/
        !          1219: #define OCI_FNCODE_INITIALIZE     1                         /* OCIInitialize */
        !          1220: #define OCI_FNCODE_HANDLEALLOC  2                          /* OCIHandleAlloc */
        !          1221: #define OCI_FNCODE_HANDLEFREE  3                            /* OCIHandleFree */
        !          1222: #define OCI_FNCODE_DESCRIPTORALLOC  4                  /* OCIDescriptorAlloc */
        !          1223: #define OCI_FNCODE_DESCRIPTORFREE  5                    /* OCIDescriptorFree */
        !          1224: #define OCI_FNCODE_ENVINIT   6                                 /* OCIEnvInit */
        !          1225: #define OCI_FNCODE_SERVERATTACH   7                       /* OCIServerAttach */
        !          1226: #define OCI_FNCODE_SERVERDETACH   8                       /* OCIServerDetach */
        !          1227: /* unused         9 */ 
        !          1228: #define OCI_FNCODE_SESSIONBEGIN  10                       /* OCISessionBegin */
        !          1229: #define OCI_FNCODE_SESSIONEND   11                          /* OCISessionEnd */
        !          1230: #define OCI_FNCODE_PASSWORDCHANGE   12                  /* OCIPasswordChange */
        !          1231: #define OCI_FNCODE_STMTPREPARE   13                        /* OCIStmtPrepare */
        !          1232:                                                       /* unused       14- 16 */
        !          1233: #define OCI_FNCODE_BINDDYNAMIC   17                        /* OCIBindDynamic */
        !          1234: #define OCI_FNCODE_BINDOBJECT  18                           /* OCIBindObject */
        !          1235:                                                                 /* 19 unused */
        !          1236: #define OCI_FNCODE_BINDARRAYOFSTRUCT   20            /* OCIBindArrayOfStruct */
        !          1237: #define OCI_FNCODE_STMTEXECUTE  21                         /* OCIStmtExecute */
        !          1238:                                                              /* unused 22-24 */
        !          1239: #define OCI_FNCODE_DEFINEOBJECT  25                       /* OCIDefineObject */
        !          1240: #define OCI_FNCODE_DEFINEDYNAMIC   26                    /* OCIDefineDynamic */
        !          1241: #define OCI_FNCODE_DEFINEARRAYOFSTRUCT  27         /* OCIDefineArrayOfStruct */
        !          1242: #define OCI_FNCODE_STMTFETCH   28                            /* OCIStmtFetch */
        !          1243: #define OCI_FNCODE_STMTGETBIND   29                    /* OCIStmtGetBindInfo */
        !          1244:                                                             /* 30, 31 unused */
        !          1245: #define OCI_FNCODE_DESCRIBEANY  32                         /* OCIDescribeAny */
        !          1246: #define OCI_FNCODE_TRANSSTART  33                           /* OCITransStart */
        !          1247: #define OCI_FNCODE_TRANSDETACH  34                         /* OCITransDetach */
        !          1248: #define OCI_FNCODE_TRANSCOMMIT  35                         /* OCITransCommit */
        !          1249:                                                                 /* 36 unused */
        !          1250: #define OCI_FNCODE_ERRORGET   37                              /* OCIErrorGet */
        !          1251: #define OCI_FNCODE_LOBOPENFILE  38                         /* OCILobFileOpen */
        !          1252: #define OCI_FNCODE_LOBCLOSEFILE  39                       /* OCILobFileClose */
        !          1253:                                              /* 40 was LOBCREATEFILE, unused */
        !          1254:                                          /* 41 was OCILobFileDelete, unused  */
        !          1255: #define OCI_FNCODE_LOBCOPY  42                                 /* OCILobCopy */
        !          1256: #define OCI_FNCODE_LOBAPPEND  43                             /* OCILobAppend */
        !          1257: #define OCI_FNCODE_LOBERASE  44                               /* OCILobErase */
        !          1258: #define OCI_FNCODE_LOBLENGTH  45                          /* OCILobGetLength */
        !          1259: #define OCI_FNCODE_LOBTRIM  46                                 /* OCILobTrim */
        !          1260: #define OCI_FNCODE_LOBREAD  47                                 /* OCILobRead */
        !          1261: #define OCI_FNCODE_LOBWRITE  48                               /* OCILobWrite */
        !          1262:                                                                 /* 49 unused */
        !          1263: #define OCI_FNCODE_SVCCTXBREAK 50                                /* OCIBreak */
        !          1264: #define OCI_FNCODE_SERVERVERSION  51                     /* OCIServerVersion */
        !          1265: /* unused 52, 53 */
        !          1266: #define OCI_FNCODE_ATTRGET 54                                  /* OCIAttrGet */
        !          1267: #define OCI_FNCODE_ATTRSET 55                                  /* OCIAttrSet */
        !          1268: #define OCI_FNCODE_PARAMSET 56                                /* OCIParamSet */
        !          1269: #define OCI_FNCODE_PARAMGET 57                                /* OCIParamGet */
        !          1270: #define OCI_FNCODE_STMTGETPIECEINFO   58              /* OCIStmtGetPieceInfo */
        !          1271: #define OCI_FNCODE_LDATOSVCCTX 59                          /* OCILdaToSvcCtx */
        !          1272:                                                                 /* 60 unused */
        !          1273: #define OCI_FNCODE_STMTSETPIECEINFO   61              /* OCIStmtSetPieceInfo */
        !          1274: #define OCI_FNCODE_TRANSFORGET 62                          /* OCITransForget */
        !          1275: #define OCI_FNCODE_TRANSPREPARE 63                        /* OCITransPrepare */
        !          1276: #define OCI_FNCODE_TRANSROLLBACK  64                     /* OCITransRollback */
        !          1277: #define OCI_FNCODE_DEFINEBYPOS 65                          /* OCIDefineByPos */
        !          1278: #define OCI_FNCODE_BINDBYPOS 66                              /* OCIBindByPos */
        !          1279: #define OCI_FNCODE_BINDBYNAME 67                            /* OCIBindByName */
        !          1280: #define OCI_FNCODE_LOBASSIGN  68                             /* OCILobAssign */
        !          1281: #define OCI_FNCODE_LOBISEQUAL  69                           /* OCILobIsEqual */
        !          1282: #define OCI_FNCODE_LOBISINIT  70                      /* OCILobLocatorIsInit */
        !          1283: /* 71 was lob locator size in beta2 */
        !          1284: #define OCI_FNCODE_LOBENABLEBUFFERING  71           /* OCILobEnableBuffering */
        !          1285: #define OCI_FNCODE_LOBCHARSETID  72                       /* OCILobCharSetID */
        !          1286: #define OCI_FNCODE_LOBCHARSETFORM  73                   /* OCILobCharSetForm */
        !          1287: #define OCI_FNCODE_LOBFILESETNAME  74                   /* OCILobFileSetName */
        !          1288: #define OCI_FNCODE_LOBFILEGETNAME  75                   /* OCILobFileGetName */
        !          1289: #define OCI_FNCODE_LOGON 76                                      /* OCILogon */
        !          1290: #define OCI_FNCODE_LOGOFF 77                                    /* OCILogoff */
        !          1291: #define OCI_FNCODE_LOBDISABLEBUFFERING 78          /* OCILobDisableBuffering */
        !          1292: #define OCI_FNCODE_LOBFLUSHBUFFER 79                    /* OCILobFlushBuffer */
        !          1293: #define OCI_FNCODE_LOBLOADFROMFILE 80                  /* OCILobLoadFromFile */
        !          1294: 
        !          1295: #define OCI_FNCODE_LOBOPEN  81                                 /* OCILobOpen */
        !          1296: #define OCI_FNCODE_LOBCLOSE  82                               /* OCILobClose */
        !          1297: #define OCI_FNCODE_LOBISOPEN  83                             /* OCILobIsOpen */
        !          1298: #define OCI_FNCODE_LOBFILEISOPEN  84                     /* OCILobFileIsOpen */
        !          1299: #define OCI_FNCODE_LOBFILEEXISTS  85                     /* OCILobFileExists */
        !          1300: #define OCI_FNCODE_LOBFILECLOSEALL  86                 /* OCILobFileCloseAll */
        !          1301: #define OCI_FNCODE_LOBCREATETEMP  87                /* OCILobCreateTemporary */
        !          1302: #define OCI_FNCODE_LOBFREETEMP  88                    /* OCILobFreeTemporary */
        !          1303: #define OCI_FNCODE_LOBISTEMP  89                        /* OCILobIsTemporary */
        !          1304: 
        !          1305: #define OCI_FNCODE_AQENQ  90                                     /* OCIAQEnq */
        !          1306: #define OCI_FNCODE_AQDEQ  91                                     /* OCIAQDeq */
        !          1307: #define OCI_FNCODE_RESET  92                                     /* OCIReset */
        !          1308: #define OCI_FNCODE_SVCCTXTOLDA  93                         /* OCISvcCtxToLda */
        !          1309: #define OCI_FNCODE_LOBLOCATORASSIGN 94                /* OCILobLocatorAssign */
        !          1310: 
        !          1311: #define OCI_FNCODE_UBINDBYNAME 95
        !          1312: 
        !          1313: #define OCI_FNCODE_AQLISTEN  96                                      /* OCIAQListen */
        !          1314: 
        !          1315: #define OCI_FNCODE_SVC2HST 97                                    /* reserved */
        !          1316: #define OCI_FNCODE_SVCRH   98                                    /* reserved */
        !          1317:                            /* 97 and 98 are reserved for Oracle internal use */
        !          1318: 
        !          1319: #define OCI_FNCODE_TRANSMULTIPREPARE   99            /* OCITransMultiPrepare */
        !          1320: #define OCI_FNCODE_MAXFCN 99                    /* maximum OCI function code */
        !          1321: 
        !          1322: 
        !          1323: /*---------------------------------------------------------------------------*/
        !          1324: 
        !          1325: /*-----------------------Handle Definitions----------------------------------*/
        !          1326: typedef struct OCIEnv           OCIEnv;            /* OCI environment handle */
        !          1327: typedef struct OCIError         OCIError;                /* OCI error handle */
        !          1328: typedef struct OCISvcCtx        OCISvcCtx;             /* OCI service handle */
        !          1329: typedef struct OCIStmt          OCIStmt;             /* OCI statement handle */
        !          1330: typedef struct OCIBind          OCIBind;                  /* OCI bind handle */
        !          1331: typedef struct OCIDefine        OCIDefine;              /* OCI Define handle */
        !          1332: typedef struct OCIDescribe      OCIDescribe;          /* OCI Describe handle */
        !          1333: typedef struct OCIServer        OCIServer;              /* OCI Server handle */
        !          1334: typedef struct OCISession       OCISession;     /* OCI Authentication handle */
        !          1335: typedef struct OCIComplexObject OCIComplexObject;          /* OCI COR handle */
        !          1336: typedef struct OCITrans         OCITrans;          /* OCI Transaction handle */
        !          1337: typedef struct OCISecurity      OCISecurity;          /* OCI Security handle */
        !          1338: typedef struct OCISubscription  OCISubscription;      /* subscription handle */
        !          1339: 
        !          1340: /*-----------------------Descriptor Definitions------------------------------*/
        !          1341: typedef struct OCISnapshot      OCISnapshot;      /* OCI snapshot descriptor */
        !          1342: typedef struct OCIResult        OCIResult;      /* OCI Result Set Descriptor */
        !          1343: typedef struct OCILobLocator    OCILobLocator; /* OCI Lob Locator descriptor */
        !          1344: typedef struct OCIParam         OCIParam;        /* OCI PARameter descriptor */
        !          1345: typedef struct OCIComplexObjectComp OCIComplexObjectComp;
        !          1346:                                                        /* OCI COR descriptor */
        !          1347: typedef struct OCIRowid OCIRowid;                    /* OCI ROWID descriptor */
        !          1348: 
        !          1349: typedef struct OCIDateTime OCIDateTime;           /* OCI DateTime descriptor */
        !          1350: typedef struct OCIInterval OCIInterval;           /* OCI Interval descriptor */
        !          1351: 
        !          1352: typedef struct OCIUcb          OCIUcb;      /* OCI User Callback descriptor */
        !          1353: 
        !          1354: /*-------------------------- AQ Descriptors ---------------------------------*/
        !          1355: typedef struct OCIAQEnqOptions    OCIAQEnqOptions; /* AQ Enqueue Options hdl */
        !          1356: typedef struct OCIAQDeqOptions    OCIAQDeqOptions; /* AQ Dequeue Options hdl */
        !          1357: typedef struct OCIAQMsgProperties OCIAQMsgProperties;  /* AQ Mesg Properties */
        !          1358: typedef struct OCIAQAgent        OCIAQAgent;         /* AQ Agent descriptor */
        !          1359: typedef struct OCIAQNfyDescriptor OCIAQNfyDescriptor;  /* AQ Nfy descriptor */
        !          1360: /*---------------------------------------------------------------------------*/
        !          1361:  
        !          1362: /* Lob typedefs for Pro*C */
        !          1363: typedef struct OCILobLocator OCIClobLocator;    /* OCI Character LOB Locator */
        !          1364: typedef struct OCILobLocator OCIBlobLocator;       /* OCI Binary LOB Locator */
        !          1365: typedef struct OCILobLocator OCIBFileLocator; /* OCI Binary LOB File Locator */
        !          1366: /*---------------------------------------------------------------------------*/
        !          1367: 
        !          1368: /* Undefined value for tz in interval types*/
        !          1369: #define OCI_INTHR_UNK 24
        !          1370: 
        !          1371:   /* These defined adjustment values */
        !          1372: #define OCI_ADJUST_UNK            10
        !          1373: #define OCI_ORACLE_DATE           0
        !          1374: #define OCI_ANSI_DATE             1
        !          1375: 
        !          1376: /*------------------------ Lob-specific Definitions -------------------------*/
        !          1377: 
        !          1378: /*
        !          1379:  * ociloff - OCI Lob OFFset
        !          1380:  *
        !          1381:  * The offset in the lob data.  The offset is specified in terms of bytes for
        !          1382:  * BLOBs and BFILes.  Character offsets are used for CLOBs, NCLOBs.
        !          1383:  * The maximum size of internal lob data is 4 gigabytes.  FILE LOB 
        !          1384:  * size is limited by the operating system.
        !          1385:  */
        !          1386: typedef ub4 OCILobOffset;
        !          1387: 
        !          1388: /*
        !          1389:  * ocillen - OCI Lob LENgth (of lob data)
        !          1390:  *
        !          1391:  * Specifies the length of lob data in bytes for BLOBs and BFILes and in 
        !          1392:  * characters for CLOBs, NCLOBs.  The maximum length of internal lob
        !          1393:  * data is 4 gigabytes.  The length of FILE LOBs is limited only by the
        !          1394:  * operating system.
        !          1395:  */
        !          1396: typedef ub4 OCILobLength;
        !          1397: /*
        !          1398:  * ocilmo - OCI Lob open MOdes
        !          1399:  *
        !          1400:  * The mode specifies the planned operations that will be performed on the
        !          1401:  * FILE lob data.  The FILE lob can be opened in read-only mode only.
        !          1402:  * 
        !          1403:  * In the future, we may include read/write, append and truncate modes.  Append
        !          1404:  * is equivalent to read/write mode except that the FILE is positioned for
        !          1405:  * writing to the end.  Truncate is equivalent to read/write mode except that
        !          1406:  * the FILE LOB data is first truncated to a length of 0 before use.
        !          1407:  */
        !          1408: enum OCILobMode
        !          1409: {
        !          1410:   OCI_LOBMODE_READONLY = 1,                                     /* read-only */
        !          1411:   OCI_LOBMODE_READWRITE = 2             /* read_write for internal lobs only */
        !          1412: };
        !          1413: typedef enum OCILobMode OCILobMode;
        !          1414: 
        !          1415: /*---------------------------------------------------------------------------*/
        !          1416: 
        !          1417: 
        !          1418: /*----------------------------Piece Definitions------------------------------*/
        !          1419: 
        !          1420: /* if ocidef.h is being included in the app, ocidef.h should precede oci.h */
        !          1421: 
        !          1422: /* 
        !          1423:  * since clients may  use oci.h, ocidef.h and ocidfn.h the following defines
        !          1424:  * need to be guarded, usually internal clients
        !          1425:  */
        !          1426: 
        !          1427: #ifndef OCI_FLAGS
        !          1428: #define OCI_FLAGS
        !          1429: #define OCI_ONE_PIECE 0                                         /* one piece */
        !          1430: #define OCI_FIRST_PIECE 1                                 /* the first piece */
        !          1431: #define OCI_NEXT_PIECE 2                          /* the next of many pieces */
        !          1432: #define OCI_LAST_PIECE 3                                   /* the last piece */
        !          1433: #endif
        !          1434: /*---------------------------------------------------------------------------*/
        !          1435: 
        !          1436: /*--------------------------- FILE open modes -------------------------------*/
        !          1437: #define OCI_FILE_READONLY 1             /* readonly mode open for FILE types */
        !          1438: /*---------------------------------------------------------------------------*/
        !          1439: /*--------------------------- LOB open modes --------------------------------*/
        !          1440: #define OCI_LOB_READONLY 1              /* readonly mode open for ILOB types */
        !          1441: #define OCI_LOB_READWRITE 2                /* read write mode open for ILOBs */
        !          1442: 
        !          1443: /*----------------------- LOB Buffering Flush Flags -------------------------*/
        !          1444: #define OCI_LOB_BUFFER_FREE   1 
        !          1445: #define OCI_LOB_BUFFER_NOFREE 2
        !          1446: /*---------------------------------------------------------------------------*/
        !          1447: 
        !          1448: /*--------------------------- OCI Statement Types ---------------------------*/
        !          1449: 
        !          1450: #define  OCI_STMT_SELECT  1                              /* select statement */
        !          1451: #define  OCI_STMT_UPDATE  2                              /* update statement */
        !          1452: #define  OCI_STMT_DELETE  3                              /* delete statement */
        !          1453: #define  OCI_STMT_INSERT  4                              /* Insert Statement */
        !          1454: #define  OCI_STMT_CREATE  5                              /* create statement */
        !          1455: #define  OCI_STMT_DROP    6                                /* drop statement */
        !          1456: #define  OCI_STMT_ALTER   7                               /* alter statement */
        !          1457: #define  OCI_STMT_BEGIN   8                   /* begin ... (pl/sql statement)*/
        !          1458: #define  OCI_STMT_DECLARE 9                /* declare .. (pl/sql statement ) */
        !          1459: /*---------------------------------------------------------------------------*/
        !          1460: 
        !          1461: /*--------------------------- OCI Parameter Types ---------------------------*/
        !          1462: #define OCI_PTYPE_UNK           0                               /* unknown   */
        !          1463: #define OCI_PTYPE_TABLE                1                               /* table     */
        !          1464: #define OCI_PTYPE_VIEW         2                               /* view      */
        !          1465: #define OCI_PTYPE_PROC         3                               /* procedure */
        !          1466: #define OCI_PTYPE_FUNC         4                               /* function  */
        !          1467: #define OCI_PTYPE_PKG          5                               /* package   */
        !          1468: #define OCI_PTYPE_TYPE          6                       /* user-defined type */
        !          1469: #define OCI_PTYPE_SYN          7                               /* synonym   */
        !          1470: #define OCI_PTYPE_SEQ          8                               /* sequence  */
        !          1471: #define OCI_PTYPE_COL          9                               /* column    */
        !          1472: #define OCI_PTYPE_ARG          10                              /* argument  */
        !          1473: #define OCI_PTYPE_LIST         11                              /* list      */
        !          1474: #define OCI_PTYPE_TYPE_ATTR     12          /* user-defined type's attribute */
        !          1475: #define OCI_PTYPE_TYPE_COLL     13              /* collection type's element */
        !          1476: #define OCI_PTYPE_TYPE_METHOD   14             /* user-defined type's method */
        !          1477: #define OCI_PTYPE_TYPE_ARG      15    /* user-defined type method's argument */
        !          1478: #define OCI_PTYPE_TYPE_RESULT   16      /* user-defined type method's result */
        !          1479: #define OCI_PTYPE_SCHEMA       17                                 /* schema */
        !          1480: #define OCI_PTYPE_DATABASE      18                               /* database */
        !          1481: /*---------------------------------------------------------------------------*/
        !          1482: 
        !          1483: /*----------------------------- OCI List Types ------------------------------*/
        !          1484: #define OCI_LTYPE_UNK           0                               /* unknown   */
        !          1485: #define OCI_LTYPE_COLUMN        1                             /* column list */
        !          1486: #define OCI_LTYPE_ARG_PROC      2                 /* procedure argument list */
        !          1487: #define OCI_LTYPE_ARG_FUNC      3                  /* function argument list */
        !          1488: #define OCI_LTYPE_SUBPRG        4                         /* subprogram list */
        !          1489: #define OCI_LTYPE_TYPE_ATTR     5                          /* type attribute */
        !          1490: #define OCI_LTYPE_TYPE_METHOD   6                             /* type method */
        !          1491: #define OCI_LTYPE_TYPE_ARG_PROC 7    /* type method w/o result argument list */
        !          1492: #define OCI_LTYPE_TYPE_ARG_FUNC 8      /* type method w/result argument list */
        !          1493: #define OCI_LTYPE_SCH_OBJ       9                      /* schema object list */
        !          1494: #define OCI_LTYPE_DB_SCH        10                   /* database schema list */
        !          1495: 
        !          1496: /*---------------------------------------------------------------------------*/
        !          1497: 
        !          1498: /*-------------------------- Memory Cartridge Services ---------------------*/
        !          1499: #define OCI_MEMORY_CLEARED  1
        !          1500: 
        !          1501: /*-------------------------- Pickler Cartridge Services ---------------------*/
        !          1502: typedef struct OCIPicklerTdsCtx OCIPicklerTdsCtx;
        !          1503: typedef struct OCIPicklerTds OCIPicklerTds;
        !          1504: typedef struct OCIPicklerImage OCIPicklerImage;
        !          1505: typedef struct OCIPicklerFdo OCIPicklerFdo;
        !          1506: typedef ub4 OCIPicklerTdsElement;
        !          1507: 
        !          1508: /*---------------------------------------------------------------------------*/
        !          1509: 
        !          1510: /*--------------------------- User Callback Constants -----------------------*/
        !          1511: #define OCI_UCBTYPE_ENTRY      1                          /* entry callback */
        !          1512: #define OCI_UCBTYPE_EXIT       2                           /* exit callback */
        !          1513: #define OCI_UCBTYPE_REPLACE    3                    /* replacement callback */
        !          1514: 
        !          1515: /*---------------------------------------------------------------------------*/
        !          1516: 
        !          1517: /*--------------------- NLS service type and constance ----------------------*/
        !          1518: #define OCI_NLS_DAYNAME1      1                    /* Native name for Monday */
        !          1519: #define OCI_NLS_DAYNAME2      2                   /* Native name for Tuesday */
        !          1520: #define OCI_NLS_DAYNAME3      3                 /* Native name for Wednesday */
        !          1521: #define OCI_NLS_DAYNAME4      4                  /* Native name for Thursday */
        !          1522: #define OCI_NLS_DAYNAME5      5                    /* Native name for Friday */
        !          1523: #define OCI_NLS_DAYNAME6      6              /* Native name for for Saturday */
        !          1524: #define OCI_NLS_DAYNAME7      7                /* Native name for for Sunday */
        !          1525: #define OCI_NLS_ABDAYNAME1    8        /* Native abbreviated name for Monday */
        !          1526: #define OCI_NLS_ABDAYNAME2    9       /* Native abbreviated name for Tuesday */
        !          1527: #define OCI_NLS_ABDAYNAME3    10    /* Native abbreviated name for Wednesday */
        !          1528: #define OCI_NLS_ABDAYNAME4    11     /* Native abbreviated name for Thursday */
        !          1529: #define OCI_NLS_ABDAYNAME5    12       /* Native abbreviated name for Friday */
        !          1530: #define OCI_NLS_ABDAYNAME6    13 /* Native abbreviated name for for Saturday */
        !          1531: #define OCI_NLS_ABDAYNAME7    14   /* Native abbreviated name for for Sunday */
        !          1532: #define OCI_NLS_MONTHNAME1    15                  /* Native name for January */
        !          1533: #define OCI_NLS_MONTHNAME2    16                 /* Native name for February */
        !          1534: #define OCI_NLS_MONTHNAME3    17                    /* Native name for March */
        !          1535: #define OCI_NLS_MONTHNAME4    18                    /* Native name for April */
        !          1536: #define OCI_NLS_MONTHNAME5    19                      /* Native name for May */
        !          1537: #define OCI_NLS_MONTHNAME6    20                     /* Native name for June */
        !          1538: #define OCI_NLS_MONTHNAME7    21                     /* Native name for July */
        !          1539: #define OCI_NLS_MONTHNAME8    22                   /* Native name for August */
        !          1540: #define OCI_NLS_MONTHNAME9    23                /* Native name for September */
        !          1541: #define OCI_NLS_MONTHNAME10   24                  /* Native name for October */
        !          1542: #define OCI_NLS_MONTHNAME11   25                 /* Native name for November */
        !          1543: #define OCI_NLS_MONTHNAME12   26                 /* Native name for December */
        !          1544: #define OCI_NLS_ABMONTHNAME1  27      /* Native abbreviated name for January */
        !          1545: #define OCI_NLS_ABMONTHNAME2  28     /* Native abbreviated name for February */
        !          1546: #define OCI_NLS_ABMONTHNAME3  29        /* Native abbreviated name for March */
        !          1547: #define OCI_NLS_ABMONTHNAME4  30        /* Native abbreviated name for April */
        !          1548: #define OCI_NLS_ABMONTHNAME5  31          /* Native abbreviated name for May */
        !          1549: #define OCI_NLS_ABMONTHNAME6  32         /* Native abbreviated name for June */
        !          1550: #define OCI_NLS_ABMONTHNAME7  33         /* Native abbreviated name for July */
        !          1551: #define OCI_NLS_ABMONTHNAME8  34       /* Native abbreviated name for August */
        !          1552: #define OCI_NLS_ABMONTHNAME9  35    /* Native abbreviated name for September */
        !          1553: #define OCI_NLS_ABMONTHNAME10 36      /* Native abbreviated name for October */
        !          1554: #define OCI_NLS_ABMONTHNAME11 37     /* Native abbreviated name for November */
        !          1555: #define OCI_NLS_ABMONTHNAME12 38     /* Native abbreviated name for December */
        !          1556: #define OCI_NLS_YES           39   /* Native string for affirmative response */
        !          1557: #define OCI_NLS_NO            40                 /* Native negative response */
        !          1558: #define OCI_NLS_AM            41           /* Native equivalent string of AM */
        !          1559: #define OCI_NLS_PM            42           /* Native equivalent string of PM */
        !          1560: #define OCI_NLS_AD            43           /* Native equivalent string of AD */
        !          1561: #define OCI_NLS_BC            44           /* Native equivalent string of BC */
        !          1562: #define OCI_NLS_DECIMAL       45                        /* decimal character */
        !          1563: #define OCI_NLS_GROUP         46                          /* group separator */
        !          1564: #define OCI_NLS_DEBIT         47                   /* Native symbol of debit */
        !          1565: #define OCI_NLS_CREDIT        48                  /* Native sumbol of credit */
        !          1566: #define OCI_NLS_DATEFORMAT    49                       /* Oracle date format */
        !          1567: #define OCI_NLS_INT_CURRENCY  50            /* International currency symbol */
        !          1568: #define OCI_NLS_LOC_CURRENCY  51                   /* Locale currency symbol */
        !          1569: #define OCI_NLS_LANGUAGE      52                            /* Language name */
        !          1570: #define OCI_NLS_ABLANGUAGE    53           /* Abbreviation for language name */
        !          1571: #define OCI_NLS_TERRITORY     54                           /* Territory name */
        !          1572: #define OCI_NLS_CHARACTER_SET 55                       /* Character set name */
        !          1573: #define OCI_NLS_LINGUISTIC_NAME    56                     /* Linguistic name */
        !          1574: #define OCI_NLS_CALENDAR      57                            /* Calendar name */
        !          1575: #define OCI_NLS_DUAL_CURRENCY 78                     /* Dual currency symbol */
        !          1576: 
        !          1577: #define OCI_NLS_MAXBUFSZ   100 /* Max buffer size may need for OCINlsGetInfo */
        !          1578: 
        !          1579: #define OCI_NLS_BINARY            0x1           /* for the binary comparison */
        !          1580: #define OCI_NLS_LINGUISTIC        0x2           /* for linguistic comparison */
        !          1581: #define OCI_NLS_CASE_INSENSITIVE  0x10    /* for case-insensitive comparison */
        !          1582: 
        !          1583: #define OCI_NLS_UPPERCASE         0x20               /* convert to uppercase */
        !          1584: #define OCI_NLS_LOWERCASE         0x40               /* convert to lowercase */
        !          1585: 
        !          1586: typedef struct OCIMsg  OCIMsg;
        !          1587: typedef ub4            OCIWchar;
        !          1588: 
        !          1589: 
        !          1590: /*--------------------------------------------------------------------------- 
        !          1591:                      PRIVATE TYPES AND CONSTANTS 
        !          1592:   ---------------------------------------------------------------------------*/
        !          1593:  
        !          1594: /* None */
        !          1595: 
        !          1596: /*--------------------------------------------------------------------------- 
        !          1597:                            PUBLIC FUNCTIONS 
        !          1598:   ---------------------------------------------------------------------------*/
        !          1599: 
        !          1600: /* see ociap.h or ocikp.h */
        !          1601:  
        !          1602: /*--------------------------------------------------------------------------- 
        !          1603:                           PRIVATE FUNCTIONS 
        !          1604:   ---------------------------------------------------------------------------*/
        !          1605: 
        !          1606: /* None */
        !          1607: 
        !          1608:  
        !          1609: #endif                                              /* OCI_ORACLE */
        !          1610: 
        !          1611: 
        !          1612: /* more includes */
        !          1613: 
        !          1614: #ifndef OCI1_ORACLE
        !          1615: #include <oci1.h>
        !          1616: #endif
        !          1617: 
        !          1618: #ifndef ORO_ORACLE
        !          1619: #include <oro.h>
        !          1620: #endif
        !          1621: 
        !          1622: #ifndef ORI_ORACLE
        !          1623: #include <ori.h>
        !          1624: #endif
        !          1625: 
        !          1626: #ifndef ORL_ORACLE
        !          1627: #include <orl.h>
        !          1628: #endif
        !          1629: 
        !          1630: #ifndef ORT_ORACLE
        !          1631: #include <ort.h>
        !          1632: #endif
        !          1633: 
        !          1634: #ifndef OCIEXTP_ORACLE
        !          1635: #include <ociextp.h>
        !          1636: #endif
        !          1637: 
        !          1638: #if defined(__STDC__) || defined(__cplusplus)
        !          1639: #include <ociapr.h>
        !          1640: #include <ociap.h>
        !          1641: #else
        !          1642: #include <ocikpr.h>
        !          1643: #include <ocikp.h>
        !          1644: #endif
        !          1645: 
        !          1646: #ifndef OCI8DP_ORACLE
        !          1647: #include <oci8dp.h>         /* interface definitions for the direct path api */
        !          1648: #endif
        !          1649: 
        !          1650: #ifndef OCIEXTP_ORACLE
        !          1651: #include <ociextp.h>
        !          1652: #endif
        !          1653: 
        !          1654: #ifdef __cplusplus
        !          1655: }
        !          1656: #endif /* __cplusplus */
        !          1657: 

E-mail: