oracledb 5.5.0 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/CHANGELOG.md +1 -1875
  2. package/LICENSE.txt +8 -222
  3. package/NOTICE.txt +1 -1
  4. package/README.md +38 -30
  5. package/SECURITY.md +38 -0
  6. package/build/Release/oracledb-6.0.1-darwin-x64.node +0 -0
  7. package/build/Release/oracledb-6.0.1-darwin-x64.node-buildinfo.txt +1 -0
  8. package/build/Release/oracledb-6.0.1-js-buildinfo.txt +1 -0
  9. package/build/Release/oracledb-6.0.1-linux-arm64.node +0 -0
  10. package/build/Release/oracledb-6.0.1-linux-arm64.node-buildinfo.txt +1 -0
  11. package/build/Release/oracledb-6.0.1-linux-x64.node +0 -0
  12. package/build/Release/oracledb-6.0.1-linux-x64.node-buildinfo.txt +1 -0
  13. package/build/Release/oracledb-6.0.1-win32-x64.node +0 -0
  14. package/build/Release/oracledb-6.0.1-win32-x64.node-buildinfo.txt +1 -0
  15. package/examples/README.md +113 -0
  16. package/examples/dbconfig.js +100 -0
  17. package/examples/example.js +156 -0
  18. package/index.js +26 -0
  19. package/lib/aqDeqOptions.js +148 -8
  20. package/lib/aqEnqOptions.js +59 -7
  21. package/lib/aqMessage.js +118 -7
  22. package/lib/aqQueue.js +243 -53
  23. package/lib/connection.js +1326 -465
  24. package/lib/constants.js +203 -0
  25. package/lib/dbObject.js +346 -32
  26. package/lib/errors.js +785 -0
  27. package/lib/impl/aqDeqOptions.js +197 -0
  28. package/lib/impl/aqEnqOptions.js +89 -0
  29. package/lib/impl/aqMessage.js +134 -0
  30. package/lib/impl/aqQueue.js +81 -0
  31. package/lib/impl/connection.js +529 -0
  32. package/lib/impl/dbObject.js +159 -0
  33. package/lib/impl/index.js +59 -0
  34. package/lib/impl/lob.js +85 -0
  35. package/lib/impl/pool.js +195 -0
  36. package/lib/impl/resultset.js +223 -0
  37. package/lib/impl/sodaCollection.js +174 -0
  38. package/lib/impl/sodaDatabase.js +81 -0
  39. package/lib/impl/sodaDocCursor.js +63 -0
  40. package/lib/impl/sodaDocument.js +98 -0
  41. package/lib/impl/sodaOperation.js +109 -0
  42. package/lib/lob.js +157 -68
  43. package/lib/oracledb.js +1047 -345
  44. package/lib/pool.js +654 -465
  45. package/lib/poolStatistics.js +24 -9
  46. package/lib/queryStream.js +16 -8
  47. package/lib/resultset.js +291 -183
  48. package/lib/settings.js +191 -0
  49. package/lib/sodaCollection.js +214 -201
  50. package/lib/sodaDatabase.js +108 -71
  51. package/lib/sodaDocCursor.js +44 -32
  52. package/lib/sodaDocument.js +76 -14
  53. package/lib/sodaOperation.js +131 -118
  54. package/lib/thin/connection.js +1043 -0
  55. package/lib/thin/dbObject.js +630 -0
  56. package/lib/thin/index.js +40 -0
  57. package/lib/thin/lob.js +189 -0
  58. package/lib/thin/pool.js +481 -0
  59. package/lib/thin/protocol/buffer.js +1043 -0
  60. package/lib/thin/protocol/capabilities.js +121 -0
  61. package/lib/thin/protocol/constants.js +765 -0
  62. package/lib/thin/protocol/encryptDecrypt.js +185 -0
  63. package/lib/thin/protocol/messages/auth.js +349 -0
  64. package/lib/thin/protocol/messages/base.js +476 -0
  65. package/lib/thin/protocol/messages/commit.js +56 -0
  66. package/lib/thin/protocol/messages/dataType.js +391 -0
  67. package/lib/thin/protocol/messages/execute.js +312 -0
  68. package/lib/thin/protocol/messages/fetch.js +60 -0
  69. package/lib/thin/protocol/messages/index.js +53 -0
  70. package/lib/thin/protocol/messages/lobOp.js +201 -0
  71. package/lib/thin/protocol/messages/logOff.js +53 -0
  72. package/lib/thin/protocol/messages/ping.js +56 -0
  73. package/lib/thin/protocol/messages/protocol.js +78 -0
  74. package/lib/thin/protocol/messages/rollback.js +56 -0
  75. package/lib/thin/protocol/messages/sessionRelease.js +60 -0
  76. package/lib/thin/protocol/messages/withData.js +812 -0
  77. package/lib/thin/protocol/oson.js +661 -0
  78. package/lib/thin/protocol/packet.js +519 -0
  79. package/lib/thin/protocol/protocol.js +202 -0
  80. package/lib/thin/protocol/utils.js +89 -0
  81. package/lib/thin/resultSet.js +122 -0
  82. package/lib/thin/sqlnet/connStrategy.js +175 -0
  83. package/lib/thin/sqlnet/constants.js +199 -0
  84. package/lib/thin/sqlnet/ezConnectResolver.js +488 -0
  85. package/lib/thin/sqlnet/navNodes.js +870 -0
  86. package/lib/thin/sqlnet/networkSession.js +621 -0
  87. package/lib/thin/sqlnet/ntTcp.js +527 -0
  88. package/lib/thin/sqlnet/nvStrToNvPair.js +783 -0
  89. package/lib/thin/sqlnet/packet.js +405 -0
  90. package/lib/thin/sqlnet/paramParser.js +206 -0
  91. package/lib/thin/sqlnet/sessionAtts.js +160 -0
  92. package/lib/thin/statement.js +300 -0
  93. package/lib/thin/util.js +289 -0
  94. package/lib/transformer.js +252 -0
  95. package/lib/types.js +357 -0
  96. package/lib/util.js +196 -110
  97. package/lib/version.js +36 -0
  98. package/package/README.md +33 -30
  99. package/package/install.js +89 -64
  100. package/package/prunebinaries.js +60 -12
  101. package/package.json +3 -3
  102. package/build/Release/oracledb-5.5.0-darwin-x64.node +0 -0
  103. package/build/Release/oracledb-5.5.0-darwin-x64.node-buildinfo.txt +0 -1
  104. package/build/Release/oracledb-5.5.0-linux-x64.node +0 -0
  105. package/build/Release/oracledb-5.5.0-linux-x64.node-buildinfo.txt +0 -1
  106. package/build/Release/oracledb-5.5.0-win32-x64.node +0 -0
  107. package/build/Release/oracledb-5.5.0-win32-x64.node-buildinfo.txt +0 -1
