![]() |
TerraLib 4.1
|
00001 /* 00002 * $Header$ 00003 */ 00004 00005 /* Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. */ 00006 /* Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. */ 00007 /* 00008 NAME 00009 ocidfn.h - OCI Definations 00010 NOTES 00011 Shipped to users. 00012 MODIFIED (MM/DD/YY) 00013 srseshad 11/25/02 - change binary float/double codes 00014 srseshad 11/14/02 - Add SQLT_IBFLOAT, SQLT_IBDOUBLE 00015 mxyang 09/17/02 - grabtrans 'mmorsi_obj_float' 00016 srseshad 09/06/02 - Add binary float/double 00017 aahluwal 06/04/02 - bug 2360115 00018 kmuthukk 05/02/00 - add SQLT_PNTY 00019 amangal 07/30/99 - Merge into 8.1.6 : Bug 879031 00020 tnbui 07/28/99 - Remove SQLT_TIMESTAMP_ITZ 00021 tnbui 07/21/99 - SQLT_TIMESTAMP_LTZ 00022 tnbui 06/16/99 - TIMESTAMP WITH IMPLICIT TIME ZONE 00023 whe 04/07/99 - bug#810075 00024 whe 03/19/99 - lrg 32079 etc.: move HDA def from ocidem.h to ocidfn. 00025 skmishra 05/10/98 - 00026 vyanaman 04/16/98 - update sql92 datatypes 00027 khnguyen 01/16/98 - 00028 khnguyen 12/23/97 - SQLT* for datetimes and intervals 00029 tanguyen 08/19/97 - 00030 dchatter 03/18/97 - porting exception 390897 00031 dchatter 05/02/97 - merge porting exception 00032 dalpern 12/04/96 - SQLCS_LIT_NULL added 00033 cxcheng 11/14/96 - add SQLT_BFILE/SQLT_CFILE to fix compile prob 00034 cxcheng 11/12/96 - add SQLT_NCO for named collection 00035 lchidamb 10/17/96 - add SQLT_VST and SQLT_ODT 00036 sgollapu 10/14/96 - Mutual exclusion of ocidfn and sqldef 00037 sgollapu 10/07/96 - OCI Simplification 00038 aroy 09/09/96 - add SQLCS* definitions 00039 slari 08/07/96 - add SQLT_RDD, rowid descriptor 00040 slari 06/12/96 - remove SQLT_TTBL 00041 dchatter 04/21/96 - prepare for merge into main 00042 slari 08/24/95 - b299432, define CDA_SIZE 00043 zwalcott 02/28/96 - add SQLT_BFILEE and SQLT_CFILEE. 00044 lchidamb 02/22/96 - make dtys consistent with dtydef.h 00045 lchidamb 02/16/96 - add SQLT_BFILEE and SQLT_CFILEE 00046 lchidamb 01/30/96 - rename new datatypes for v8 00047 lchidamb 09/06/95 - add new datatypes 00048 slari 05/11/95 - add OCI_EV_DEF and OCI_EV_TSF 00049 dchatter 04/06/95 - add ifdef flags around OCI_flags 00050 dchatter 03/08/95 - piece values 00051 dchatter 03/06/95 - merge changes from branch 1.2.720.3 00052 jfbrown 02/17/95 - merge changes from branch 1.2.720.2 00053 dchatter 02/08/95 - olog call modes 00054 jfbrown 02/03/95 - remove non-printable characters 00055 lchidamb 12/06/94 - merge changes from branch 1.2.720.1 00056 lchidamb 10/04/94 - added field chk to cda_head, cda_def 00057 dchatter 07/05/94 - SQLT_CUR added 00058 rkooi2 11/27/92 - Changing e* datatypes to s* 00059 rkooi2 10/26/92 - More portability mods 00060 rkooi2 10/22/92 - Added #ifndef ORATYPES ... 00061 rkooi2 10/18/92 - Changes to make it portable. 00062 sjain 03/16/92 - Creation 00063 */ 00064 00065 /* 00066 * ocidfn.h 00067 * 00068 * Common header file for OCI C sample programs. 00069 * This header declares the cursor and logon data area structure. 00070 * The types used are defined in <oratypes.h>. 00071 * 00072 */ 00073 00074 #ifndef OCIDFN 00075 #define OCIDFN 00076 00077 #ifndef ORATYPES 00078 #include <oratypes.h> 00079 #endif 00080 00081 /* The cda_head struct is strictly PRIVATE. It is used 00082 internally only. Do not use this struct in OCI programs. */ 00083 00084 struct cda_head { 00085 sb2 v2_rc; 00086 ub2 ft; 00087 ub4 rpc; 00088 ub2 peo; 00089 ub1 fc; 00090 ub1 rcs1; 00091 ub2 rc; 00092 ub1 wrn; 00093 ub1 rcs2; 00094 sword rcs3; 00095 struct { 00096 struct { 00097 ub4 rcs4; 00098 ub2 rcs5; 00099 ub1 rcs6; 00100 } rd; 00101 ub4 rcs7; 00102 ub2 rcs8; 00103 } rid; 00104 sword ose; 00105 ub1 chk; 00106 dvoid *rcsp; 00107 }; 00108 00109 /* 00110 ** Size of HDA area: 00111 ** 512 for 64 bit arquitectures 00112 ** 256 for 32 bit arquitectures 00113 */ 00114 00115 #if defined(SS_64BIT_SERVER) || defined(__64BIT__) 00116 # define HDA_SIZE 512 00117 #else 00118 # define HDA_SIZE 256 00119 #endif 00120 00121 #if defined(SS_64BIT_SERVER) || defined(__64BIT__) 00122 #define CDA_SIZE 88 00123 #else 00124 # define CDA_SIZE 64 00125 #endif 00126 00127 /* the real CDA, padded to CDA_SIZE bytes in size */ 00128 struct cda_def { 00129 sb2 v2_rc; /* V2 return code */ 00130 ub2 ft; /* SQL function type */ 00131 ub4 rpc; /* rows processed count */ 00132 ub2 peo; /* parse error offset */ 00133 ub1 fc; /* OCI function code */ 00134 ub1 rcs1; /* filler area */ 00135 ub2 rc; /* V7 return code */ 00136 ub1 wrn; /* warning flags */ 00137 ub1 rcs2; /* reserved */ 00138 sword rcs3; /* reserved */ 00139 struct { /* rowid structure */ 00140 struct { 00141 ub4 rcs4; 00142 ub2 rcs5; 00143 ub1 rcs6; 00144 } rd; 00145 ub4 rcs7; 00146 ub2 rcs8; 00147 } rid; 00148 sword ose; /* OSD dependent error */ 00149 ub1 chk; 00150 dvoid *rcsp; /* pointer to reserved area */ 00151 ub1 rcs9[CDA_SIZE - sizeof (struct cda_head)]; /* filler */ 00152 }; 00153 00154 typedef struct cda_def Cda_Def; 00155 00156 /* the logon data area (LDA) 00157 is the same shape as the CDA */ 00158 typedef struct cda_def Lda_Def; 00159 00160 /* OCI Environment Modes for opinit call */ 00161 #define OCI_EV_DEF 0 /* default single-threaded environment */ 00162 #define OCI_EV_TSF 1 /* thread-safe environment */ 00163 00164 /* OCI Logon Modes for olog call */ 00165 #define OCI_LM_DEF 0 /* default login */ 00166 #define OCI_LM_NBL 1 /* non-blocking logon */ 00167 00168 /* 00169 * since sqllib uses both ocidef and ocidfn the following defines 00170 * need to be guarded 00171 */ 00172 #ifndef OCI_FLAGS 00173 #define OCI_FLAGS 00174 00175 /* OCI_*_PIECE defines the piece types that are returned or set 00176 */ 00177 #define OCI_ONE_PIECE 0 /* there or this is the only piece */ 00178 #define OCI_FIRST_PIECE 1 /* the first of many pieces */ 00179 #define OCI_NEXT_PIECE 2 /* the next of many pieces */ 00180 #define OCI_LAST_PIECE 3 /* the last piece of this column */ 00181 #endif 00182 00183 #ifndef SQLDEF 00184 00185 /* input data types */ 00186 #define SQLT_CHR 1 /* (ORANET TYPE) character string */ 00187 #define SQLT_NUM 2 /* (ORANET TYPE) oracle numeric */ 00188 #define SQLT_INT 3 /* (ORANET TYPE) integer */ 00189 #define SQLT_FLT 4 /* (ORANET TYPE) Floating point number */ 00190 #define SQLT_STR 5 /* zero terminated string */ 00191 #define SQLT_VNU 6 /* NUM with preceding length byte */ 00192 #define SQLT_PDN 7 /* (ORANET TYPE) Packed Decimal Numeric */ 00193 #define SQLT_LNG 8 /* long */ 00194 #define SQLT_VCS 9 /* Variable character string */ 00195 #define SQLT_NON 10 /* Null/empty PCC Descriptor entry */ 00196 #define SQLT_RID 11 /* rowid */ 00197 #define SQLT_DAT 12 /* date in oracle format */ 00198 #define SQLT_VBI 15 /* binary in VCS format */ 00199 #define SQLT_BFLOAT 21 /* Native Binary float*/ 00200 #define SQLT_BDOUBLE 22 /* NAtive binary double */ 00201 #define SQLT_BIN 23 /* binary data(DTYBIN) */ 00202 #define SQLT_LBI 24 /* long binary */ 00203 #define SQLT_UIN 68 /* unsigned integer */ 00204 #define SQLT_SLS 91 /* Display sign leading separate */ 00205 #define SQLT_LVC 94 /* Longer longs (char) */ 00206 #define SQLT_LVB 95 /* Longer long binary */ 00207 #define SQLT_AFC 96 /* Ansi fixed char */ 00208 #define SQLT_AVC 97 /* Ansi Var char */ 00209 #define SQLT_IBFLOAT 100 /* binary float canonical */ 00210 #define SQLT_IBDOUBLE 101 /* binary double canonical */ 00211 #define SQLT_CUR 102 /* cursor type */ 00212 #define SQLT_RDD 104 /* rowid descriptor */ 00213 #define SQLT_LAB 105 /* label type */ 00214 #define SQLT_OSL 106 /* oslabel type */ 00215 00216 #define SQLT_NTY 108 /* named object type */ 00217 #define SQLT_REF 110 /* ref type */ 00218 #define SQLT_CLOB 112 /* character lob */ 00219 #define SQLT_BLOB 113 /* binary lob */ 00220 #define SQLT_BFILEE 114 /* binary file lob */ 00221 #define SQLT_CFILEE 115 /* character file lob */ 00222 #define SQLT_RSET 116 /* result set type */ 00223 #define SQLT_NCO 122 /* named collection type (varray or nested table) */ 00224 #define SQLT_VST 155 /* OCIString type */ 00225 #define SQLT_ODT 156 /* OCIDate type */ 00226 00227 /* datetimes and intervals */ 00228 #define SQLT_DATE 184 /* ANSI Date */ 00229 #define SQLT_TIME 185 /* TIME */ 00230 #define SQLT_TIME_TZ 186 /* TIME WITH TIME ZONE */ 00231 #define SQLT_TIMESTAMP 187 /* TIMESTAMP */ 00232 #define SQLT_TIMESTAMP_TZ 188 /* TIMESTAMP WITH TIME ZONE */ 00233 #define SQLT_INTERVAL_YM 189 /* INTERVAL YEAR TO MONTH */ 00234 #define SQLT_INTERVAL_DS 190 /* INTERVAL DAY TO SECOND */ 00235 #define SQLT_TIMESTAMP_LTZ 232 /* TIMESTAMP WITH LOCAL TZ */ 00236 00237 #define SQLT_PNTY 241 /* pl/sql representation of named types */ 00238 00239 /* cxcheng: this has been added for backward compatibility - 00240 it needs to be here because ocidfn.h can get included ahead of sqldef.h */ 00241 #define SQLT_FILE SQLT_BFILEE /* binary file lob */ 00242 #define SQLT_CFILE SQLT_CFILEE 00243 #define SQLT_BFILE SQLT_BFILEE 00244 00245 /* CHAR/NCHAR/VARCHAR2/NVARCHAR2/CLOB/NCLOB char set "form" information */ 00246 #define SQLCS_IMPLICIT 1 /* for CHAR, VARCHAR2, CLOB w/o a specified set */ 00247 #define SQLCS_NCHAR 2 /* for NCHAR, NCHAR VARYING, NCLOB */ 00248 #define SQLCS_EXPLICIT 3 /* for CHAR, etc, with "CHARACTER SET ..." syntax */ 00249 #define SQLCS_FLEXIBLE 4 /* for PL/SQL "flexible" parameters */ 00250 #define SQLCS_LIT_NULL 5 /* for typecheck of NULL and empty_clob() lits */ 00251 00252 #endif /* SQLDEF */ 00253 #endif /* OCIDFN */