summaryrefslogtreecommitdiff
path: root/db-oracle/oracle-constants.lisp
blob: 9f76323e68fba38ccbae8e336a30eaf17f3f818c (plain)
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
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
;;;; *************************************************************************
;;;; FILE IDENTIFICATION
;;;;
;;;; Name:          oracle-constants.lisp
;;;; Purpose:       Constants for CLSQL Oracle interface
;;;;
;;;; This file is part of CLSQL.
;;;;
;;;; CLSQL users are granted the rights to distribute and use this software
;;;; as governed by the terms of the Lisp Lesser GNU Public License
;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
;;;; *************************************************************************

(in-package #:clsql-oracle)

(defconstant +oci-default+      #x00)   ; default value for parameters and attributes
(defconstant +oci-threaded+     #x01)   ; application is in threaded environment
(defconstant +oci-object+       #x02)   ; the application is in object environment
(defconstant +oci-non-blocking+ #x04)   ; non blocking mode of operation
(defconstant +oci-env-no-mutex+ #x08)   ; the environment handle will not be protected by a mutex internally

;; Handle types

(defconstant +oci-htype-env+    1)      ; environment handle
(defconstant +oci-htype-error+  2)      ; error handle
(defconstant +oci-htype-svcctx+ 3)      ; service handle
(defconstant +oci-htype-stmt+   4)      ; statement handle
(defconstant +oci-htype-bind+   5)      ; bind handle
(defconstant +oci-htype-define+ 6)      ; define handle
(defconstant +oci-htype-describe+ 7)    ; describe handle
(defconstant +oci-htype-server+ 8)      ; server handle
(defconstant +oci-htype-session+ 9)     ; authentication handle
(defconstant +oci-htype-trans+  10)     ; transaction handle
(defconstant +oci-htype-complexobject+ 11) ; complex object retrieval handle
(defconstant +oci-htype-security+ 12)   ; security handle

;; Descriptor types

(defconstant +oci-dtype-lob+               50) ; lob locator
(defconstant +oci-dtype-snap+              51) ; snapshot
(defconstant +oci-dtype-rset+              52) ; result set
(defconstant +oci-dtype-param+             53) ; parameter descriptor obtained from ocigparm
(defconstant +oci-dtype-rowid+             54) ; rowid
(defconstant +oci-dtype-complexobjectcomp+ 55) ; complex object retrieval descriptor
(defconstant +oci-dtype-file+              56) ; File Lob locator
(defconstant +oci-dtype-aqenq-options+     57) ; enqueue options
(defconstant +oci-dtype-aqdeq-options+     58) ; dequeue options
(defconstant +oci-dtype-aqmsg-properties+  59) ; message properties
(defconstant +oci-dtype-aqagent+           60) ; aq agent

;; Objectr pointer types

(defconstant +oci-otype-name+   1)      ; object name
(defconstant +oci-otype-ref+    2)      ; REF to TDO
(defconstant +oci-otype-ptr+    3)      ; PTR to TDO

;; Attribute types

(defconstant +oci-attr-fncode+                  1) ; the OCI function code
(defconstant +oci-attr-object+                  2) ; is the environment initialized in object mode
(defconstant +oci-attr-nonblocking-mode+        3) ; non blocking mode
(defconstant +oci-attr-sqlcode+                 4) ; the SQL verb
(defconstant +oci-attr-env+                     5) ; the environment handle
(defconstant +oci-attr-server+                  6) ; the server handle
(defconstant +oci-attr-session+                 7) ; the user session handle
(defconstant +oci-attr-trans+                   8) ; the transaction handle
(defconstant +oci-attr-row-count+               9) ; the rows processed so far
(defconstant +oci-attr-sqlfncode+              10) ; the SQL verb of the statement
(defconstant +oci-attr-prefetch-rows+          11) ; sets the number of rows to prefetch
(defconstant +oci-attr-nested-prefetch-rows+   12) ; the prefetch rows of nested table
(defconstant +oci-attr-prefetch-memory+        13) ; memory limit for rows fetched
(defconstant +oci-attr-nested-prefetch-memory+ 14) ; memory limit for nested rows
(defconstant +oci-attr-char-count+             15) ; this specifies the bind and define size in characters
(defconstant +oci-attr-pdscl+                  16) ; packed decimal scale
(defconstant +oci-attr-pdfmt+                  17) ; packed decimal format
(defconstant +oci-attr-param-count+            18) ; number of column in the select list
(defconstant +oci-attr-rowid+                  19) ; the rowid
(defconstant +oci-attr-charset+                20) ; the character set value
(defconstant +oci-attr-nchar+                  21) ; NCHAR type
(defconstant +oci-attr-username+               22) ; username attribute
(defconstant +oci-attr-password+               23) ; password attribute
(defconstant +oci-attr-stmt-type+              24) ; statement type
(defconstant +oci-attr-internal-name+          25) ; user friendly global name
(defconstant +oci-attr-external-name+          26) ; the internal name for global txn
(defconstant +oci-attr-xid+                    27) ; XOPEN defined global transaction id
(defconstant +oci-attr-trans-lock+             28) ;
(defconstant +oci-attr-trans-name+             29) ; string to identify a global transaction
(defconstant +oci-attr-heapalloc+              30) ; memory allocated on the heap
(defconstant +oci-attr-charset-id+             31) ; Character Set ID
(defconstant +oci-attr-charset-form+           32) ; Character Set Form
(defconstant +oci-attr-maxdata-size+           33) ; Maximumsize of data on the server
(defconstant +oci-attr-cache-opt-size+         34) ; object cache optimal size
(defconstant +oci-attr-cache-max-size+         35) ; object cache maximum size percentage
(defconstant +oci-attr-pinoption+              36) ; object cache default pin option
(defconstant +oci-attr-alloc-duration+         37) ; object cache default allocation duration
(defconstant +oci-attr-pin-duration+           38) ; object cache default pin duration
(defconstant +oci-attr-fdo+                    39) ; Format Descriptor object attribute
(defconstant +oci-attr-postprocessing-callback+ 40) ; Callback to process outbind data
(defconstant +oci-attr-postprocessing-context+ 41) ; Callback context to process outbind data
(defconstant +oci-attr-rows-returned+          42) ; Number of rows returned in current iter - for Bind handles
(defconstant +oci-attr-focbk+                  43) ; Failover Callback attribute
(defconstant +oci-attr-in-v8-mode+             44) ; is the server/service context in V8 mode
(defconstant +oci-attr-lobempty+               45) ; empty lob ?
(defconstant +oci-attr-sesslang+               46) ; session language handle

;; AQ Attribute Types
;; Enqueue Options

(defconstant +oci-attr-visibility+ 47)  ; visibility
(defconstant +oci-attr-relative-msgid+ 48) ; relative message id
(defconstant +oci-attr-sequence-deviation+ 49) ; sequence deviation

; - Dequeue Options -
    ; consumer name
;#define OCI-ATTR-DEQ-MODE 50
;(defconstant +OCI-ATTR-CONSUMER-NAME           50              + 51)                ; dequeue mode
;#define OCI-ATTR-NAVIGATION            52                     ; navigation
;#define OCI-ATTR-WAIT                  53                           ; wait
;#define OCI-ATTR-DEQ-MSGID             54             ; dequeue message id

; - Message Properties -
(defconstant +OCI-ATTR-PRIORITY+ 55)    ; priority
(defconstant +OCI-ATTR-DELAY+ 56)       ; delay
(defconstant +OCI-ATTR-EXPIRATION+ 57)  ; expiration
(defconstant +OCI-ATTR-CORRELATION+ 58) ; correlation id
(defconstant +OCI-ATTR-ATTEMPTS+ 59)    ; # of attempts
(defconstant +OCI-ATTR-RECIPIENT-LIST+ 60) ; recipient list
(defconstant +OCI-ATTR-EXCEPTION-QUEUE+ 61) ; exception queue name
(defconstant +OCI-ATTR-ENQ-TIME+ 62)    ; enqueue time (only OCIAttrGet)
(defconstant +OCI-ATTR-MSG-STATE+ 63)   ; message state (only OCIAttrGet)

;; AQ Agent
(defconstant +OCI-ATTR-AGENT-NAME+ 64)  ; agent name
(defconstant +OCI-ATTR-AGENT-ADDRESS+ 65) ; agent address
(defconstant +OCI-ATTR-AGENT-PROTOCOL+ 66) ; agent protocol

;- Server handle -
(defconstant +OCI-ATTR-NATIVE-FDES+ 67) ; native cncxn file desc

;-Parameter Attribute Types-

(defconstant +OCI-ATTR-UNK+ 101)        ; unknown attribute
(defconstant +OCI-ATTR-NUM-COLS+ 102)   ; number of columns
(defconstant +OCI-ATTR-LIST-COLUMNS+ 103) ; parameter of the column list
(defconstant +OCI-ATTR-RDBA+ 104)       ; DBA of the segment header
(defconstant +OCI-ATTR-CLUSTERED+ 105)  ; whether the table is clustered
(defconstant +OCI-ATTR-PARTITIONED+ 106) ; whether the table is partitioned
(defconstant +OCI-ATTR-INDEX-ONLY+ 107) ; whether the table is index only
(defconstant +OCI-ATTR-LIST-ARGUMENTS+ 108) ; parameter of the argument list
(defconstant +OCI-ATTR-LIST-SUBPROGRAMS+ 109) ; parameter of the subprogram list
(defconstant +OCI-ATTR-REF-TDO+ 110)    ; REF to the type descriptor
(defconstant +OCI-ATTR-LINK+ 111)       ; the database link name
(defconstant +OCI-ATTR-MIN+ 112)        ; minimum value
(defconstant +OCI-ATTR-MAX+ 113)        ; maximum value
(defconstant +OCI-ATTR-INCR+ 114)       ; increment value
(defconstant +OCI-ATTR-CACHE+ 115)      ; number of sequence numbers cached
(defconstant +OCI-ATTR-ORDER+ 116)      ; whether the sequence is ordered
(defconstant +OCI-ATTR-HW-MARK+ 117)    ; high-water mark
(defconstant +OCI-ATTR-TYPE-SCHEMA+ 118) ; type's schema name
(defconstant +OCI-ATTR-TIMESTAMP+ 119)  ; timestamp of the object
(defconstant +OCI-ATTR-NUM-ATTRS+ 120)  ; number of sttributes
(defconstant +OCI-ATTR-NUM-PARAMS+ 121) ; number of parameters
(defconstant +OCI-ATTR-OBJID+ 122)      ; object id for a table or view
(defconstant +OCI-ATTR-PTYPE+ 123)      ; type of info described by
(defconstant +OCI-ATTR-PARAM+ 124)      ; parameter descriptor
(defconstant +OCI-ATTR-OVERLOAD-ID+ 125) ; overload ID for funcs and procs
(defconstant +OCI-ATTR-TABLESPACE+ 126) ; table name space
(defconstant +OCI-ATTR-TDO+ 127)        ; TDO of a type
(defconstant +OCI-ATTR-PARSE-ERROR-OFFSET+ 128) ; Parse Error offset
;-Credential Types-
(defconstant +OCI-CRED-RDBMS+ 1)        ; database username/password
(defconstant +OCI-CRED-EXT+ 2)          ; externally provided credentials

;; Error Return Values-

(defconstant +oci-continue+             -24200) ; Continue with the body of the OCI function
(defconstant +oci-still-executing+       -3123) ; OCI would block error
(defconstant +oci-invalid-handle+           -2) ; maps to SQL-INVALID-HANDLE
(defconstant +oci-error+                    -1) ; maps to SQL-ERROR
(defconstant +oci-success+                   0) ; maps to SQL-SUCCESS of SAG CLI
(defconstant +oci-success-with-info+         1) ; maps to SQL-SUCCESS-WITH-INFO
(defconstant +oci-need-data+                99) ; maps to SQL-NEED-DATA
(defconstant +oci-no-data+                 100) ; maps to SQL-NO-DATA

;; Parsing Syntax Types-

(defconstant +oci-ntv-syntax+ 1)        ; Use what so ever is the native lang of server
(defconstant +oci-v7-syntax+ 2)         ; V7 language
(defconstant +oci-v8-syntax+ 3)         ; V8 language

;-Scrollable Cursor Options-

(defconstant +oci-fetch-next+           #x02) ; next row
(defconstant +oci-fetch-first+          #x04) ; first row of the result set
(defconstant +oci-fetch-last+           #x08) ; the last row of the result set
(defconstant +oci-fetch-prior+          #x10) ; the previous row relative to current
(defconstant +oci-fetch-absolute+       #x20) ; absolute offset from first
(defconstant +oci-fetch-relative+       #x40) ; offset relative to current

;-Bind and Define Options-

(defconstant +OCI-SB2-IND-PTR+ #x01)    ; unused
(defconstant +OCI-DATA-AT-EXEC+ #x02)   ; data at execute time
(defconstant +OCI-DYNAMIC-FETCH+ #x02)  ; fetch dynamically
(defconstant +OCI-PIECEWISE+ #x04)      ; piecewise DMLs or fetch
;-

;-Execution Modes-
(defconstant +OCI-BATCH-MODE+ #x01)     ; batch the oci statement for execution
(defconstant +OCI-EXACT-FETCH+ #x02)    ; fetch the exact rows specified
(defconstant +OCI-KEEP-FETCH-STATE+ #x04) ; unused
(defconstant +OCI-SCROLLABLE-CURSOR+ #x08) ; cursor scrollable
(defconstant +OCI-DESCRIBE-ONLY+ #x10)  ; only describe the statement
(defconstant +OCI-COMMIT-ON-SUCCESS+ #x20) ; commit, if successful execution
;-

;-Authentication Modes-
(defconstant +OCI-MIGRATE+ #x0001)      ; migratable auth context
(defconstant +OCI-SYSDBA+ #x0002)       ; for SYSDBA authorization
(defconstant +OCI-SYSOPER+ #x0004)      ; for SYSOPER authorization
(defconstant +OCI-PRELIM-AUTH+ #x0008)  ; for preliminary authorization
;-

;-Piece Information-
(defconstant +OCI-PARAM-IN+ #x01)       ; in parameter
(defconstant +OCI-PARAM-OUT+ #x02)      ; out parameter
;-

;- Transaction Start Flags -
; NOTE: OCI-TRANS-JOIN and OCI-TRANS-NOMIGRATE not supported in 8.0.X
(defconstant +OCI-TRANS-NEW+ #x00000001) ; starts a new transaction branch
(defconstant +OCI-TRANS-JOIN+ #x00000002) ; join an existing transaction
(defconstant +OCI-TRANS-RESUME+ #x00000004) ; resume this transaction
(defconstant +OCI-TRANS-STARTMASK+ #x000000ff)


(defconstant +OCI-TRANS-READONLY+ #x00000100) ; starts a readonly transaction
(defconstant +OCI-TRANS-READWRITE+ #x00000200) ; starts a read-write transaction
(defconstant +OCI-TRANS-SERIALIZABLE+ #x00000400)
                                        ; starts a serializable transaction
(defconstant +OCI-TRANS-ISOLMASK+ #x0000ff00)

(defconstant +OCI-TRANS-LOOSE+ #x00010000) ; a loosely coupled branch
(defconstant +OCI-TRANS-TIGHT+ #x00020000) ; a tightly coupled branch
(defconstant +OCI-TRANS-TYPEMASK+ #x000f0000) ;

(defconstant +OCI-TRANS-NOMIGRATE+ #x00100000) ; non migratable transaction

;-

;- Transaction End Flags -
(defconstant +OCI-TRANS-TWOPHASE+ #x01000000) ; use two phase commit
;-

;; AQ Constants
;; NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
;; The following constants must match the PL/SQL dbms-aq constants
;; NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE

; - Visibility flags -
(defconstant +OCI-ENQ-IMMEDIATE+ 1)     ; enqueue is an independent transaction
(defconstant +OCI-ENQ-ON-COMMIT+ 2)     ; enqueue is part of current transaction

; - Dequeue mode flags -
(defconstant +OCI-DEQ-BROWSE+ 1)        ; read message without acquiring a lock
(defconstant +OCI-DEQ-LOCKED+ 2)        ; read and obtain write lock on message
(defconstant +OCI-DEQ-REMOVE+ 3)        ; read the message and delete it

; - Dequeue navigation flags -
(defconstant +OCI-DEQ-FIRST-MSG+ 1)     ; get first message at head of queue
(defconstant +OCI-DEQ-NEXT-MSG+ 3)      ; next message that is available
(defconstant +OCI-DEQ-NEXT-TRANSACTION+ 2) ; get first message of next txn group

; - Message states -
(defconstant +OCI-MSG-WAITING+ 1)       ; the message delay has not yet completed
(defconstant +OCI-MSG-READY+ 0)         ; the message is ready to be processed
(defconstant +OCI-MSG-PROCESSED+ 2)     ; the message has been processed
(defconstant +OCI-MSG-EXPIRED+ 3)       ; message has moved to exception queue

; - Sequence deviation -
(defconstant +OCI-ENQ-BEFORE+ 2)        ; enqueue message before another message
(defconstant +OCI-ENQ-TOP+ 3)           ; enqueue message before all messages

; - Visibility flags -
(defconstant +OCI-DEQ-IMMEDIATE+ 1)     ; dequeue is an independent transaction
(defconstant +OCI-DEQ-ON-COMMIT+ 2)     ; dequeue is part of current transaction

; - Wait -
(defconstant +OCI-DEQ-WAIT-FOREVER+ -1) ; wait forever if no message available
(defconstant +OCI-DEQ-NO-WAIT+ 0)       ; do not wait if no message is available

; - Delay -
(defconstant +OCI-MSG-NO-DELAY+ 0)      ; message is available immediately

;; Expiration
(defconstant +OCI-MSG-NO-EXPIRATION+ -1) ; message will never expire

;; Describe Handle Parameter Attributes
;; Attributes common to Columns and Stored Procs

(defconstant +oci-attr-data-size+ 1)    ; maximum size of the data
(defconstant +oci-attr-data-type+ 2)    ; the sql type of the column/argument
(defconstant +oci-attr-disp-size+ 3)    ; the display size
(defconstant +oci-attr-name+      4)    ; the name of the column/argument
(defconstant +oci-attr-precision+ 5)    ; precision if number type
(defconstant +oci-attr-scale+     6)    ; scale if number type
(defconstant +oci-attr-is-null+   7)    ; is it null ?
(defconstant +oci-attr-type-name+ 8)

;; name of the named data type or a package name for package private types

(defconstant +OCI-ATTR-SCHEMA-NAME+ 9)  ; the schema name
(defconstant +OCI-ATTR-SUB-NAME+ 10)    ; type name if package private type
(defconstant +OCI-ATTR-POSITION+ 11)    ; relative position of col/arg in the list of cols/args

; complex object retrieval parameter attributes
(defconstant +OCI-ATTR-COMPLEXOBJECTCOMP-TYPE+ 50) ;
(defconstant +OCI-ATTR-COMPLEXOBJECTCOMP-TYPE-LEVEL+ 51) ;
(defconstant +OCI-ATTR-COMPLEXOBJECT-LEVEL+ 52) ;
(defconstant +OCI-ATTR-COMPLEXOBJECT-COLL-OUTOFLINE+ 53) ;

; Only Columns
(defconstant +OCI-ATTR-DISP-NAME+ 100)  ; the display name

;; stored procs

(defconstant +OCI-ATTR-OVERLOAD+ 210)   ; is this position overloaded
(defconstant +OCI-ATTR-LEVEL+ 211)      ; level for structured types
(defconstant +OCI-ATTR-HAS-DEFAULT+ 212) ; has a default value
(defconstant +OCI-ATTR-IOMODE+ 213)     ; in, out inout
(defconstant +OCI-ATTR-RADIX+ 214)      ; returns a radix
(defconstant +OCI-ATTR-NUM-ARGS+ 215)   ; total number of arguments

;; named type attributes

(defconstant +oci-attr-typecode+                216) ; lobject or collection
(defconstant +oci-attr-collection-typecode+     217) ; varray or nested table
(defconstant +oci-attr-version+                 218) ; user assigned version
(defconstant +oci-attr-is-incomplete-type+      219) ; is this an incomplete type
(defconstant +oci-attr-is-system-type+          220) ; a system type
(defconstant +oci-attr-is-predefined-type+      221) ; a predefined type
(defconstant +oci-attr-is-transient-type+       222) ; a transient type
(defconstant +oci-attr-is-system-generated-type+ 223) ; system generated type
(defconstant +oci-attr-has-nested-table+        224) ; contains nested table attr
(defconstant +oci-attr-has-lob+                 225) ; has a lob attribute
(defconstant +oci-attr-has-file+                226) ; has a file attribute
(defconstant +oci-attr-collection-element+      227) ; has a collection attribute
(defconstant +oci-attr-num-type-attrs+          228) ; number of attribute types
(defconstant +oci-attr-list-type-attrs+         229) ; list of type attributes
(defconstant +oci-attr-num-type-methods+        230) ; number of type methods
(defconstant +oci-attr-list-type-methods+       231) ; list of type methods
(defconstant +oci-attr-map-method+              232) ; map method of type
(defconstant +oci-attr-order-method+            233) ; order method of type

; only collection element
(defconstant +OCI-ATTR-NUM-ELEMS+ 234)  ; number of elements

; only type methods
(defconstant +OCI-ATTR-ENCAPSULATION+ 235) ; encapsulation level
(defconstant +OCI-ATTR-IS-SELFISH+ 236) ; method selfish
(defconstant +OCI-ATTR-IS-VIRTUAL+ 237) ; virtual
(defconstant +OCI-ATTR-IS-INLINE+ 238)  ; inline
(defconstant +OCI-ATTR-IS-CONSTANT+ 239) ; constant
(defconstant +OCI-ATTR-HAS-RESULT+ 240) ; has result
(defconstant +OCI-ATTR-IS-CONSTRUCTOR+ 241) ; constructor
(defconstant +OCI-ATTR-IS-DESTRUCTOR+ 242) ; destructor
(defconstant +OCI-ATTR-IS-OPERATOR+ 243) ; operator
(defconstant +OCI-ATTR-IS-MAP+ 244)     ; a map method
(defconstant +OCI-ATTR-IS-ORDER+ 245)   ; order method
(defconstant +OCI-ATTR-IS-RNDS+ 246)    ; read no data state method
(defconstant +OCI-ATTR-IS-RNPS+ 247)    ; read no process state
(defconstant +OCI-ATTR-IS-WNDS+ 248)    ; write no data state method
(defconstant +OCI-ATTR-IS-WNPS+ 249)    ; write no process state

; describing public objects
(defconstant +OCI-ATTR-DESC-PUBLIC+ 250) ; public object
;-

;-OCIPasswordChange-
(defconstant +OCI-AUTH+ #x08)           ; Change the password but do not login


;-Other Constants-
(defconstant +OCI-MAX-FNS+ 100)         ; max number of OCI Functions
(defconstant +OCI-SQLSTATE-SIZE+ 5)     ;
(defconstant +OCI-ERROR-MAXMSG-SIZE+ 1024) ; max size of an error message
;; (defconstant +OCI-LOBMAXSIZE+ 4MAXVAL)       ; maximum lob data size
(defconstant +OCI-ROWID-LEN+ 23)        ;
;-

;- Fail Over Events -
(defconstant +OCI-FO-END+ #x00000001)   ;
(defconstant +OCI-FO-ABORT+ #x00000002) ;
(defconstant +OCI-FO-REAUTH+ #x00000004) ;
(defconstant +OCI-FO-BEGIN+ #x00000008) ;
(defconstant +OCI-FO-ERROR+ #x00000010) ;
;-

;- Fail Over Types -
(defconstant +OCI-FO-NONE+ #x00000001)  ;
(defconstant +OCI-FO-SESSION+ #x00000002) ;
(defconstant +OCI-FO-SELECT+ #x00000004) ;
(defconstant +OCI-FO-TXNAL+ #x00000008) ;
;-

;-Function Codes-
(defconstant +OCI-FNCODE-INITIALIZE+ 1) ; OCIInitialize
(defconstant +OCI-FNCODE-HANDLEALLOC+ 2) ; OCIHandleAlloc
(defconstant +OCI-FNCODE-HANDLEFREE+ 3) ; OCIHandleFree
(defconstant +OCI-FNCODE-DESCRIPTORALLOC+ 4) ; OCIDescriptorAlloc
(defconstant +OCI-FNCODE-DESCRIPTORFREE+ 5) ; OCIDescriptorFree
(defconstant +OCI-FNCODE-ENVINIT+ 6)    ; OCIEnvInit
(defconstant +OCI-FNCODE-SERVERATTACH+ 7) ; OCIServerAttach
(defconstant +OCI-FNCODE-SERVERDETACH+ 8) ; OCIServerDetach
; unused         9
(defconstant +OCI-FNCODE-SESSIONBEGIN+ 10) ; OCISessionBegin
(defconstant +OCI-FNCODE-SESSIONEND+ 11) ; OCISessionEnd
(defconstant +OCI-FNCODE-PASSWORDCHANGE+ 12) ; OCIPasswordChange
(defconstant +OCI-FNCODE-STMTPREPARE+ 13) ; OCIStmtPrepare
                                                      ; unused       14- 16
(defconstant +OCI-FNCODE-BINDDYNAMIC+ 17) ; OCIBindDynamic
(defconstant +OCI-FNCODE-BINDOBJECT+ 18) ; OCIBindObject
                                                                ; 19 unused
(defconstant +OCI-FNCODE-BINDARRAYOFSTRUCT+ 20) ; OCIBindArrayOfStruct
(defconstant +OCI-FNCODE-STMTEXECUTE+ 21) ; OCIStmtExecute
                                                             ; unused 22-24
(defconstant +OCI-FNCODE-DEFINEOBJECT+ 25) ; OCIDefineObject
(defconstant +OCI-FNCODE-DEFINEDYNAMIC+ 26) ; OCIDefineDynamic
(defconstant +OCI-FNCODE-DEFINEARRAYOFSTRUCT+ 27) ; OCIDefineArrayOfStruct
(defconstant +OCI-FNCODE-STMTFETCH+ 28) ; OCIStmtFetch
(defconstant +OCI-FNCODE-STMTGETBIND+ 29) ; OCIStmtGetBindInfo
                                                            ; 30, 31 unused
(defconstant +OCI-FNCODE-DESCRIBEANY+ 32) ; OCIDescribeAny
(defconstant +OCI-FNCODE-TRANSSTART+ 33) ; OCITransStart
(defconstant +OCI-FNCODE-TRANSDETACH+ 34) ; OCITransDetach
(defconstant +OCI-FNCODE-TRANSCOMMIT+ 35) ; OCITransCommit
                                                                ; 36 unused
(defconstant +OCI-FNCODE-ERRORGET+ 37)  ; OCIErrorGet
(defconstant +OCI-FNCODE-LOBOPENFILE+ 38) ; OCILobFileOpen
(defconstant +OCI-FNCODE-LOBCLOSEFILE+ 39) ; OCILobFileClose
                                             ; 40 was LOBCREATEFILE, unused
                                         ; 41 was OCILobFileDelete, unused
(defconstant +OCI-FNCODE-LOBCOPY+ 42)   ; OCILobCopy
(defconstant +OCI-FNCODE-LOBAPPEND+ 43) ; OCILobAppend
(defconstant +OCI-FNCODE-LOBERASE+ 44)  ; OCILobErase
(defconstant +OCI-FNCODE-LOBLENGTH+ 45) ; OCILobGetLength
(defconstant +OCI-FNCODE-LOBTRIM+ 46)   ; OCILobTrim
(defconstant +OCI-FNCODE-LOBREAD+ 47)   ; OCILobRead
(defconstant +OCI-FNCODE-LOBWRITE+ 48)  ; OCILobWrite
                                                                ; 49 unused
(defconstant +OCI-FNCODE-SVCCTXBREAK+ 50) ; OCIBreak
(defconstant +OCI-FNCODE-SERVERVERSION+ 51) ; OCIServerVersion
; unused 52, 53
(defconstant +OCI-FNCODE-ATTRGET+ 54)   ; OCIAttrGet
(defconstant +OCI-FNCODE-ATTRSET+ 55)   ; OCIAttrSet
(defconstant +OCI-FNCODE-PARAMSET+ 56)  ; OCIParamSet
(defconstant +OCI-FNCODE-PARAMGET+ 57)  ; OCIParamGet
(defconstant +OCI-FNCODE-STMTGETPIECEINFO+ 58) ; OCIStmtGetPieceInfo
(defconstant +OCI-FNCODE-LDATOSVCCTX+ 59) ; OCILdaToSvcCtx
                                                                ; 60 unused
(defconstant +OCI-FNCODE-STMTSETPIECEINFO+ 61) ; OCIStmtSetPieceInfo
(defconstant +OCI-FNCODE-TRANSFORGET+ 62) ; OCITransForget
(defconstant +OCI-FNCODE-TRANSPREPARE+ 63) ; OCITransPrepare
(defconstant +OCI-FNCODE-TRANSROLLBACK+ 64) ; OCITransRollback
(defconstant +OCI-FNCODE-DEFINEBYPOS+ 65) ; OCIDefineByPos
(defconstant +OCI-FNCODE-BINDBYPOS+ 66) ; OCIBindByPos
(defconstant +OCI-FNCODE-BINDBYNAME+ 67) ; OCIBindByName
(defconstant +OCI-FNCODE-LOBASSIGN+ 68) ; OCILobAssign
(defconstant +OCI-FNCODE-LOBISEQUAL+ 69) ; OCILobIsEqual
(defconstant +OCI-FNCODE-LOBISINIT+ 70) ; OCILobLocatorIsInit
; 71 was lob locator size in beta2
(defconstant +OCI-FNCODE-LOBENABLEBUFFERING+ 71) ; OCILobEnableBuffering
(defconstant +OCI-FNCODE-LOBCHARSETID+ 72) ; OCILobCharSetID
(defconstant +OCI-FNCODE-LOBCHARSETFORM+ 73) ; OCILobCharSetForm
(defconstant +OCI-FNCODE-LOBFILESETNAME+ 74) ; OCILobFileSetName
(defconstant +OCI-FNCODE-LOBFILEGETNAME+ 75) ; OCILobFileGetName
(defconstant +OCI-FNCODE-LOGON+ 76)     ; OCILogon
(defconstant +OCI-FNCODE-LOGOFF+ 77)    ; OCILogoff
(defconstant +OCI-FNCODE-LOBDISABLEBUFFERING+ 78) ; OCILobDisableBuffering
(defconstant +OCI-FNCODE-LOBFLUSHBUFFER+ 79) ; OCILobFlushBuffer
(defconstant +OCI-FNCODE-LOBLOADFROMFILE+ 80) ; OCILobLoadFromFile


;-

;- FILE open modes -
(defconstant +OCI-FILE-READONLY+ 1)     ; readonly mode open for FILE types
;-

;- LOB Buffering Flush Flags -
(defconstant +OCI-LOB-BUFFER-FREE+ 1)   ;
(defconstant +OCI-LOB-BUFFER-NOFREE+ 2) ;
;-

;- OCI Statement Types -

(defconstant +oci-stmt-select+ 1)       ; select statement
(defconstant +oci-stmt-update+ 2)       ; update statement
(defconstant +oci-stmt-delete+ 3)       ; delete statement
(defconstant +oci-stmt-insert+ 4)       ; insert statement
(defconstant +oci-stmt-create+ 5)       ; create statement
(defconstant +oci-stmt-drop+ 6)         ; drop statement
(defconstant +oci-stmt-alter+ 7)        ; alter statement
(defconstant +oci-stmt-begin+ 8)        ; begin ... (pl/sql statement)
(defconstant +oci-stmt-declare+ 9)      ; declare .. (pl/sql statement )
;-

;- OCI Parameter Types -
(defconstant +OCI-PTYPE-UNK+ 0)         ; unknown
(defconstant +OCI-PTYPE-TABLE+ 1)       ; table
(defconstant +OCI-PTYPE-VIEW+ 2)        ; view
(defconstant +OCI-PTYPE-PROC+ 3)        ; procedure
(defconstant +OCI-PTYPE-FUNC+ 4)        ; function
(defconstant +OCI-PTYPE-PKG+ 5)         ; package
(defconstant +OCI-PTYPE-TYPE+ 6)        ; user-defined type
(defconstant +OCI-PTYPE-SYN+ 7)         ; synonym
(defconstant +OCI-PTYPE-SEQ+ 8)         ; sequence
(defconstant +OCI-PTYPE-COL+ 9)         ; column
(defconstant +OCI-PTYPE-ARG+ 10)        ; argument
(defconstant +OCI-PTYPE-LIST+ 11)       ; list
(defconstant +OCI-PTYPE-TYPE-ATTR+ 12)  ; user-defined type's attribute
(defconstant +OCI-PTYPE-TYPE-COLL+ 13)  ; collection type's element
(defconstant +OCI-PTYPE-TYPE-METHOD+ 14) ; user-defined type's method
(defconstant +OCI-PTYPE-TYPE-ARG+ 15)   ; user-defined type method's argument
(defconstant +OCI-PTYPE-TYPE-RESULT+ 16) ; user-defined type method's result
;-

;- OCI List Types -
(defconstant +OCI-LTYPE-UNK+ 0)         ; unknown
(defconstant +OCI-LTYPE-COLUMN+ 1)      ; column list
(defconstant +OCI-LTYPE-ARG-PROC+ 2)    ; procedure argument list
(defconstant +OCI-LTYPE-ARG-FUNC+ 3)    ; function argument list
(defconstant +OCI-LTYPE-SUBPRG+ 4)      ; subprogram list
(defconstant +OCI-LTYPE-TYPE-ATTR+ 5)   ; type attribute
(defconstant +OCI-LTYPE-TYPE-METHOD+ 6) ; type method
(defconstant +OCI-LTYPE-TYPE-ARG-PROC+ 7) ; type method w/o result argument list
(defconstant +OCI-LTYPE-TYPE-ARG-FUNC+ 8) ; type method w/result argument list

;; typecodes