-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathocidfn.h
More file actions
249 lines (226 loc) · 11.1 KB
/
ocidfn.h
File metadata and controls
249 lines (226 loc) · 11.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
/* Copyright (c) 1991, 2005, Oracle. All rights reserved. */
/* Copyright (c) 1991, 2005, Oracle. All rights reserved. */
/*
NAME
ocidfn.h - OCI Definations
NOTES
Shipped to users.
MODIFIED (MM/DD/YY)
mbastawa 09/16/05 - dbhygiene
dmukhin 06/29/05 - ANSI prototypes; miscellaneous cleanup
srseshad 11/25/02 - change binary float/double codes
srseshad 11/14/02 - Add SQLT_IBFLOAT, SQLT_IBDOUBLE
mxyang 09/17/02 - grabtrans 'mmorsi_obj_float'
srseshad 09/06/02 - Add binary float/double
aahluwal 06/04/02 - bug 2360115
kmuthukk 05/02/00 - add SQLT_PNTY
amangal 07/30/99 - Merge into 8.1.6 : Bug 879031
tnbui 07/28/99 - Remove SQLT_TIMESTAMP_ITZ
tnbui 07/21/99 - SQLT_TIMESTAMP_LTZ
tnbui 06/16/99 - TIMESTAMP WITH IMPLICIT TIME ZONE
whe 04/07/99 - bug#810075
whe 03/19/99 - lrg 32079 etc.: move HDA def from ocidem.h to ocidfn.
skmishra 05/10/98 -
vyanaman 04/16/98 - update sql92 datatypes
khnguyen 01/16/98 -
khnguyen 12/23/97 - SQLT* for datetimes and intervals
tanguyen 08/19/97 -
dchatter 03/18/97 - porting exception 390897
dchatter 05/02/97 - merge porting exception
dalpern 12/04/96 - SQLCS_LIT_NULL added
cxcheng 11/14/96 - add SQLT_BFILE/SQLT_CFILE to fix compile prob
cxcheng 11/12/96 - add SQLT_NCO for named collection
lchidamb 10/17/96 - add SQLT_VST and SQLT_ODT
sgollapu 10/14/96 - Mutual exclusion of ocidfn and sqldef
sgollapu 10/07/96 - OCI Simplification
aroy 09/09/96 - add SQLCS* definitions
slari 08/07/96 - add SQLT_RDD, rowid descriptor
slari 06/12/96 - remove SQLT_TTBL
dchatter 04/21/96 - prepare for merge into main
slari 08/24/95 - b299432, define CDA_SIZE
zwalcott 02/28/96 - add SQLT_BFILEE and SQLT_CFILEE.
lchidamb 02/22/96 - make dtys consistent with dtydef.h
lchidamb 02/16/96 - add SQLT_BFILEE and SQLT_CFILEE
lchidamb 01/30/96 - rename new datatypes for v8
lchidamb 09/06/95 - add new datatypes
slari 05/11/95 - add OCI_EV_DEF and OCI_EV_TSF
dchatter 04/06/95 - add ifdef flags around OCI_flags
dchatter 03/08/95 - piece values
dchatter 03/06/95 - merge changes from branch 1.2.720.3
jfbrown 02/17/95 - merge changes from branch 1.2.720.2
dchatter 02/08/95 - olog call modes
jfbrown 02/03/95 - remove non-printable characters
lchidamb 12/06/94 - merge changes from branch 1.2.720.1
lchidamb 10/04/94 - added field chk to cda_head, cda_def
dchatter 07/05/94 - SQLT_CUR added
rkooi2 11/27/92 - Changing e* datatypes to s*
rkooi2 10/26/92 - More portability mods
rkooi2 10/22/92 - Added #ifndef ORATYPES ...
rkooi2 10/18/92 - Changes to make it portable.
sjain 03/16/92 - Creation
*/
/*
* ocidfn.h
*
* Common header file for OCI C sample programs.
* This header declares the cursor and logon data area structure.
* The types used are defined in <oratypes.h>.
*
*/
#ifndef OCIDFN
#define OCIDFN
#include "oratypes.h"
/* The cda_head struct is strictly PRIVATE. It is used
internally only. Do not use this struct in OCI programs. */
struct cda_head {
sb2 v2_rc;
ub2 ft;
ub4 rpc;
ub2 peo;
ub1 fc;
ub1 rcs1;
ub2 rc;
ub1 wrn;
ub1 rcs2;
sword rcs3;
struct {
struct {
ub4 rcs4;
ub2 rcs5;
ub1 rcs6;
} rd;
ub4 rcs7;
ub2 rcs8;
} rid;
sword ose;
ub1 chk;
void *rcsp;
};
/*
** Size of HDA area:
** 512 for 64 bit arquitectures
** 256 for 32 bit arquitectures
*/
#if defined(SS_64BIT_SERVER) || defined(__64BIT__)
# define HDA_SIZE 512
#else
# define HDA_SIZE 256
#endif
#if defined(SS_64BIT_SERVER) || defined(__64BIT__)
#define CDA_SIZE 88
#else
# define CDA_SIZE 64
#endif
/* the real CDA, padded to CDA_SIZE bytes in size */
struct cda_def {
sb2 v2_rc; /* V2 return code */
ub2 ft; /* SQL function type */
ub4 rpc; /* rows processed count */
ub2 peo; /* parse error offset */
ub1 fc; /* OCI function code */
ub1 rcs1; /* filler area */
ub2 rc; /* V7 return code */
ub1 wrn; /* warning flags */
ub1 rcs2; /* reserved */
sword rcs3; /* reserved */
struct { /* rowid structure */
struct {
ub4 rcs4;
ub2 rcs5;
ub1 rcs6;
} rd;
ub4 rcs7;
ub2 rcs8;
} rid;
sword ose; /* OSD dependent error */
ub1 chk;
void *rcsp; /* pointer to reserved area */
ub1 rcs9[CDA_SIZE - sizeof (struct cda_head)]; /* filler */
};
typedef struct cda_def Cda_Def;
/* the logon data area (LDA)
is the same shape as the CDA */
typedef struct cda_def Lda_Def;
/* OCI Environment Modes for opinit call */
#define OCI_EV_DEF 0 /* default single-threaded environment */
#define OCI_EV_TSF 1 /* thread-safe environment */
/* OCI Logon Modes for olog call */
#define OCI_LM_DEF 0 /* default login */
#define OCI_LM_NBL 1 /* non-blocking logon */
/*
* since sqllib uses both ocidef and ocidfn the following defines
* need to be guarded
*/
#ifndef OCI_FLAGS
#define OCI_FLAGS
/* OCI_*_PIECE defines the piece types that are returned or set
*/
#define OCI_ONE_PIECE 0 /* there or this is the only piece */
#define OCI_FIRST_PIECE 1 /* the first of many pieces */
#define OCI_NEXT_PIECE 2 /* the next of many pieces */
#define OCI_LAST_PIECE 3 /* the last piece of this column */
#endif
#ifndef SQLDEF
/* input data types */
#define SQLT_CHR 1 /* (ORANET TYPE) character string */
#define SQLT_NUM 2 /* (ORANET TYPE) oracle numeric */
#define SQLT_INT 3 /* (ORANET TYPE) integer */
#define SQLT_FLT 4 /* (ORANET TYPE) Floating point number */
#define SQLT_STR 5 /* zero terminated string */
#define SQLT_VNU 6 /* NUM with preceding length byte */
#define SQLT_PDN 7 /* (ORANET TYPE) Packed Decimal Numeric */
#define SQLT_LNG 8 /* long */
#define SQLT_VCS 9 /* Variable character string */
#define SQLT_NON 10 /* Null/empty PCC Descriptor entry */
#define SQLT_RID 11 /* rowid */
#define SQLT_DAT 12 /* date in oracle format */
#define SQLT_VBI 15 /* binary in VCS format */
#define SQLT_BFLOAT 21 /* Native Binary float*/
#define SQLT_BDOUBLE 22 /* NAtive binary double */
#define SQLT_BIN 23 /* binary data(DTYBIN) */
#define SQLT_LBI 24 /* long binary */
#define SQLT_UIN 68 /* unsigned integer */
#define SQLT_SLS 91 /* Display sign leading separate */
#define SQLT_LVC 94 /* Longer longs (char) */
#define SQLT_LVB 95 /* Longer long binary */
#define SQLT_AFC 96 /* Ansi fixed char */
#define SQLT_AVC 97 /* Ansi Var char */
#define SQLT_IBFLOAT 100 /* binary float canonical */
#define SQLT_IBDOUBLE 101 /* binary double canonical */
#define SQLT_CUR 102 /* cursor type */
#define SQLT_RDD 104 /* rowid descriptor */
#define SQLT_LAB 105 /* label type */
#define SQLT_OSL 106 /* oslabel type */
#define SQLT_NTY 108 /* named object type */
#define SQLT_REF 110 /* ref type */
#define SQLT_CLOB 112 /* character lob */
#define SQLT_BLOB 113 /* binary lob */
#define SQLT_BFILEE 114 /* binary file lob */
#define SQLT_CFILEE 115 /* character file lob */
#define SQLT_RSET 116 /* result set type */
#define SQLT_NCO 122 /* named collection type (varray or nested table) */
#define SQLT_VST 155 /* OCIString type */
#define SQLT_ODT 156 /* OCIDate type */
/* datetimes and intervals */
#define SQLT_DATE 184 /* ANSI Date */
#define SQLT_TIME 185 /* TIME */
#define SQLT_TIME_TZ 186 /* TIME WITH TIME ZONE */
#define SQLT_TIMESTAMP 187 /* TIMESTAMP */
#define SQLT_TIMESTAMP_TZ 188 /* TIMESTAMP WITH TIME ZONE */
#define SQLT_INTERVAL_YM 189 /* INTERVAL YEAR TO MONTH */
#define SQLT_INTERVAL_DS 190 /* INTERVAL DAY TO SECOND */
#define SQLT_TIMESTAMP_LTZ 232 /* TIMESTAMP WITH LOCAL TZ */
#define SQLT_PNTY 241 /* pl/sql representation of named types */
/* cxcheng: this has been added for backward compatibility -
it needs to be here because ocidfn.h can get included ahead of sqldef.h */
#define SQLT_FILE SQLT_BFILEE /* binary file lob */
#define SQLT_CFILE SQLT_CFILEE
#define SQLT_BFILE SQLT_BFILEE
/* CHAR/NCHAR/VARCHAR2/NVARCHAR2/CLOB/NCLOB char set "form" information */
#define SQLCS_IMPLICIT 1 /* for CHAR, VARCHAR2, CLOB w/o a specified set */
#define SQLCS_NCHAR 2 /* for NCHAR, NCHAR VARYING, NCLOB */
#define SQLCS_EXPLICIT 3 /* for CHAR, etc, with "CHARACTER SET ..." syntax */
#define SQLCS_FLEXIBLE 4 /* for PL/SQL "flexible" parameters */
#define SQLCS_LIT_NULL 5 /* for typecheck of NULL and empty_clob() lits */
#endif /* SQLDEF */
#endif /* OCIDFN */