ruby-oci8 2.0.4-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/ChangeLog +1912 -0
  2. data/Makefile +96 -0
  3. data/NEWS +223 -0
  4. data/README +86 -0
  5. data/VERSION +1 -0
  6. data/dist-files +77 -0
  7. data/doc/api.en.html +527 -0
  8. data/doc/api.en.rd +554 -0
  9. data/doc/api.ja.html +525 -0
  10. data/doc/api.ja.rd +557 -0
  11. data/doc/manual.css +35 -0
  12. data/lib/.document +1 -0
  13. data/lib/dbd/OCI8.rb +591 -0
  14. data/lib/oci8.rb +82 -0
  15. data/lib/oci8.rb.in +82 -0
  16. data/lib/oci8/.document +5 -0
  17. data/lib/oci8/bindtype.rb +319 -0
  18. data/lib/oci8/compat.rb +113 -0
  19. data/lib/oci8/datetime.rb +619 -0
  20. data/lib/oci8/encoding-init.rb +40 -0
  21. data/lib/oci8/encoding.yml +537 -0
  22. data/lib/oci8/metadata.rb +2077 -0
  23. data/lib/oci8/object.rb +562 -0
  24. data/lib/oci8/oci8.rb +571 -0
  25. data/lib/oci8/oracle_version.rb +144 -0
  26. data/lib/oci8lib_18.so +0 -0
  27. data/lib/oci8lib_191.so +0 -0
  28. data/metaconfig +142 -0
  29. data/pre-distclean.rb +7 -0
  30. data/ruby-oci8.gemspec +63 -0
  31. data/setup.rb +1331 -0
  32. data/test/README +4 -0
  33. data/test/config.rb +109 -0
  34. data/test/test_all.rb +50 -0
  35. data/test/test_appinfo.rb +63 -0
  36. data/test/test_array_dml.rb +333 -0
  37. data/test/test_bind_raw.rb +46 -0
  38. data/test/test_bind_time.rb +178 -0
  39. data/test/test_break.rb +83 -0
  40. data/test/test_clob.rb +79 -0
  41. data/test/test_connstr.rb +81 -0
  42. data/test/test_datetime.rb +622 -0
  43. data/test/test_dbi.rb +366 -0
  44. data/test/test_dbi_clob.rb +53 -0
  45. data/test/test_encoding.rb +100 -0
  46. data/test/test_metadata.rb +257 -0
  47. data/test/test_oci8.rb +434 -0
  48. data/test/test_oracle_version.rb +70 -0
  49. data/test/test_oradate.rb +256 -0
  50. data/test/test_oranumber.rb +655 -0
  51. data/test/test_rowid.rb +33 -0
  52. metadata +108 -0
