Annotation of win32/sql/oracle/include/oci/oci.h, revision 1.1.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: