oracledb 5.5.0 → 6.0.0

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