@@ -0,0 +1,40 @@
1
+ #
2
+ # setup default OCI encoding from NLS_LANG.
3
+ #
4
+
5
+ # try to get NLS_LANG.
6
+ nls_lang = ENV['NLS_LANG']
7
+
8
+ if defined? OCI8::Win32Util
9
+ dll_path = OCI8::Win32Util.dll_path.upcase
10
+ if dll_path =~ %r{\\BIN\\OCI.DLL}
11
+ oracle_home = $`
12
+ OCI8::Win32Util.enum_homes do |home, lang|
13
+ if oracle_home == home.upcase
14
+ nls_lang = lang
15
+ break
16
+ end
17
+ end
18
+ end
19
+ end
20
+
21
+ if nls_lang
22
+ # Extract character set name from NLS_LANG.
23
+ if nls_lang =~ /\.([[:alnum:]]+)$/
24
+ charset = $1.upcase
25
+ else
26
+ raise "Invalid NLS_LANG format: #{nls_lang}"
27
+ end
28
+
29
+ # Convert the Oracle character set name to Ruby encoding name by
30
+ # querying the yaml data.
31
+ require 'yaml'
32
+ enc = YAML::load_file(File.dirname(__FILE__) + '/encoding.yml')[charset]
33
+ if enc.nil?
34
+ raise "Ruby encoding name is not found in encoding.yml for NLS_LANG #{nls_lang}."
35
+ end
36
+ else
37
+ warn "Warning: NLS_LANG is not set. fallback to US-ASCII."
38
+ enc = 'US-ASCII'
39
+ end
40
+ OCI8.encoding = enc
@@ -0,0 +1,537 @@
1
+ #
2
+ # Mapping table from Oracle charset name to Ruby encoding name
3
+ #
4
+
5
+ ############################################################
6
+ # Oracle Database Globalization Support Guide 11g Release 1 (11.1)
7
+ #
8
+ # Table A-4 Recommended ASCII Database Character Sets
9
+
10
+ #
11
+ # Asian
12
+ #
13
+
14
+ # EUC 24-bit Japanese
15
+ JA16EUC: EUC-JP
16
+
17
+ # The same as JA16EUC except for the way that the wave dash and the
18
+ # tilde are mapped to and from Unicode.
19
+ JA16EUCTILDE: CP51932 # or eucJP-ms
20
+
21
+ # Shift-JIS 16-bit Japanese
22
+ JA16SJIS: Shift_JIS
23
+
24
+ # The same as JA16SJIS except for the way that the wave dash and the
25
+ # tilde are mapped to and from Unicode.
26
+ JA16SJISTILDE: Windows-31J
27
+
28
+ # MS Windows Code Page 949 Korean
29
+ KO16MSWIN949: CP949
30
+
31
+ # Thai Industrial Standard 620-2533 - ASCII 8-bit
32
+ TH8TISASCII: Windows-874 # or TIS-620
33
+
34
+ # MS Windows Code Page 1258 8-bit Vietnamese
35
+ VN8MSWIN1258: Windows-1258
36
+
37
+ # GBK 16-bit Simplified Chinese
38
+ ZHS16GBK: GBK
39
+
40
+ # MS Windows Code Page 950 with Hong Kong Supplementary Character
41
+ # Set HKSCS-2001 (character set conversion to and from Unicode is
42
+ # based on Unicode 3.0)
43
+ ZHT16HKSCS: Big5 # Does the Big5 include HKSCS?
44
+
45
+ # MS Windows Code Page 950 Traditional Chinese
46
+ ZHT16MSWIN950: Big5
47
+
48
+ # EUC 32-bit Traditional Chinese
49
+ ZHT32EUC: EUC-TW # Who use this?
50
+
51
+ #
52
+ # European
53
+ #
54
+
55
+ # ISO 8859-13 Baltic
56
+ BLT8ISO8859P13: ISO-8859-13
57
+
58
+ # MS Windows Code Page 1257 8-bit Baltic
59
+ BLT8MSWIN1257: Windows-1257
60
+
61
+ # ISO 8859-5 Latin/Cyrillic
62
+ CL8ISO8859P5: ISO-8859-5
63
+
64
+ # MS Windows Code Page 1251 8-bit Latin/Cyrillic
65
+ CL8MSWIN1251: Windows-1251
66
+
67
+ # ISO 8859-2 East European
68
+ EE8ISO8859P2: ISO-8859-2
69
+
70
+ # ISO 8859-7 Latin/Greek
71
+ EL8ISO8859P7: ISO-8859-7
72
+
73
+ # MS Windows Code Page 1253 8-bit Latin/Greek
74
+ EL8MSWIN1253: Windows-1253
75
+
76
+ # MS Windows Code Page 1250 8-bit East European
77
+ EE8MSWIN1250: Windows-1250
78
+
79
+ # ISO 8859-10 North European
80
+ NE8ISO8859P10: ISO-8859-10
81
+
82
+ # ISO 8859-4 North and North-East European
83
+ NEE8ISO8859P4: ISO-8859-4
84
+
85
+ # ISO 8859-15 West European
86
+ WE8ISO8859P15: ISO-8859-15
87
+
88
+ # MS Windows Code Page 1252 8-bit West European
89
+ WE8MSWIN1252: Windows-1252
90
+
91
+ #
92
+ # Middle Eastern
93
+ #
94
+
95
+ # ISO 8859-6 Latin/Arabic
96
+ AR8ISO8859P6: ISO-8859-6
97
+
98
+ # MS Windows Code Page 1256 8-Bit Latin/Arabic
99
+ AR8MSWIN1256: Windows-1256
100
+
101
+ # ISO 8859-8 Latin/Hebrew
102
+ IW8ISO8859P8: ISO-8859-8
103
+
104
+ # MS Windows Code Page 1255 8-bit Latin/Hebrew
105
+ IW8MSWIN1255: Windows-1255
106
+
107
+ # MS Windows Code Page 1254 8-bit Turkish
108
+ TR8MSWIN1254: Windows-1254
109
+
110
+ # ISO 8859-9 West European & Turkish
111
+ WE8ISO8859P9: ISO-8859-9
112
+
113
+ #
114
+ # Universal
115
+ #
116
+
117
+ # Unicode 5.0 UTF-8 Universal character set
118
+ AL32UTF8: UTF-8
119
+
120
+ #
121
+ ############################################################
122
+
123
+
124
+ ############################################################
125
+ # Oracle Database Globalization Support Guide 11g Release 1 (11.1)
126
+ #
127
+ # Table A-6 Other ASCII-based Database Character Sets
128
+
129
+ #
130
+ # Asian
131
+ #
132
+
133
+ # Bangladesh National Code 8-bit BSCII
134
+ BN8BSCII: nil # FIXME
135
+
136
+ # Multiple-Script Indian Standard 8-bit Latin/Indian Languages
137
+ IN8ISCII: nil # FIXME
138
+
139
+ # JVMS 16-bit Japanese
140
+ JA16VMS: nil # FIXME
141
+
142
+ # KSC5601 16-bit Korean
143
+ KO16KSC5601: EUC-KR # This should be 'CP949'?
144
+
145
+ # KSCCS 16-bit Korean
146
+ KO16KSCCS: nil # FIXME
147
+
148
+ # Mac Server 8-bit Latin/Thai
149
+ TH8MACTHAIS: macThai
150
+
151
+ # VN3 8-bit Vietnamese
152
+ VN8VN3: nil # FIXME
153
+
154
+ # CGB2312-80 16-bit Simplified Chinese
155
+ ZHS16CGB231280: GB2312
156
+
157
+ # BIG5 16-bit Traditional Chinese
158
+ ZHT16BIG5: Big5
159
+
160
+ # HP CCDC 16-bit Traditional Chinese
161
+ ZHT16CCDC: nil # FIXME
162
+
163
+ # Taiwan Taxation 16-bit Traditional Chinese
164
+ ZHT16DBT: nil # FIXME
165
+
166
+ # MS Windows Code Page 950 with Hong Kong Supplementary Character
167
+ # Set HKSCS-2001 (character set conversion to and from Unicode is
168
+ # based on Unicode 3.1)
169
+ ZHT16HKSCS31: Big5 # Does the Big5 include HKSCS?
170
+
171
+ # SOPS 32-bit Traditional Chinese
172
+ ZHT32SOPS: nil # FIXME
173
+
174
+ # TRIS 32-bit Traditional Chinese
175
+ ZHT32TRIS: nil # FIXME
176
+
177
+ #
178
+ # Middle Eastern
179
+ #
180
+
181
+ # Arabic MS-DOS 710 Server 8-bit Latin/Arabic
182
+ AR8ADOS710: nil # FIXME
183
+
184
+ # Arabic MS-DOS 720 Server 8-bit Latin/Arabic
185
+ AR8ADOS720: nil # FIXME
186
+
187
+ # APTEC 715 Server 8-bit Latin/Arabic
188
+ AR8APTEC715: nil # FIXME
189
+
190
+ # ASMO Extended 708 8-bit Latin/Arabic
191
+ AR8ASMO8X: nil # FIXME
192
+
193
+ # Mussa'd Alarabi/2 768 Server 8-bit Latin/Arabic
194
+ AR8MUSSAD768: nil # FIXME
195
+
196
+ # Nafitha Enhanced 711 Server 8-bit Latin/Arabic
197
+ AR8NAFITHA711: nil # FIXME
198
+
199
+ # Nafitha International 721 Server 8-bit Latin/Arabic
200
+ AR8NAFITHA721: nil # FIXME
201
+
202
+ # SAKHR 706 Server 8-bit Latin/Arabic
203
+ AR8SAKHR706: nil # FIXME
204
+
205
+ # SAKHR 707 Server 8-bit Latin/Arabic
206
+ AR8SAKHR707: nil # FIXME
207
+
208
+ # ISO 8859-9 Latin Azerbaijani
209
+ AZ8ISO8859PE: nil # What is this different with WE8ISO8859P9?
210
+
211
+ # Multiple-Script Indian Standard 8-bit Latin/Indian Languages
212
+ IN8ISCII: nil # FIXME
213
+
214
+ # Mac Client 8-bit Hebrew
215
+ IW8MACHEBREW: nil # FIXME
216
+
217
+ # IBM-PC Code Page 1507/862 8-bit Latin/Hebrew
218
+ IW8PC1507: IBM862
219
+
220
+ # ISO 6937 8-bit Coded Character Set for Text Communication
221
+ LA8ISO6937: nil # FIXME
222
+
223
+ # DEC 8-bit Turkish
224
+ TR8DEC: nil # FIXME
225
+
226
+ # IBM-PC Code Page 857 8-bit Turkish
227
+ TR8PC857: IBM857
228
+
229
+ #
230
+ #European
231
+ #
232
+
233
+ # Mac Client 8-bit Latin/Arabic
234
+ AR8ARABICMAC: nil # FIXME
235
+
236
+ # Mac Server 8-bit Latin/Arabic
237
+ AR8ARABICMACS: nil # FIXME
238
+
239
+ # MS Windows 8-bit Bulgarian Cyrillic
240
+ BG8MSWIN: nil # FIXME
241
+
242
+ # IBM-PC Code Page 437 8-bit (Bulgarian Modification)
243
+ BG8PC437S: nil # What is differnt with US8PC437?
244
+
245
+ # Latvian Standard LVS8-92(1) Windows/Unix 8-bit Baltic
246
+ BLT8CP921: nil # FIXME
247
+
248
+ #IBM-PC Code Page 775 8-bit Baltic
249
+ BLT8PC775: IBM775
250
+
251
+ # IBM-PC Code Page 863 8-bit Canadian French
252
+ CDN8PC863: IBM863
253
+
254
+ # ISO 8859-14 Celtic
255
+ CEL8ISO8859P14: ISO-8859-14
256
+
257
+ # ISOIR111 Cyrillic
258
+ CL8ISOIR111: nil # FIXME
259
+
260
+ # RELCOM Internet Standard 8-bit Latin/Cyrillic
261
+ CL8KOI8R: KOI8-R
262
+
263
+ # KOI8 Ukrainian Cyrillic
264
+ CL8KOI8U: KOI8-U
265
+
266
+ # Mac Server 8-bit Latin/Cyrillic
267
+ CL8MACCYRILLICS: macCyrillic
268
+
269
+ # Mac Server 8-bit Central European
270
+ EE8MACCES: macCentEuro
271
+
272
+ # Mac Server 8-bit Croatian
273
+ EE8MACCROATIANS: macCroatian
274
+
275
+ # IBM-PC Code Page 852 8-bit East European
276
+ EE8PC852: IBM852 # or 'CP852'
277
+
278
+ # DEC 8-bit Latin/Greek
279
+ EL8DEC: nil # FIXME
280
+
281
+ # Mac Server 8-bit Greek
282
+ EL8MACGREEKS: macGreek
283
+
284
+ # IBM-PC Code Page 437 8-bit (Greek modification)
285
+ EL8PC437S: nil # What is differnt with US8PC437?
286
+
287
+ # IBM-PC Code Page 851 8-bit Greek/Latin
288
+ EL8PC851: nil # FIXME
289
+
290
+ # IBM-PC Code Page 869 8-bit Greek/Latin
291
+ EL8PC869: IBM869
292
+
293
+ # MS Windows Code Page 923 8-bit Estonian
294
+ ET8MSWIN923: nil # FIXME
295
+
296
+ # Hungarian 8-bit Special AB Mod
297
+ HU8ABMOD: nil # FIXME
298
+
299
+ # Hungarian 8-bit CWI-2
300
+ HU8CWI2: nil # FIXME
301
+
302
+ # IBM-PC Code Page 861 8-bit Icelandic
303
+ IS8PC861: IBM861
304
+
305
+ # German Government Printer 8-bit All-European Latin
306
+ LA8PASSPORT: nil # FIXME
307
+
308
+ # MS Windows Code Page 921 8-bit Lithuanian
309
+ LT8MSWIN921: nil # FIXME
310
+
311
+ # IBM-PC Code Page 772 8-bit Lithuanian (Latin/Cyrillic)
312
+ LT8PC772: nil # FIXME
313
+
314
+ # IBM-PC Code Page 774 8-bit Lithuanian (Latin)
315
+ LT8PC774: nil # FIXME
316
+
317
+ #Latvian Version IBM-PC Code Page 866 8-bit Latin/Cyrillic
318
+ LV8PC8LR: nil # What is it differnt with RU8PC866?
319
+
320
+ # IBM-PC Code Page 1117 8-bit Latvian
321
+ LV8PC1117: nil # FIXME
322
+
323
+ # IBM-PC Alternative Code Page 8-bit Latvian (Latin/Cyrillic)
324
+ LV8RST104090: nil # FIXME
325
+
326
+ # IBM-PC Code Page 865 8-bit Norwegian
327
+ N8PC865: IBM865
328
+
329
+ # BESTA 8-bit Latin/Cyrillic
330
+ RU8BESTA: nil # FIXME
331
+
332
+ # IBM-PC Code Page 855 8-bit Latin/Cyrillic
333
+ RU8PC855: IBM855 # or 'CP855'
334
+
335
+ # IBM-PC Code Page 866 8-bit Latin/Cyrillic
336
+ RU8PC866: IBM866
337
+
338
+ # ISO 8859-3 South European
339
+ SE8ISO8859P3: ISO-8859-3
340
+
341
+ # Mac Client 8-bit Turkish
342
+ TR8MACTURKISH: macTurkish
343
+
344
+ # Mac Server 8-bit Turkish
345
+ TR8MACTURKISHS: macTurkish
346
+
347
+ # ASCII 7-bit American
348
+ US7ASCII: US-ASCII
349
+
350
+ # IBM-PC Code Page 437 8-bit American
351
+ US8PC437: IBM437
352
+
353
+ # DEC 8-bit West European
354
+ WE8DEC: nil # FIXME
355
+
356
+ # DG 8-bit West European
357
+ WE8DG: nil # FIXME
358
+
359
+ # ISO 8859-1 West European
360
+ WE8ISO8859P1: ISO-8859-1
361
+
362
+ #Mac Server 8-bit Extended Roman8 West European
363
+ WE8MACROMAN8S: macRoman
364
+
365
+ # NCR 4970 8-bit West European
366
+ WE8NCR4970: nil # FIXME
367
+
368
+ # NeXTSTEP PostScript 8-bit West European
369
+ WE8NEXTSTEP: nil # FIXME
370
+
371
+ # IBM-PC Code Page 850 8-bit West European
372
+ WE8PC850: CP850
373
+
374
+ # IBM-PC Code Page 858 8-bit West European
375
+ WE8PC858: nil # FIXME
376
+
377
+ # IBM-PC Code Page 860 8-bit West European
378
+ WE8PC860: IBM860
379
+
380
+ # HP Roman8 8-bit West European
381
+ WE8ROMAN8: nil # FIXME
382
+
383
+ #
384
+ # Universal
385
+ #
386
+
387
+ # Unicode 5.0 UTF-8 Universal character set, CESU-8 compliant
388
+ UTF8: UTF-8
389
+
390
+ #
391
+ ############################################################
392
+
393
+ ############################################################
394
+ # Oracle Database Globalization Support Guide 11g Release 1 (11.1)
395
+ #
396
+ # Table A-9 Client-Only Character Sets
397
+
398
+ #
399
+ # Asian
400
+ #
401
+
402
+ # EUC 24-bit Japanese with '\' mapped to the Japanese yen character
403
+ JA16EUCYEN: nil # FIXME
404
+
405
+ # Mac client Shift-JIS 16-bit Japanese
406
+ JA16MACSJIS: MacJapanese
407
+
408
+ # Shift-JIS 16-bit Japanese with '\' mapped to the Japanese yen character
409
+ JA16SJISYEN: nil # FIXME
410
+
411
+ # Mac Client 8-bit Latin/Thai
412
+ TH8MACTHAI: macThai
413
+
414
+ # GB18030-2000
415
+ ZHS32GB18030: GB18030
416
+
417
+ # Mac client CGB2312-80 16-bit Simplified Chinese
418
+ ZHS16MACCGB231280: nil # FIXME
419
+
420
+ #
421
+ # European
422
+ #
423
+
424
+ # DEC VT100 7-bit Swiss (German/French)
425
+ CH7DEC: nil # FIXME
426
+
427
+ # Mac Client 8-bit Latin/Cyrillic
428
+ CL8MACCYRILLIC: macCyrillic
429
+
430
+ # Siemens 97801/97808 7-bit German
431
+ D7SIEMENS9780X: nil # FIXME
432
+
433
+ # DEC VT100 7-bit German
434
+ D7DEC: nil # FIXME
435
+
436
+ # EEC Targon 35 ASCI West European/Greek
437
+ EEC8EUROASCI: nil # FIXME
438
+
439
+ # EEC EUROPA3 8-bit West European/Greek
440
+ EEC8EUROPA3: nil # FIXME
441
+
442
+ # Mac Client 8-bit Croatian
443
+ EE8MACCROATIAN: macCroatian
444
+
445
+ # Mac Client 8-bit Central European
446
+ EE8MACCE: macCentEuro
447
+
448
+ # IBM-PC Code Page 737 8-bit Greek/Latin
449
+ EL8PC737: IBM737
450
+
451
+ # Mac Client 8-bit Greek
452
+ EL8MACGREEK: macGreek
453
+
454
+ # DEC VT100 7-bit Spanish
455
+ E7DEC: nil # FIXME
456
+
457
+ # Siemens 97801/97808 7-bit Spanish
458
+ E7SIEMENS9780X: nil # FIXME
459
+
460
+ # DEC VT100 7-bit French
461
+ F7DEC: nil # FIXME
462
+
463
+ # Siemens 97801/97808 7-bit French
464
+ F7SIEMENS9780X: nil # FIXME
465
+
466
+ # DEC VT100 7-bit Italian
467
+ I7DEC: nil # FIXME
468
+
469
+ # Siemens 97801/97808 7-bit Italian
470
+ I7SIEMENS9780X: nil # FIXME
471
+
472
+ # Mac Server 8-bit Icelandic
473
+ IS8MACICELANDICS: macIceland
474
+
475
+ # Mac Client 8-bit Icelandic
476
+ IS8MACICELANDIC: macIceland
477
+
478
+ # DEC VT100 7-bit Dutch
479
+ NL7DEC: nil # FIXME
480
+
481
+ # DEC VT100 7-bit Norwegian/Danish
482
+ NDK7DEC: nil # FIXME
483
+
484
+ # Siemens 97801/97808 7-bit Norwegian
485
+ N7SIEMENS9780X: nil # FIXME
486
+
487
+ # DEC VT100 7-bit Finnish
488
+ SF7DEC: nil # FIXME
489
+
490
+ # Siemens 97801/97808 7-bit Swedish
491
+ S7SIEMENS9780X: nil # FIXME
492
+
493
+ # DEC VT100 7-bit Swedish
494
+ S7DEC: nil # FIXME
495
+
496
+ # ASCII 7-bit Finnish
497
+ SF7ASCII: nil # FIXME
498
+
499
+ # DEC VT100 7-bit Turkish
500
+ TR7DEC: nil # FIXME
501
+
502
+ # ICL special version ISO8859-1
503
+ WE8ISOICLUK: nil # What is this different with ISO-8859-1?
504
+
505
+ # Mac Client 8-bit Extended Roman8 West European
506
+ WE8MACROMAN8: macRoman
507
+
508
+ # HP LaserJet 8-bit West European
509
+ WE8HP: nil # FIXME
510
+
511
+ # ASCII 7-bit Yugoslavian
512
+ YUG7ASCII: nil # FIXME
513
+
514
+ #
515
+ # Middle Eastern
516
+ #
517
+
518
+ # Israeli Standard 960 7-bit Latin/Hebrew
519
+ IW7IS960: nil # FIXME
520
+
521
+ #
522
+ ############################################################
523
+
524
+
525
+ ############################################################
526
+ # Oracle Database Globalization Support Guide 11g Release 1 (11.1)
527
+ #
528
+ # Table A-10 Universal Character Sets
529
+
530
+ # Unicode 5.0 UTF-16 Universal character set
531
+ AL16UTF16: UTF-16BE
532
+
533
+ #
534
+ ############################################################
535
+
536
+ # Other
537
+ AL16UTF16LE: UTF-16LE