@@ -0,0 +1,765 @@
1
+ // Copyright (c) 2022, 2023, Oracle and/or its affiliates.
2
+
3
+ //-----------------------------------------------------------------------------
4
+ //
5
+ // This software is dual-licensed to you under the Universal Permissive License
6
+ // (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl and Apache License
7
+ // 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose
8
+ // either license.
9
+ //
10
+ // If you elect to accept the software under the Apache License, Version 2.0,
11
+ // the following applies:
12
+ //
13
+ // Licensed under the Apache License, Version 2.0 (the "License");
14
+ // you may not use this file except in compliance with the License.
15
+ // You may obtain a copy of the License at
16
+ //
17
+ // https://www.apache.org/licenses/LICENSE-2.0
18
+ //
19
+ // Unless required by applicable law or agreed to in writing, software
20
+ // distributed under the License is distributed on an "AS IS" BASIS,
21
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
+ // See the License for the specific language governing permissions and
23
+ // limitations under the License.
24
+ //
25
+ //-----------------------------------------------------------------------------
26
+
27
+ 'use strict';
28
+
29
+ const { Buffer } = require('buffer');
30
+ const constants = require('../../constants.js');
31
+
32
+ module.exports = {
33
+
34
+ // constants from upper level exposed here in order to avoid having multiple
35
+ // files containing constants
36
+ BIND_IN: constants.BIND_IN,
37
+ BIND_INOUT: constants.BIND_INOUT,
38
+ BIND_OUT: constants.BIND_OUT,
39
+ CLIENT_VERSION:
40
+ constants.VERSION_MAJOR << 24 |
41
+ constants.VERSION_MINOR << 20 |
42
+ constants.VERSION_PATCH << 12,
43
+ DRIVER_NAME: constants.DEFAULT_DRIVER_NAME + ' thn',
44
+ SYSASM: constants.SYSASM,
45
+ SYSBKP: constants.SYSBKP,
46
+ SYSDBA: constants.SYSDBA,
47
+ SYSDG: constants.SYSDG,
48
+ SYSKM: constants.SYSKM,
49
+ SYSOPER: constants.SYSOPER,
50
+ SYSRAC: constants.SYSRAC,
51
+
52
+ // authentication modes
53
+ AUTH_MODE_DEFAULT: 0,
54
+ AUTH_MODE_PRELIM : 0x00000008,
55
+ AUTH_MODE_SYSASM : 0x00008000,
56
+ AUTH_MODE_SYSBKP : 0x00020000,
57
+ AUTH_MODE_SYSDBA : 0x00000002,
58
+ AUTH_MODE_SYSDGD : 0x00040000,
59
+ AUTH_MODE_SYSKMT : 0x00080000,
60
+ AUTH_MODE_SYSOPER: 0x00000004,
61
+ AUTH_MODE_SYSRAC : 0x00100000,
62
+
63
+ // TTC authentication modes
64
+ TNS_AUTH_MODE_LOGON: 0x00000001,
65
+ TNS_AUTH_MODE_CHANGE_PASSWORD: 0x00000002,
66
+ TNS_AUTH_MODE_SYSDBA: 0x00000020,
67
+ TNS_AUTH_MODE_SYSOPER: 0x00000040,
68
+ TNS_AUTH_MODE_PRELIM: 0x00000080,
69
+ TNS_AUTH_MODE_WITH_PASSWORD: 0x00000100,
70
+ TNS_AUTH_MODE_SYSASM: 0x00400000,
71
+ TNS_AUTH_MODE_SYSBKP: 0x01000000,
72
+ TNS_AUTH_MODE_SYSDGD: 0x02000000,
73
+ TNS_AUTH_MODE_SYSKMT: 0x04000000,
74
+ TNS_AUTH_MODE_SYSRAC: 0x08000000,
75
+ TNS_AUTH_MODE_IAM_TOKEN: 0x20000000,
76
+
77
+ // packet types
78
+ TNS_PACKET_TYPE_CONNECT: 1,
79
+ TNS_PACKET_TYPE_ACCEPT: 2,
80
+ TNS_PACKET_TYPE_REFUSE: 4,
81
+ TNS_PACKET_TYPE_REDIRECT: 5,
82
+ TNS_PACKET_TYPE_DATA: 6,
83
+ TNS_PACKET_TYPE_RESEND: 11,
84
+ TNS_PACKET_TYPE_MARKER: 12,
85
+ TNS_PACKET_TYPE_CONTROL: 14,
86
+
87
+ // marker types
88
+ TNS_MARKER_TYPE_BREAK: 1,
89
+ TNS_MARKER_TYPE_RESET: 2,
90
+
91
+ // charset forms
92
+ TNS_CS_IMPLICIT: 1,
93
+ TNS_CS_NCHAR: 2,
94
+
95
+ // data types
96
+ TNS_DATA_TYPE_DEFAULT: 0,
97
+ TNS_DATA_TYPE_VARCHAR: 1,
98
+ TNS_DATA_TYPE_NUMBER: 2,
99
+ TNS_DATA_TYPE_BINARY_INTEGER: 3,
100
+ TNS_DATA_TYPE_FLOAT: 4,
101
+ TNS_DATA_TYPE_STR: 5,
102
+ TNS_DATA_TYPE_VNU: 6,
103
+ TNS_DATA_TYPE_PDN: 7,
104
+ TNS_DATA_TYPE_LONG: 8,
105
+ TNS_DATA_TYPE_VCS: 9,
106
+ TNS_DATA_TYPE_TIDDEF: 10,
107
+ TNS_DATA_TYPE_ROWID: 11,
108
+ TNS_DATA_TYPE_DATE: 12,
109
+ TNS_DATA_TYPE_VBI: 15,
110
+ TNS_DATA_TYPE_RAW: 23,
111
+ TNS_DATA_TYPE_LONG_RAW: 24,
112
+ TNS_DATA_TYPE_UB2: 25,
113
+ TNS_DATA_TYPE_UB4: 26,
114
+ TNS_DATA_TYPE_SB1: 27,
115
+ TNS_DATA_TYPE_SB2: 28,
116
+ TNS_DATA_TYPE_SB4: 29,
117
+ TNS_DATA_TYPE_SWORD: 30,
118
+ TNS_DATA_TYPE_UWORD: 31,
119
+ TNS_DATA_TYPE_PTRB: 32,
120
+ TNS_DATA_TYPE_PTRW: 33,
121
+ TNS_DATA_TYPE_OER8: 34 + 256,
122
+ TNS_DATA_TYPE_FUN: 35 + 256,
123
+ TNS_DATA_TYPE_AUA: 36 + 256,
124
+ TNS_DATA_TYPE_RXH7: 37 + 256,
125
+ TNS_DATA_TYPE_NA6: 38 + 256,
126
+ TNS_DATA_TYPE_OAC: 39,
127
+ TNS_DATA_TYPE_AMS: 40,
128
+ TNS_DATA_TYPE_BRN: 41,
129
+ TNS_DATA_TYPE_BRP: 42 + 256,
130
+ TNS_DATA_TYPE_BRV: 43 + 256,
131
+ TNS_DATA_TYPE_KVA: 44 + 256,
132
+ TNS_DATA_TYPE_CLS: 45 + 256,
133
+ TNS_DATA_TYPE_CUI: 46 + 256,
134
+ TNS_DATA_TYPE_DFN: 47 + 256,
135
+ TNS_DATA_TYPE_DQR: 48 + 256,
136
+ TNS_DATA_TYPE_DSC: 49 + 256,
137
+ TNS_DATA_TYPE_EXE: 50 + 256,
138
+ TNS_DATA_TYPE_FCH: 51 + 256,
139
+ TNS_DATA_TYPE_GBV: 52 + 256,
140
+ TNS_DATA_TYPE_GEM: 53 + 256,
141
+ TNS_DATA_TYPE_GIV: 54 + 256,
142
+ TNS_DATA_TYPE_OKG: 55 + 256,
143
+ TNS_DATA_TYPE_HMI: 56 + 256,
144
+ TNS_DATA_TYPE_INO: 57 + 256,
145
+ TNS_DATA_TYPE_LNF: 59 + 256,
146
+ TNS_DATA_TYPE_ONT: 60 + 256,
147
+ TNS_DATA_TYPE_OPE: 61 + 256,
148
+ TNS_DATA_TYPE_OSQ: 62 + 256,
149
+ TNS_DATA_TYPE_SFE: 63 + 256,
150
+ TNS_DATA_TYPE_SPF: 64 + 256,
151
+ TNS_DATA_TYPE_VSN: 65 + 256,
152
+ TNS_DATA_TYPE_UD7: 66 + 256,
153
+ TNS_DATA_TYPE_DSA: 67 + 256,
154
+ TNS_DATA_TYPE_UIN: 68,
155
+ TNS_DATA_TYPE_PIN: 71 + 256,
156
+ TNS_DATA_TYPE_PFN: 72 + 256,
157
+ TNS_DATA_TYPE_PPT: 73 + 256,
158
+ TNS_DATA_TYPE_STO: 75 + 256,
159
+ TNS_DATA_TYPE_ARC: 77 + 256,
160
+ TNS_DATA_TYPE_MRS: 78 + 256,
161
+ TNS_DATA_TYPE_MRT: 79 + 256,
162
+ TNS_DATA_TYPE_MRG: 80 + 256,
163
+ TNS_DATA_TYPE_MRR: 81 + 256,
164
+ TNS_DATA_TYPE_MRC: 82 + 256,
165
+ TNS_DATA_TYPE_VER: 83 + 256,
166
+ TNS_DATA_TYPE_LON2: 84 + 256,
167
+ TNS_DATA_TYPE_INO2: 85 + 256,
168
+ TNS_DATA_TYPE_ALL: 86 + 256,
169
+ TNS_DATA_TYPE_UDB: 87 + 256,
170
+ TNS_DATA_TYPE_AQI: 88 + 256,
171
+ TNS_DATA_TYPE_ULB: 89 + 256,
172
+ TNS_DATA_TYPE_ULD: 90 + 256,
173
+ TNS_DATA_TYPE_SLS: 91,
174
+ TNS_DATA_TYPE_SID: 92 + 256,
175
+ TNS_DATA_TYPE_NA7: 93 + 256,
176
+ TNS_DATA_TYPE_LVC: 94,
177
+ TNS_DATA_TYPE_LVB: 95,
178
+ TNS_DATA_TYPE_CHAR: 96,
179
+ TNS_DATA_TYPE_AVC: 97,
180
+ TNS_DATA_TYPE_AL7: 98 + 256,
181
+ TNS_DATA_TYPE_K2RPC: 99 + 256,
182
+ TNS_DATA_TYPE_BINARY_FLOAT: 100,
183
+ TNS_DATA_TYPE_BINARY_DOUBLE: 101,
184
+ TNS_DATA_TYPE_CURSOR: 102,
185
+ TNS_DATA_TYPE_RDD: 104,
186
+ TNS_DATA_TYPE_XDP: 103 + 256,
187
+ TNS_DATA_TYPE_OSL: 106,
188
+ TNS_DATA_TYPE_OKO8: 107 + 256,
189
+ TNS_DATA_TYPE_EXT_NAMED: 108,
190
+ TNS_DATA_TYPE_INT_NAMED: 109,
191
+ TNS_DATA_TYPE_EXT_REF: 110,
192
+ TNS_DATA_TYPE_INT_REF: 111,
193
+ TNS_DATA_TYPE_CLOB: 112,
194
+ TNS_DATA_TYPE_BLOB: 113,
195
+ TNS_DATA_TYPE_BFILE: 114,
196
+ TNS_DATA_TYPE_CFILE: 115,
197
+ TNS_DATA_TYPE_RSET: 116,
198
+ TNS_DATA_TYPE_CWD: 117,
199
+ TNS_DATA_TYPE_JSON: 119,
200
+ TNS_DATA_TYPE_NEW_OAC: 120,
201
+ TNS_DATA_TYPE_UD12: 124 + 256,
202
+ TNS_DATA_TYPE_AL8: 125 + 256,
203
+ TNS_DATA_TYPE_LFOP: 126 + 256,
204
+ TNS_DATA_TYPE_FCRT: 127 + 256,
205
+ TNS_DATA_TYPE_DNY: 128 + 256,
206
+ TNS_DATA_TYPE_OPR: 129 + 256,
207
+ TNS_DATA_TYPE_PLS: 130 + 256,
208
+ TNS_DATA_TYPE_XID: 131 + 256,
209
+ TNS_DATA_TYPE_TXN: 132 + 256,
210
+ TNS_DATA_TYPE_DCB: 133 + 256,
211
+ TNS_DATA_TYPE_CCA: 134 + 256,
212
+ TNS_DATA_TYPE_WRN: 135 + 256,
213
+ TNS_DATA_TYPE_TLH: 137 + 256,
214
+ TNS_DATA_TYPE_TOH: 138 + 256,
215
+ TNS_DATA_TYPE_FOI: 139 + 256,
216
+ TNS_DATA_TYPE_SID2: 140 + 256,
217
+ TNS_DATA_TYPE_TCH: 141 + 256,
218
+ TNS_DATA_TYPE_PII: 142 + 256,
219
+ TNS_DATA_TYPE_PFI: 143 + 256,
220
+ TNS_DATA_TYPE_PPU: 144 + 256,
221
+ TNS_DATA_TYPE_PTE: 145 + 256,
222
+ TNS_DATA_TYPE_CLV: 146,
223
+ TNS_DATA_TYPE_RXH8: 148 + 256,
224
+ TNS_DATA_TYPE_N12: 149 + 256,
225
+ TNS_DATA_TYPE_AUTH: 150 + 256,
226
+ TNS_DATA_TYPE_KVAL: 151 + 256,
227
+ TNS_DATA_TYPE_DTR: 152,
228
+ TNS_DATA_TYPE_DUN: 153,
229
+ TNS_DATA_TYPE_DOP: 154,
230
+ TNS_DATA_TYPE_VST: 155,
231
+ TNS_DATA_TYPE_ODT: 156,
232
+ TNS_DATA_TYPE_FGI: 157 + 256,
233
+ TNS_DATA_TYPE_DSY: 158 + 256,
234
+ TNS_DATA_TYPE_DSYR8: 159 + 256,
235
+ TNS_DATA_TYPE_DSYH8: 160 + 256,
236
+ TNS_DATA_TYPE_DSYL: 161 + 256,
237
+ TNS_DATA_TYPE_DSYT8: 162 + 256,
238
+ TNS_DATA_TYPE_DSYV8: 163 + 256,
239
+ TNS_DATA_TYPE_DSYP: 164 + 256,
240
+ TNS_DATA_TYPE_DSYF: 165 + 256,
241
+ TNS_DATA_TYPE_DSYK: 166 + 256,
242
+ TNS_DATA_TYPE_DSYY: 167 + 256,
243
+ TNS_DATA_TYPE_DSYQ: 168 + 256,
244
+ TNS_DATA_TYPE_DSYC: 169 + 256,
245
+ TNS_DATA_TYPE_DSYA: 170 + 256,
246
+ TNS_DATA_TYPE_OT8: 171 + 256,
247
+ TNS_DATA_TYPE_DOL: 172,
248
+ TNS_DATA_TYPE_DSYTY: 173 + 256,
249
+ TNS_DATA_TYPE_AQE: 174 + 256,
250
+ TNS_DATA_TYPE_KV: 175 + 256,
251
+ TNS_DATA_TYPE_AQD: 176 + 256,
252
+ TNS_DATA_TYPE_AQ8: 177 + 256,
253
+ TNS_DATA_TYPE_TIME: 178,
254
+ TNS_DATA_TYPE_TIME_TZ: 179,
255
+ TNS_DATA_TYPE_TIMESTAMP: 180,
256
+ TNS_DATA_TYPE_TIMESTAMP_TZ: 181,
257
+ TNS_DATA_TYPE_INTERVAL_YM: 182,
258
+ TNS_DATA_TYPE_INTERVAL_DS: 183,
259
+ TNS_DATA_TYPE_EDATE: 184,
260
+ TNS_DATA_TYPE_ETIME: 185,
261
+ TNS_DATA_TYPE_ETTZ: 186,
262
+ TNS_DATA_TYPE_ESTAMP: 187,
263
+ TNS_DATA_TYPE_ESTZ: 188,
264
+ TNS_DATA_TYPE_EIYM: 189,
265
+ TNS_DATA_TYPE_EIDS: 190,
266
+ TNS_DATA_TYPE_RFS: 193 + 256,
267
+ TNS_DATA_TYPE_RXH10: 194 + 256,
268
+ TNS_DATA_TYPE_DCLOB: 195,
269
+ TNS_DATA_TYPE_DBLOB: 196,
270
+ TNS_DATA_TYPE_DBFILE: 197,
271
+ TNS_DATA_TYPE_DJSON: 198,
272
+ TNS_DATA_TYPE_KPN: 198 + 256,
273
+ TNS_DATA_TYPE_KPDNR: 199 + 256,
274
+ TNS_DATA_TYPE_DSYD: 200 + 256,
275
+ TNS_DATA_TYPE_DSYS: 201 + 256,
276
+ TNS_DATA_TYPE_DSYR: 202 + 256,
277
+ TNS_DATA_TYPE_DSYH: 203 + 256,
278
+ TNS_DATA_TYPE_DSYT: 204 + 256,
279
+ TNS_DATA_TYPE_DSYV: 205 + 256,
280
+ TNS_DATA_TYPE_AQM: 206 + 256,
281
+ TNS_DATA_TYPE_OER11: 207 + 256,
282
+ TNS_DATA_TYPE_UROWID: 208,
283
+ TNS_DATA_TYPE_AQL: 210 + 256,
284
+ TNS_DATA_TYPE_OTC: 211 + 256,
285
+ TNS_DATA_TYPE_KFNO: 212 + 256,
286
+ TNS_DATA_TYPE_KFNP: 213 + 256,
287
+ TNS_DATA_TYPE_KGT8: 214 + 256,
288
+ TNS_DATA_TYPE_RASB4: 215 + 256,
289
+ TNS_DATA_TYPE_RAUB2: 216 + 256,
290
+ TNS_DATA_TYPE_RAUB1: 217 + 256,
291
+ TNS_DATA_TYPE_RATXT: 218 + 256,
292
+ TNS_DATA_TYPE_RSSB4: 219 + 256,
293
+ TNS_DATA_TYPE_RSUB2: 220 + 256,
294
+ TNS_DATA_TYPE_RSUB1: 221 + 256,
295
+ TNS_DATA_TYPE_RSTXT: 222 + 256,
296
+ TNS_DATA_TYPE_RIDL: 223 + 256,
297
+ TNS_DATA_TYPE_GLRDD: 224 + 256,
298
+ TNS_DATA_TYPE_GLRDG: 225 + 256,
299
+ TNS_DATA_TYPE_GLRDC: 226 + 256,
300
+ TNS_DATA_TYPE_OKO: 227 + 256,
301
+ TNS_DATA_TYPE_DPP: 228 + 256,
302
+ TNS_DATA_TYPE_DPLS: 229 + 256,
303
+ TNS_DATA_TYPE_DPMOP: 230 + 256,
304
+ TNS_DATA_TYPE_TIMESTAMP_LTZ: 231,
305
+ TNS_DATA_TYPE_ESITZ: 232,
306
+ TNS_DATA_TYPE_UB8: 233,
307
+ TNS_DATA_TYPE_STAT: 234 + 256,
308
+ TNS_DATA_TYPE_RFX: 235 + 256,
309
+ TNS_DATA_TYPE_FAL: 236 + 256,
310
+ TNS_DATA_TYPE_CKV: 237 + 256,
311
+ TNS_DATA_TYPE_DRCX: 238 + 256,
312
+ TNS_DATA_TYPE_KGH: 239 + 256,
313
+ TNS_DATA_TYPE_AQO: 240 + 256,
314
+ TNS_DATA_TYPE_PNTY: 241,
315
+ TNS_DATA_TYPE_OKGT: 242 + 256,
316
+ TNS_DATA_TYPE_KPFC: 243 + 256,
317
+ TNS_DATA_TYPE_FE2: 244 + 256,
318
+ TNS_DATA_TYPE_SPFP: 245 + 256,
319
+ TNS_DATA_TYPE_DPULS: 246 + 256,
320
+ TNS_DATA_TYPE_BOOLEAN: 252,
321
+ TNS_DATA_TYPE_AQA: 253 + 256,
322
+ TNS_DATA_TYPE_KPBF: 254 + 256,
323
+ TNS_DATA_TYPE_TSM: 513,
324
+ TNS_DATA_TYPE_MSS: 514,
325
+ TNS_DATA_TYPE_KPC: 516,
326
+ TNS_DATA_TYPE_CRS: 517,
327
+ TNS_DATA_TYPE_KKS: 518,
328
+ TNS_DATA_TYPE_KSP: 519,
329
+ TNS_DATA_TYPE_KSPTOP: 520,
330
+ TNS_DATA_TYPE_KSPVAL: 521,
331
+ TNS_DATA_TYPE_PSS: 522,
332
+ TNS_DATA_TYPE_NLS: 523,
333
+ TNS_DATA_TYPE_ALS: 524,
334
+ TNS_DATA_TYPE_KSDEVTVAL: 525,
335
+ TNS_DATA_TYPE_KSDEVTTOP: 526,
336
+ TNS_DATA_TYPE_KPSPP: 527,
337
+ TNS_DATA_TYPE_KOL: 528,
338
+ TNS_DATA_TYPE_LST: 529,
339
+ TNS_DATA_TYPE_ACX: 530,
340
+ TNS_DATA_TYPE_SCS: 531,
341
+ TNS_DATA_TYPE_RXH: 532,
342
+ TNS_DATA_TYPE_KPDNS: 533,
343
+ TNS_DATA_TYPE_KPDCN: 534,
344
+ TNS_DATA_TYPE_KPNNS: 535,
345
+ TNS_DATA_TYPE_KPNCN: 536,
346
+ TNS_DATA_TYPE_KPS: 537,
347
+ TNS_DATA_TYPE_APINF: 538,
348
+ TNS_DATA_TYPE_TEN: 539,
349
+ TNS_DATA_TYPE_XSSCS: 540,
350
+ TNS_DATA_TYPE_XSSSO: 541,
351
+ TNS_DATA_TYPE_XSSAO: 542,
352
+ TNS_DATA_TYPE_KSRPC: 543,
353
+ TNS_DATA_TYPE_KVL: 560,
354
+ TNS_DATA_TYPE_SESSGET: 563,
355
+ TNS_DATA_TYPE_SESSREL: 564,
356
+ TNS_DATA_TYPE_XSSDEF: 565,
357
+ TNS_DATA_TYPE_PDQCINV: 572,
358
+ TNS_DATA_TYPE_PDQIDC: 573,
359
+ TNS_DATA_TYPE_KPDQCSTA: 574,
360
+ TNS_DATA_TYPE_KPRS: 575,
361
+ TNS_DATA_TYPE_KPDQIDC: 576,
362
+ TNS_DATA_TYPE_RTSTRM: 578,
363
+ TNS_DATA_TYPE_SESSRET: 579,
364
+ TNS_DATA_TYPE_SCN6: 580,
365
+ TNS_DATA_TYPE_KECPA: 581,
366
+ TNS_DATA_TYPE_KECPP: 582,
367
+ TNS_DATA_TYPE_SXA: 583,
368
+ TNS_DATA_TYPE_KVARR: 584,
369
+ TNS_DATA_TYPE_KPNGN: 585,
370
+ TNS_DATA_TYPE_XSNSOP: 590,
371
+ TNS_DATA_TYPE_XSATTR: 591,
372
+ TNS_DATA_TYPE_XSNS: 592,
373
+ TNS_DATA_TYPE_TXT: 593,
374
+ TNS_DATA_TYPE_XSSESSNS: 594,
375
+ TNS_DATA_TYPE_XSATTOP: 595,
376
+ TNS_DATA_TYPE_XSCREOP: 596,
377
+ TNS_DATA_TYPE_XSDETOP: 597,
378
+ TNS_DATA_TYPE_XSDESOP: 598,
379
+ TNS_DATA_TYPE_XSSETSP: 599,
380
+ TNS_DATA_TYPE_XSSIDP: 600,
381
+ TNS_DATA_TYPE_XSPRIN: 601,
382
+ TNS_DATA_TYPE_XSKVL: 602,
383
+ TNS_DATA_TYPE_XSSSDEF2: 603,
384
+ TNS_DATA_TYPE_XSNSOP2: 604,
385
+ TNS_DATA_TYPE_XSNS2: 605,
386
+ TNS_DATA_TYPE_IMPLRES: 611,
387
+ TNS_DATA_TYPE_OER: 612,
388
+ TNS_DATA_TYPE_UB1ARRAY: 613,
389
+ TNS_DATA_TYPE_SESSSTATE: 614,
390
+ TNS_DATA_TYPE_AC_REPLAY: 615,
391
+ TNS_DATA_TYPE_AC_CONT: 616,
392
+ TNS_DATA_TYPE_KPDNREQ: 622,
393
+ TNS_DATA_TYPE_KPDNRNF: 623,
394
+ TNS_DATA_TYPE_KPNGNC: 624,
395
+ TNS_DATA_TYPE_KPNRI: 625,
396
+ TNS_DATA_TYPE_AQENQ: 626,
397
+ TNS_DATA_TYPE_AQDEQ: 627,
398
+ TNS_DATA_TYPE_AQJMS: 628,
399
+ TNS_DATA_TYPE_KPDNRPAY: 629,
400
+ TNS_DATA_TYPE_KPDNRACK: 630,
401
+ TNS_DATA_TYPE_KPDNRMP: 631,
402
+ TNS_DATA_TYPE_KPDNRDQ: 632,
403
+ TNS_DATA_TYPE_CHUNKINFO: 636,
404
+ TNS_DATA_TYPE_SCN: 637,
405
+ TNS_DATA_TYPE_SCN8: 638,
406
+ TNS_DATA_TYPE_UDS: 639,
407
+ TNS_DATA_TYPE_TNP: 640,
408
+
409
+ // data type representations
410
+ TNS_TYPE_REP_NATIVE: 0,
411
+ TNS_TYPE_REP_UNIVERSAL: 1,
412
+ TNS_TYPE_REP_ORACLE: 10,
413
+
414
+ // message types
415
+ TNS_MSG_TYPE_PROTOCOL: 1,
416
+ TNS_MSG_TYPE_DATA_TYPES: 2,
417
+ TNS_MSG_TYPE_FUNCTION: 3,
418
+ TNS_MSG_TYPE_ERROR: 4,
419
+ TNS_MSG_TYPE_ROW_HEADER: 6,
420
+ TNS_MSG_TYPE_ROW_DATA: 7,
421
+ TNS_MSG_TYPE_PARAMETER: 8,
422
+ TNS_MSG_TYPE_STATUS: 9,
423
+ TNS_MSG_TYPE_IO_VECTOR: 11,
424
+ TNS_MSG_TYPE_LOB_DATA: 14,
425
+ TNS_MSG_TYPE_WARNING: 15,
426
+ TNS_MSG_TYPE_DESCRIBE_INFO: 16,
427
+ TNS_MSG_TYPE_PIGGYBACK: 17,
428
+ TNS_MSG_TYPE_FLUSH_OUT_BINDS: 19,
429
+ TNS_MSG_TYPE_BIT_VECTOR: 21,
430
+ TNS_MSG_TYPE_SERVER_SIDE_PIGGYBACK: 23,
431
+ TNS_MSG_TYPE_IMPLICIT_RESULTSET: 27,
432
+ TNS_MSG_TYPE_ONEWAY_FN: 26,
433
+
434
+ // parameter keyword numbers,
435
+ TNS_KEYWORD_NUM_CURRENT_SCHEMA: 168,
436
+ TNS_KEYWORD_NUM_EDITION: 172,
437
+
438
+ // bind flags
439
+ TNS_BIND_USE_INDICATORS: 0x0001,
440
+ TNS_BIND_USE_LENGTH: 0x0002,
441
+ TNS_BIND_ARRAY: 0x0040,
442
+
443
+ // bind directions
444
+ TNS_BIND_DIR_OUTPUT: 16,
445
+ TNS_BIND_DIR_INPUT: 32,
446
+ TNS_BIND_DIR_INPUT_OUTPUT: 48,
447
+
448
+ // execute options
449
+ TNS_EXEC_OPTION_PARSE: 0x01,
450
+ TNS_EXEC_OPTION_BIND: 0x08,
451
+ TNS_EXEC_OPTION_DEFINE: 0x10,
452
+ TNS_EXEC_OPTION_EXECUTE: 0x20,
453
+ TNS_EXEC_OPTION_FETCH: 0x40,
454
+ TNS_EXEC_OPTION_COMMIT: 0x100,
455
+ TNS_EXEC_OPTION_COMMIT_REEXECUTE: 0x1,
456
+ TNS_EXEC_OPTION_PLSQL_BIND: 0x400,
457
+ TNS_EXEC_OPTION_DML_ROWCOUNTS: 0x4000,
458
+ TNS_EXEC_OPTION_NOT_PLSQL: 0x8000,
459
+ TNS_EXEC_OPTION_IMPLICIT_RESULTSET: 0x8000,
460
+ TNS_EXEC_OPTION_DESCRIBE: 0x20000,
461
+ TNS_EXEC_OPTION_NO_COMPRESSED_FETCH: 0x40000,
462
+ TNS_EXEC_OPTION_BATCH_ERRORS: 0x80000,
463
+
464
+ // server side piggyback op codes
465
+ TNS_SERVER_PIGGYBACK_QUERY_CACHE_INVALIDATION: 1,
466
+ TNS_SERVER_PIGGYBACK_OS_PID_MTS: 2,
467
+ TNS_SERVER_PIGGYBACK_TRACE_EVENT: 3,
468
+ TNS_SERVER_PIGGYBACK_SESS_RET: 4,
469
+ TNS_SERVER_PIGGYBACK_SYNC: 5,
470
+ TNS_SERVER_PIGGYBACK_LTXID: 7,
471
+ TNS_SERVER_PIGGYBACK_AC_REPLAY_CONTEXT: 8,
472
+ TNS_SERVER_PIGGYBACK_EXT_SYNC: 9,
473
+
474
+ // session return constants
475
+ TNS_SESSGET_SESSION_CHANGED: 4,
476
+
477
+ // LOB operations
478
+ TNS_LOB_OP_GET_LENGTH: 0x0001,
479
+ TNS_LOB_OP_READ: 0x0002,
480
+ TNS_LOB_OP_TRIM: 0x0020,
481
+ TNS_LOB_OP_WRITE: 0x0040,
482
+ TNS_LOB_OP_GET_CHUNK_SIZE: 0x4000,
483
+ TNS_LOB_OP_CREATE_TEMP: 0x0110,
484
+ TNS_LOB_OP_FREE_TEMP: 0x0111,
485
+ TNS_LOB_OP_OPEN: 0x8000,
486
+ TNS_LOB_OP_CLOSE: 0x10000,
487
+ TNS_LOB_OP_IS_OPEN: 0x11000,
488
+ TNS_LOB_OP_ARRAY: 0x80000,
489
+
490
+ // LOB locator constants
491
+ TNS_LOB_LOC_OFFSET_FLAG_1: 4,
492
+ TNS_LOB_LOC_OFFSET_FLAG_3: 6,
493
+ TNS_LOB_LOC_OFFSET_FLAG_4: 7,
494
+ TNS_LOB_QLOCATOR_VERSION: 4,
495
+
496
+ // LOB locator flags (byte 1)
497
+ TNS_LOB_LOC_FLAGS_BLOB: 0x01,
498
+ TNS_LOB_LOC_FLAGS_VALUE_BASED: 0x20,
499
+ TNS_LOB_LOC_FLAGS_ABSTRACT: 0x40,
500
+
501
+ // LOB locator flags (byte 2)
502
+ TNS_LOB_LOC_FLAGS_INIT: 0x08,
503
+
504
+ // LOB locator flags (byte 4)
505
+ TNS_LOB_LOC_FLAGS_TEMP: 0x01,
506
+ TNS_LOB_LOC_FLAGS_VAR_LENGTH_CHARSET: 0x80,
507
+
508
+ // other LOB constants
509
+ TNS_LOB_OPEN_READ_WRITE: 2,
510
+ TNS_LOB_PREFETCH_FLAG: 0x2000000,
511
+
512
+ // base JSON constants
513
+ TNS_JSON_MAX_LENGTH: 32 * 1024 * 1024,
514
+ TNS_JSON_MAGIC_BYTE_1: 0xff,
515
+ TNS_JSON_MAGIC_BYTE_2: 0x4a, // 'J'
516
+ TNS_JSON_MAGIC_BYTE_3: 0x5a, // 'Z'
517
+ TNS_JSON_VERSION: 1,
518
+ TNS_JSON_FLAG_HASH_ID_UINT8: 0x0100,
519
+ TNS_JSON_FLAG_HASH_ID_UINT16: 0x0200,
520
+ TNS_JSON_FLAG_NUM_FNAMES_UINT16: 0x0400,
521
+ TNS_JSON_FLAG_FNAMES_SEG_UINT32: 0x0800,
522
+ TNS_JSON_FLAG_TINY_NODES_STAT: 0x2000,
523
+ TNS_JSON_FLAG_TREE_SEG_UINT32: 0x1000,
524
+ TNS_JSON_FLAG_REL_OFFSET_MODE: 0x01,
525
+ TNS_JSON_FLAG_INLINE_LEAF: 0x02,
526
+ TNS_JSON_FLAG_LEN_IN_PCODE: 0x04,
527
+ TNS_JSON_FLAG_NUM_FNAMES_UINT32: 0x08,
528
+ TNS_JSON_FLAG_IS_SCALAR: 0x10,
529
+
530
+ // JSON data types
531
+ TNS_JSON_TYPE_NULL: 0x30,
532
+ TNS_JSON_TYPE_TRUE: 0x31,
533
+ TNS_JSON_TYPE_FALSE: 0x32,
534
+ TNS_JSON_TYPE_STRING_LENGTH_UINT8: 0x33,
535
+ TNS_JSON_TYPE_NUMBER_LENGTH_UINT8: 0x34,
536
+ TNS_JSON_TYPE_BINARY_DOUBLE: 0x36,
537
+ TNS_JSON_TYPE_STRING_LENGTH_UINT16: 0x37,
538
+ TNS_JSON_TYPE_STRING_LENGTH_UINT32: 0x38,
539
+ TNS_JSON_TYPE_TIMESTAMP: 0x39,
540
+ TNS_JSON_TYPE_BINARY_LENGTH_UINT16: 0x3a,
541
+ TNS_JSON_TYPE_BINARY_LENGTH_UINT32: 0x3b,
542
+ TNS_JSON_TYPE_DATE: 0x3c,
543
+ TNS_JSON_TYPE_INTERVAL_YM: 0x3d,
544
+ TNS_JSON_TYPE_INTERVAL_DS: 0x3e,
545
+ TNS_JSON_TYPE_TIMESTAMP_TZ: 0x7c,
546
+ TNS_JSON_TYPE_TIMESTAMP7: 0x7d,
547
+ TNS_JSON_TYPE_BINARY_FLOAT: 0x7f,
548
+ TNS_JSON_TYPE_OBJECT: 0x84,
549
+ TNS_JSON_TYPE_ARRAY: 0xc0,
550
+
551
+ // end-to-end metrics
552
+ TNS_END_TO_END_ACTION: 0x0010,
553
+ TNS_END_TO_END_CLIENT_IDENTIFIER: 0x0001,
554
+ TNS_END_TO_END_CLIENT_INFO: 0x0100,
555
+ TNS_END_TO_END_DBOP: 0x0200,
556
+ TNS_END_TO_END_MODULE: 0x0008,
557
+
558
+ // versions
559
+ TNS_VERSION_DESIRED: 316,
560
+ TNS_VERSION_MINIMUM: 300,
561
+ TNS_VERSION_MIN_ACCEPTED: 315,
562
+ TNS_VERSION_MIN_LARGE_SDU: 315,
563
+
564
+ // other connection constants
565
+ TNS_SERVICE_OPTIONS: 0xc01,
566
+ TNS_PROTOCOL_CHARACTERISTICS: 0x4f98,
567
+ TNS_CONNECT_FLAGS: 0x8080,
568
+ TNS_CAN_RECV_ATTENTION: 0x0400,
569
+ TNS_CHECK_OOB: 0x01,
570
+
571
+ // TTC functions
572
+ TNS_FUNC_AUTH_PHASE_ONE: 118,
573
+ TNS_FUNC_AUTH_PHASE_TWO: 115,
574
+ TNS_FUNC_CLOSE_CURSORS: 105,
575
+ TNS_FUNC_COMMIT: 14,
576
+ TNS_FUNC_EXECUTE: 94,
577
+ TNS_FUNC_FETCH: 5,
578
+ TNS_FUNC_LOB_OP: 96,
579
+ TNS_FUNC_LOGOFF: 9,
580
+ TNS_FUNC_PING: 147,
581
+ TNS_FUNC_ROLLBACK: 15,
582
+ TNS_FUNC_SET_END_TO_END_ATTR: 135,
583
+ TNS_FUNC_REEXECUTE: 4,
584
+ TNS_FUNC_REEXECUTE_AND_FETCH: 78,
585
+ TNS_FUNC_SET_SCHEMA: 152,
586
+ TNS_FUNC_SESSION_GET: 162,
587
+ TNS_FUNC_SESSION_RELEASE: 163,
588
+ TNS_FUNC_SESSION_STATE: 176, // piggyback fn
589
+ TNS_FUNC_CANCEL_ALL: 120, // piggyback fn
590
+
591
+ // character sets and encodings
592
+ TNS_CHARSET_UTF8: 873,
593
+ TNS_CHARSET_UTF16: 2000,
594
+ TNS_ENCODING_UTF8: "UTF-8",
595
+ TNS_ENCODING_UTF16: "UTF-16LE",
596
+ TNS_ENCODING_MULTI_BYTE: 0x01,
597
+ TNS_ENCODING_CONV_LENGTH: 0x02,
598
+
599
+ // compile time capability indices
600
+ TNS_CCAP_SQL_VERSION: 0,
601
+ TNS_CCAP_LOGON_TYPES: 4,
602
+ TNS_CCAP_FIELD_VERSION: 7,
603
+ TNS_CCAP_SERVER_DEFINE_CONV: 8,
604
+ TNS_CCAP_TTC1: 15,
605
+ TNS_CCAP_OCI1: 16,
606
+ TNS_CCAP_TDS_VERSION: 17,
607
+ TNS_CCAP_RPC_VERSION: 18,
608
+ TNS_CCAP_RPC_SIG: 19,
609
+ TNS_CCAP_DBF_VERSION: 21,
610
+ TNS_CCAP_LOB: 23,
611
+ TNS_CCAP_TTC2: 26,
612
+ TNS_CCAP_UB2_DTY: 27,
613
+ TNS_CCAP_OCI2: 31,
614
+ TNS_CCAP_CLIENT_FN: 34,
615
+ TNS_CCAP_TTC3: 37,
616
+ TNS_CCAP_TTC4: 40,
617
+ TNS_CCAP_LOB2: 42,
618
+ TNS_CCAP_MAX: 45,
619
+
620
+ // compile time capability values
621
+ TNS_CCAP_SQL_VERSION_MAX: 6,
622
+ TNS_CCAP_FIELD_VERSION_11_2: 6,
623
+ TNS_CCAP_FIELD_VERSION_12_1: 7,
624
+ TNS_CCAP_FIELD_VERSION_12_2: 8,
625
+ TNS_CCAP_FIELD_VERSION_12_2_EXT1: 9,
626
+ TNS_CCAP_FIELD_VERSION_18_1: 10,
627
+ TNS_CCAP_FIELD_VERSION_18_1_EXT_1: 11,
628
+ TNS_CCAP_FIELD_VERSION_19_1: 12,
629
+ TNS_CCAP_FIELD_VERSION_19_1_EXT_1: 13,
630
+ TNS_CCAP_FIELD_VERSION_20_1: 14,
631
+ TNS_CCAP_FIELD_VERSION_20_1_EXT_1: 15,
632
+ TNS_CCAP_FIELD_VERSION_21_1: 16,
633
+ TNS_CCAP_FIELD_VERSION_23_1: 17,
634
+ TNS_CCAP_FIELD_VERSION_23_1_EXT_1: 18,
635
+ TNS_CCAP_FIELD_VERSION_MAX: 18,
636
+ TNS_CCAP_O5LOGON: 8,
637
+ TNS_CCAP_O5LOGON_NP: 2,
638
+ TNS_CCAP_O7LOGON: 32,
639
+ TNS_CCAP_O8LOGON_LONG_IDENTIFIER: 64,
640
+ TNS_CCAP_O9LOGON_LONG_PASSWORD: 0x80,
641
+ TNS_CCAP_END_OF_CALL_STATUS: 0x01,
642
+ TNS_CCAP_IND_RCD: 0x08,
643
+ TNS_CCAP_FAST_BVEC: 0x20,
644
+ TNS_CCAP_FAST_SESSION_PROPAGATE: 0x10,
645
+ TNS_CCAP_APP_CTX_PIGGYBACK: 0x80,
646
+ TNS_CCAP_TDS_VERSION_MAX: 3,
647
+ TNS_CCAP_RPC_VERSION_MAX: 7,
648
+ TNS_CCAP_RPC_SIG_VALUE: 3,
649
+ TNS_CCAP_DBF_VERSION_MAX: 1,
650
+ TNS_CCAP_IMPLICIT_RESULTS: 0x10,
651
+ TNS_CCAP_BIG_CHUNK_CLR: 0x20,
652
+ TNS_CCAP_KEEP_OUT_ORDER: 0x80,
653
+ TNS_CCAP_LOB_UB8_SIZE: 0x01,
654
+ TNS_CCAP_LOB_ENCS: 0x02,
655
+ TNS_CCAP_LOB_PREFETCH: 0x40,
656
+ TNS_CCAP_DRCP: 0x10,
657
+ TNS_CCAP_ZLNP: 0x04,
658
+ TNS_CCAP_INBAND_NOTIFICATION: 0x04,
659
+ TNS_CCAP_CLIENT_FN_MAX: 12,
660
+ TNS_CCAP_LOB2_QUASI: 0x01,
661
+ TNS_CCAP_LOB2_2GB_PREFETCH: 0x04,
662
+
663
+ // runtime capability indices
664
+ TNS_RCAP_COMPAT: 0,
665
+ TNS_RCAP_TTC: 6,
666
+ TNS_RCAP_MAX: 7,
667
+
668
+ // runtime capability values
669
+ TNS_RCAP_COMPAT_81: 2,
670
+ TNS_RCAP_TTC_ZERO_COPY: 0x01,
671
+ TNS_RCAP_TTC_32K: 0x04,
672
+
673
+ /** Verifier types. */
674
+ /** SHA1 (salted). */
675
+ TNS_VERIFIER_TYPE_11G_1: 0xb152,
676
+ TNS_VERIFIER_TYPE_11G_2: 0x1b25,
677
+ /** MultiRound SHA-512. */
678
+ TNS_VERIFIER_TYPE_12C: 0x4815,
679
+
680
+ // other constants
681
+ TNS_MAX_SHORT_LENGTH: 252,
682
+ TNS_ESCAPE_CHAR: 253,
683
+ TNS_LONG_LENGTH_INDICATOR: 254,
684
+ TNS_NULL_LENGTH_INDICATOR: 255,
685
+ TNS_MAX_ROWID_LENGTH: 18,
686
+ TNS_DURATION_MID: 0x80000000,
687
+ TNS_DURATION_OFFSET: 60,
688
+ TNS_DURATION_SESSION: 10,
689
+ TNS_MAX_LONG_LENGTH: 0x7fffffff,
690
+ TNS_SDU: 8192,
691
+ TNS_TDU: 65535,
692
+ TNS_TXN_IN_PROGRESS: 0x00000002,
693
+ TNS_MAX_CONNECT_DATA: 230,
694
+ TNS_CHUNK_SIZE: 32767,
695
+ TNS_MAX_UROWID_LENGTH: 3950,
696
+ TNS_HAS_REGION_ID: 0x80,
697
+
698
+ // timezone offsets
699
+ TZ_HOUR_OFFSET: 20,
700
+ TZ_MINUTE_OFFSET: 60,
701
+
702
+ // drcp release mode
703
+ DRCP_DEAUTHENTICATE: 0x00000002,
704
+
705
+ // database object image flags
706
+ TNS_OBJ_IS_VERSION_81: 0x80,
707
+ TNS_OBJ_IS_DEGENERATE: 0x10,
708
+ TNS_OBJ_IS_COLLECTION: 0x08,
709
+ TNS_OBJ_NO_PREFIX_SEG: 0x04,
710
+ TNS_OBJ_IMAGE_VERSION: 1,
711
+
712
+ // database object flags
713
+ TNS_OBJ_MAX_SHORT_LENGTH: 245,
714
+ TNS_OBJ_ATOMIC_NULL: 253,
715
+ TNS_OBJ_NON_NULL_OID: 0x02,
716
+ TNS_OBJ_HAS_EXTENT_OID: 0x08,
717
+ TNS_OBJ_TOP_LEVEL: 0x01,
718
+ TNS_OBJ_HAS_INDEXES: 0x10,
719
+
720
+ // database object collection types
721
+ TNS_OBJ_PLSQL_INDEX_TABLE: 1,
722
+ TNS_OBJ_NESTED_TABLE: 2,
723
+ TNS_OBJ_VARRAY: 3,
724
+
725
+ // database object TDS type codes
726
+ TNS_OBJ_TDS_TYPE_CHAR: 1,
727
+ TNS_OBJ_TDS_TYPE_DATE: 2,
728
+ TNS_OBJ_TDS_TYPE_FLOAT: 5,
729
+ TNS_OBJ_TDS_TYPE_NUMBER: 6,
730
+ TNS_OBJ_TDS_TYPE_VARCHAR: 7,
731
+ TNS_OBJ_TDS_TYPE_BOOLEAN: 8,
732
+ TNS_OBJ_TDS_TYPE_RAW: 19,
733
+ TNS_OBJ_TDS_TYPE_TIMESTAMP: 21,
734
+ TNS_OBJ_TDS_TYPE_TIMESTAMP_TZ: 23,
735
+ TNS_OBJ_TDS_TYPE_OBJ: 27,
736
+ TNS_OBJ_TDS_TYPE_COLL: 28,
737
+ TNS_OBJ_TDS_TYPE_CLOB: 29,
738
+ TNS_OBJ_TDS_TYPE_BLOB: 30,
739
+ TNS_OBJ_TDS_TYPE_TIMESTAMP_LTZ: 33,
740
+ TNS_OBJ_TDS_TYPE_BINARY_FLOAT: 37,
741
+ TNS_OBJ_TDS_TYPE_BINARY_DOUBLE: 45,
742
+
743
+ // xml type constants
744
+ TNS_XML_TYPE_LOB: 0x0001,
745
+ TNS_XML_TYPE_STRING: 0x0004,
746
+ TNS_XML_TYPE_FLAG_SKIP_NEXT_4: 0x100000,
747
+
748
+ // errors
749
+ TNS_ERR_VAR_NOT_IN_SELECT_LIST: 1007,
750
+ TNS_ERR_INBAND_MESSAGE: 12573,
751
+ TNS_ERR_INVALID_SERVICE_NAME: 12514,
752
+ TNS_ERR_INVALID_SID: 12505,
753
+ TNS_ERR_NO_DATA_FOUND: 1403,
754
+ TNS_ERR_SESSION_SHUTDOWN: 12572,
755
+
756
+ // other constants
757
+ PACKET_HEADER_SIZE: 8,
758
+ NUMBER_AS_TEXT_CHARS: 172,
759
+ NUMBER_MAX_DIGITS: 40,
760
+ BUFFER_CHUNK_SIZE: 65536,
761
+ CHUNKED_BYTES_CHUNK_SIZE: 65536,
762
+
763
+ TNS_BASE64_ALPHABET_ARRAY: Buffer.from('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'),
764
+ TNS_EXTENT_OID: Buffer.from('00000000000000000000000000010001', 'hex')
765
+ };