ruby-oci8 2.2.4.1 → 2.2.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +7 -0
  2. data/ChangeLog +311 -1
  3. data/NEWS +278 -46
  4. data/README.md +5 -2
  5. data/dist-files +8 -4
  6. data/docs/bind-array-to-in_cond.md +1 -1
  7. data/docs/install-instant-client.md +2 -1
  8. data/docs/install-on-osx.md +29 -116
  9. data/docs/ldap-auth-and-function-interposition.md +123 -0
  10. data/docs/number-type-mapping.md +79 -0
  11. data/ext/oci8/apiwrap.c.tmpl +2 -5
  12. data/ext/oci8/apiwrap.rb +6 -1
  13. data/ext/oci8/apiwrap.yml +34 -22
  14. data/ext/oci8/attr.c +4 -2
  15. data/ext/oci8/bind.c +366 -6
  16. data/ext/oci8/connection_pool.c +3 -3
  17. data/ext/oci8/error.c +18 -33
  18. data/ext/oci8/extconf.rb +7 -4
  19. data/ext/oci8/hook_funcs.c +128 -51
  20. data/ext/oci8/lob.c +31 -75
  21. data/ext/oci8/metadata.c +2 -2
  22. data/ext/oci8/object.c +72 -27
  23. data/ext/oci8/oci8.c +27 -119
  24. data/ext/oci8/oci8.h +21 -3
  25. data/ext/oci8/oci8lib.c +50 -37
  26. data/ext/oci8/ocihandle.c +2 -2
  27. data/ext/oci8/ocinumber.c +22 -16
  28. data/ext/oci8/oraconf.rb +130 -257
  29. data/ext/oci8/oradate.c +1 -1
  30. data/ext/oci8/plthook_elf.c +384 -300
  31. data/ext/oci8/plthook_osx.c +10 -10
  32. data/ext/oci8/stmt.c +51 -16
  33. data/ext/oci8/win32.c +4 -22
  34. data/lib/oci8/bindtype.rb +1 -15
  35. data/lib/oci8/check_load_error.rb +57 -10
  36. data/lib/oci8/cursor.rb +48 -17
  37. data/lib/oci8/metadata.rb +9 -1
  38. data/lib/oci8/object.rb +10 -0
  39. data/lib/oci8/oci8.rb +26 -25
  40. data/lib/oci8/oracle_version.rb +11 -1
  41. data/lib/oci8/version.rb +1 -1
  42. data/lib/oci8.rb +11 -4
  43. data/lib/ruby-oci8.rb +0 -3
  44. data/ruby-oci8.gemspec +2 -3
  45. data/setup.rb +11 -2
  46. data/test/README.md +37 -0
  47. data/test/config.rb +1 -1
  48. data/test/setup_test_object.sql +21 -13
  49. data/test/setup_test_package.sql +59 -0
  50. data/test/test_all.rb +1 -0
  51. data/test/test_bind_boolean.rb +99 -0
  52. data/test/test_break.rb +11 -9
  53. data/test/test_clob.rb +4 -16
  54. data/test/test_datetime.rb +8 -3
  55. data/test/test_object.rb +33 -9
  56. data/test/test_oci8.rb +169 -45
  57. data/test/test_oranumber.rb +12 -6
  58. data/test/test_package_type.rb +15 -3
  59. data/test/test_properties.rb +17 -0
  60. metadata +40 -57
  61. data/docs/osx-install-dev-tools.png +0 -0
  62. data/test/README +0 -42
data/NEWS CHANGED
@@ -1,7 +1,239 @@
1
1
  # @markup markdown
2
2
 
3
- 2.2.4.1
4
- =======
3
+ 2.2.11 (2022-02-22)
4
+ ===================
5
+
6
+ - Fix "No DLL is not foud to hook" when `OCI8.properties[:tcp_keepalive_time]` is set and Oracle client is 21c on Windows.
7
+
8
+ (reported at rsim/oracle-enhanced#2262)
9
+
10
+ - Fix "OCI8.properties[:tcp_keepalive_time] isn't available" error when ruby version is 3.1 on Windows.
11
+
12
+ 2.2.10 (2022-01-12)
13
+ ===================
14
+
15
+ - Use `File.exist?` instead of removed `File.exists?` in Ruby 3.2 (GH-242)
16
+
17
+ (contributed by Yasuo Honda)
18
+
19
+ - Support ruby 3.1 distributed by rubyinstaller.org
20
+
21
+ - Remove code for obsolete platforms
22
+ - Ruby compiled by Borland C++
23
+ - macOS released several years ago
24
+
25
+ - Detect arm64 macOS shared library in oraconf.rb in preparation for Instant Client for Apple Silicon release.
26
+
27
+ 2.2.9 (2020-12-30)
28
+ ==================
29
+
30
+ - Support [TruffleRuby](https://github.com/oracle/truffleruby). (GH-225)
31
+
32
+ (contributed by Brandon Fish)
33
+
34
+ - Remove extension libraries for unmaintained ruby versions from binary gems.
35
+
36
+ Fixed issue
37
+ -----------
38
+
39
+ - Allow --with-instant-client-dir along with --with-instant-client-lib/include. (GH-223)
40
+
41
+ (reported by Victor Nawothnig)
42
+
43
+ 2.2.8 (2020-01-11)
44
+ ==================
45
+
46
+ New features
47
+ ------------
48
+
49
+ * Add support to specify include and lib directories of Oracle library on installation. (GH-210)
50
+
51
+ The following three flags are added.
52
+
53
+ * --with-instant-client-dir
54
+ * --with-instant-client-include
55
+ * --with-instant-client-lib
56
+
57
+ Fixed issue
58
+ -----------
59
+
60
+ - Suppress warnings compiling oci8lib.so (GH-212 and others)
61
+
62
+ - Fix compilation and tests on Windows.
63
+
64
+ - Fix spelling in install-instant-client.md (GH-217)
65
+
66
+ - Use fiddler instead obsolete Win32API on Windows (GH-212)
67
+
68
+ 2.2.7 (2019-01-06)
69
+ ==================
70
+
71
+ Incompatible Changes
72
+ --------------------
73
+
74
+ ### `OCI8#long_read_len` and `OCI8#long_read_len=` do nothing.
75
+
76
+ When `LONG`, `LONG RAW` or `XMLTYPE` data were fetched, the data were
77
+ truncated at `OCI8#long_read_len`. The maximum size of data had
78
+ been 4 gigabytes since this release.
79
+
80
+ `OCI8#long_read_len` and `OCI8#long_read_len=` remain for code-compatibility
81
+ but do nothing.
82
+
83
+ Improvement
84
+ -----------
85
+
86
+ ### The number of network round trips was reduced when LOB data are read.
87
+
88
+ When LOB data are read, ruby-oci8 before 2.2.7 does the followings:
89
+
90
+ 1. Gets the size of the LOB.
91
+ 2. Allocate buffer to hold the data.
92
+ 3. Read the LOB contents.
93
+
94
+ This requires two round trips.
95
+
96
+ It now does the followings:
97
+
98
+ 1. Request the server to get LOB contents up to 4 gigabytes.
99
+ 2. Read the LOB contents and allocate buffer when the size is insufficient.
100
+ 3. If the total length of received data is less than 4 gigabytes, all data
101
+ are read. If not, go to the first step to read next 4 gigabytes.
102
+
103
+ This requires only one round trip if the size is less than 4 gigabytes.
104
+
105
+ ### Use array fetching instead of prefetching when LOB columns are in queries
106
+
107
+ When LOB columns are in queries, prefetching doesn't seem to work. Rows
108
+ are fetched one by one according to data captured by network packet sniffer.
109
+ So array fetching is used instead of prefetching to reduce the number of
110
+ network round trips.
111
+
112
+ ### Add error diagnostics when `'require "oci8"'` fails on Windows.
113
+
114
+ When `'require "oci8"'` fails with "OCI.DLL: 126(The specified module could not be found.)"
115
+ on Windows, the cause is not always that OCI.DLL is not found. It may
116
+ be incorrect architecture, missing dependent DLLs and so on.
117
+ Ruby-oci8 checks PATH and DLL files when the error is raised and change
118
+ the error message to reasonable one as possible.
119
+
120
+ 2.2.6.1 (2018-09-16)
121
+ ====================
122
+
123
+ Fixed issue
124
+ -----------
125
+ Fix "No shared library is found to hook." on macOS.
126
+ (rsim/oracle-enhanced#1768)
127
+
128
+ 2.2.6 (2018-08-22)
129
+ ==================
130
+
131
+ This release fixed issues about Oracle 18c except one.
132
+
133
+ Fixed issue
134
+ -----------
135
+
136
+ ### Setting some properties failed with Oracle 18c client
137
+
138
+ Setting `OCI8::properties[:tcp_keepalive_time]` or `OCI8::properties[:cancel_read_at_exit]`
139
+ failed with the error message "No shared library is found to hook" when Oracle
140
+ client version is 18c.
141
+ (rsim/oracle-enhanced#1754)
142
+
143
+ ### Fix `OCI8#oracle_server_version` to get full version of Oracle 18c
144
+
145
+ `OCI8#oracle_server_version` returned Oracle version number whose
146
+ number components after the first dot are zeros such as '18.0.0.0.0'
147
+ even when the server version is `18.3.0.0.0`. This issue was fixed by
148
+ using a new OCI function. However the function is available since
149
+ Oracle 18c client. So when the Oracle client version is 12c or earlier
150
+ and the Oracle server version is 18c or later, it cannot get the *full*
151
+ Oracle version number.
152
+
153
+ ### Fix tests when the Oracle server version is 18c.
154
+
155
+ ### LOB#sync, LOB#sync= and LOB#flush do nothing now.
156
+
157
+ They have not worked by mistake from the beginning because incorrect
158
+ arguments has been passed to OCILobOpen(). Moreover it crashed Oracle
159
+ 18c server-side processes and caused "ORA-03113: end-of-file on
160
+ communication channel."
161
+ (github issue #198)
162
+
163
+ ### `unsupported typecode timestamp` when timestamp with time zone is in object type attributes.
164
+
165
+ (github issue #185)
166
+
167
+ 2.2.5.1 (2017-12-27)
168
+ ====================
169
+
170
+ No updates except tests. The version number was changed just to release
171
+ binary gems for ruby 2.5 on Windows.
172
+
173
+ ### Suppress warnings in tests with ruby 2.5
174
+
175
+ (github issue #180, #181)
176
+
177
+ 2.2.5 (2017-10-21)
178
+ ==================
179
+
180
+ New Features
181
+ ------------
182
+
183
+ ### Try to load $ORACLE_HOME/lib/libclntsh.so also when runtime api check is enabled on Unix.
184
+
185
+ When ruby-oci8 is configured with `--with-runtime-check`, it loads Oracle client
186
+ library and checks available functions in the library at runtime. This feature was
187
+ added to release Windows binary gems which cannot know Oracle version at compile time.
188
+ This is available also on Unix. However it tries to load libraries in LD_LIBRARY_PATH only.
189
+ From this version, it tries to load $ORACLE_HOME/lib/libclntsh.so also.
190
+
191
+ ### Check error reasons when loading failed with 'The specified module could not be found' on Windows.
192
+
193
+ The error messages are same when OCI.DLL isn't found and when Visual
194
+ C++ runtime library depended on by OCI.DLL isn't found. From this
195
+ version, ruby-oci8 distinguishes the difference and prints other message
196
+ for the latter case.
197
+
198
+ Fixed issue
199
+ -----------
200
+
201
+ ### Fix segmentation fault when Oracle client library is prelinked.
202
+
203
+ When Oracle instant client rpm package is used on RHEL5 or RHEL6,
204
+ Oracle client library is modified by [prelink][] and ruby-oci8 crashed
205
+ with segmentation fault. This is not due to Oracle, but due to
206
+ plthook used by ruby-oci8. The plthook was fixed to work with
207
+ prelinked libraries.
208
+ (github issue #172)
209
+
210
+ [prelink]: https://en.wikipedia.org/wiki/Prelink#Linux
211
+
212
+ ### Fix not to hide the original error message of LoadError on recent cygwin.
213
+
214
+ Ruby-oci8 tries to check error messages when `require 'oci8lib_xxx.so` fails.
215
+ However the message was hidden by an exception while checking on cygwin.
216
+ (github issue #176)
217
+
218
+ ### Don't call unnecessary __paramGet(i) when a cursor is executed more than once.
219
+
220
+ pointed by OMOTO Kenji
221
+ (github issue #171)
222
+
223
+ ### Suppress warning: method redefined; discarding old initialize.
224
+
225
+ (github issue #168)
226
+
227
+ Other Changes
228
+ -------------
229
+
230
+ ### Add document about the mapping between Oracle number types and Ruby classes.
231
+
232
+ See {file:docs/number-type-mapping.md Number Type Mapping between Oracle and Ruby}.
233
+ (github issue #173)
234
+
235
+ 2.2.4.1 (2017-06-17)
236
+ ====================
5
237
 
6
238
  Fixed issue
7
239
  -----------
@@ -15,8 +247,8 @@ differently, it may cause unexpected behavior.
15
247
 
16
248
  ### Fix compilation errors in 2.2.4 on cygwin
17
249
 
18
- 2.2.4
19
- =====
250
+ 2.2.4 (2017-06-11)
251
+ ==================
20
252
 
21
253
  New Features
22
254
  ------------
@@ -54,8 +286,8 @@ Use Win32::Registry instead of Win32API to compile ruby-oci8 on the latest cygwi
54
286
 
55
287
  (contributed by davidbrs. [github issue #156](https://github.com/kubo/ruby-oci8/issues/156))
56
288
 
57
- 2.2.3
58
- =====
289
+ 2.2.3 (2016-12-27)
290
+ ==================
59
291
 
60
292
  New Features
61
293
  ------------
@@ -68,8 +300,8 @@ New Features
68
300
  - Suppress warnings outputted by Minitest in ruby 2.4.0
69
301
  - Suppress warnings when compiling with ruby 2.4.0
70
302
 
71
- 2.2.2
72
- =====
303
+ 2.2.2 (2016-04-24)
304
+ ==================
73
305
 
74
306
  New Features
75
307
  ------------
@@ -115,8 +347,8 @@ Other Changes
115
347
  - Check the default value of DYLD_FALLBACK_LIBRARY_PATH after checking OCI_DIR on installation. (OS X only)
116
348
 
117
349
 
118
- 2.2.1
119
- =====
350
+ 2.2.1 (2015-11-01)
351
+ ==================
120
352
 
121
353
  New Features
122
354
  ------------
@@ -144,16 +376,16 @@ Other Changes
144
376
 
145
377
  - Delete unused code which was added to support old Oracle and ruby 1.8.
146
378
 
147
- 2.2.0.2
148
- =======
379
+ 2.2.0.2 (2015-10-12)
380
+ ====================
149
381
 
150
382
  Nothing was changed except the version.
151
383
 
152
384
  The forth version was incremented to release binary gems for mingw32.
153
385
  The binary gems for 2.2.0.1 didn't work by faultily packaging.
154
386
 
155
- 2.2.0.1
156
- =======
387
+ 2.2.0.1 (2015-10-11)
388
+ ====================
157
389
 
158
390
  If ruby-oci8 2.2.0 is installed, you have no need to update it to
159
391
  2.2.0.1. Source code itself was not changed between 2.2.0 and 2.2.0.1.
@@ -169,8 +401,8 @@ Ruby-oci8 2.2.0 documents had not been generated in rubydoc.info
169
401
  though the URLs are displayed on installation failure. They were
170
402
  changed to documents generated by the latest github repository.
171
403
 
172
- 2.2.0
173
- =====
404
+ 2.2.0 (2015-10-04)
405
+ ==================
174
406
 
175
407
  ### Drop ruby 1.8 support
176
408
 
@@ -211,8 +443,8 @@ Other Changes
211
443
  - Add OCI8.charset_name2id and OCI8.charset_id2name.
212
444
  Mark OCI8#charset_name2id and OCI8#charset_id2name as deprecated.
213
445
 
214
- 2.1.8
215
- =====
446
+ 2.1.8 (2015-04-04)
447
+ ==================
216
448
 
217
449
  New Features
218
450
  ------------
@@ -272,8 +504,8 @@ Fixed Issues
272
504
  - Don't use SYM2ID on ruby 2.2.0 or later not to make symbols unGCable
273
505
  by [Symbol GC](http://www.infoq.com/news/2014/12/ruby-2.2.0-released).
274
506
 
275
- 2.1.7
276
- =====
507
+ 2.1.7 (2014-02-02)
508
+ ==================
277
509
 
278
510
  New Features
279
511
  ------------
@@ -285,8 +517,8 @@ Fixed Issues
285
517
 
286
518
  - Fix OCI8#describe_table to follow synonyms in a remote database.
287
519
 
288
- 2.1.6
289
- =====
520
+ 2.1.6 (2013-12-29)
521
+ ==================
290
522
 
291
523
  New Features
292
524
  ------------
@@ -326,8 +558,8 @@ Fixed Issues
326
558
  - fix SEGV when one connection is used by more than two threads and temporary
327
559
  lobs are freed by GC.
328
560
 
329
- 2.1.5
330
- =====
561
+ 2.1.5 (2013-03-09)
562
+ ==================
331
563
 
332
564
  New Features
333
565
  ------------
@@ -347,8 +579,8 @@ Fixed Issues
347
579
  instant client is 11.2.0.3 for Solaris x86 32-bit, the ruby
348
580
  version is 1.9.3 or upper and the ruby is compiled by gcc.
349
581
 
350
- 2.1.4
351
- =====
582
+ 2.1.4 (2013-01-06)
583
+ ==================
352
584
 
353
585
  New Features
354
586
  ------------
@@ -388,8 +620,8 @@ Fixed Issues
388
620
 
389
621
  (reported by Brian Henderson)
390
622
 
391
- 2.1.3
392
- =====
623
+ 2.1.3 (2012-11-11)
624
+ ==================
393
625
 
394
626
  New Features
395
627
  ------------
@@ -446,8 +678,8 @@ Fixed Issues
446
678
  - Fix #<NoMethodError: undefined method `timezone' for Time:Class>
447
679
  when ruby is less than 1.9.2 and an object type's time attribute is accessed.
448
680
 
449
- 2.1.2
450
- =====
681
+ 2.1.2 (2012-04-28)
682
+ ==================
451
683
 
452
684
  Specification changes
453
685
  ---------------------
@@ -468,8 +700,8 @@ Fixed Issues
468
700
 
469
701
  (reported by Yasuo Honda)
470
702
 
471
- 2.1.1
472
- =====
703
+ 2.1.1 (2012-04-22)
704
+ ==================
473
705
 
474
706
  New Features
475
707
  ------------
@@ -516,8 +748,8 @@ Fixed Issues
516
748
 
517
749
  (repored by Leoš Bitto)
518
750
 
519
- 2.1.0
520
- =====
751
+ 2.1.0 (2011-12-13)
752
+ ==================
521
753
 
522
754
  New Features
523
755
  ------------
@@ -632,8 +864,8 @@ Fixed Issues
632
864
 
633
865
  (reported by jbirdjavi)
634
866
 
635
- 2.0.6
636
- =====
867
+ 2.0.6 (2011-06-14)
868
+ ==================
637
869
 
638
870
  Fixed issues
639
871
  ------------
@@ -644,8 +876,8 @@ Fixed issues
644
876
  a closed OCI handle's method is called. It was chaned in 2.0.5
645
877
  by mistake.
646
878
 
647
- 2.0.5
648
- =====
879
+ 2.0.5 (2011-06-12)
880
+ ==================
649
881
 
650
882
  New Features
651
883
  ------------
@@ -733,8 +965,8 @@ Fixed issues
733
965
 
734
966
  (reported by Sebastian YEPES)
735
967
 
736
- 2.0.4
737
- =====
968
+ 2.0.4 (2010-02-28)
969
+ ==================
738
970
 
739
971
  New Features
740
972
  ------------
@@ -795,8 +1027,8 @@ Fixed issues
795
1027
 
796
1028
  (reported by Raimonds Simanovskis)
797
1029
 
798
- 2.0.3
799
- =====
1030
+ 2.0.3 (2009-10-21)
1031
+ ==================
800
1032
 
801
1033
  Incompatible Changes
802
1034
  --------------------
@@ -936,8 +1168,8 @@ Fixed installation issues
936
1168
 
937
1169
  (reported by Kazuya Teramoto)
938
1170
 
939
- 2.0.2
940
- =====
1171
+ 2.0.2 (2009-05-17)
1172
+ ==================
941
1173
 
942
1174
  * add new methods
943
1175
  - {OCI8#select_one}
@@ -977,8 +1209,8 @@ Fixed installation issues
977
1209
  * [ruby 1.9] fix to bind string data by the length got from String#bytesize
978
1210
  converted to {OCI8.encoding}, not by String#size.
979
1211
 
980
- 2.0.1
981
- =====
1212
+ 2.0.1 (2009-03-17)
1213
+ ==================
982
1214
 
983
1215
  * release a binary gem for Windows, which contains libraries for both
984
1216
  ruby 1.8 and ruby 1.9.1.
data/README.md CHANGED
@@ -2,7 +2,7 @@ Ruby-oci8
2
2
  =========
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/ruby-oci8.svg)](http://badge.fury.io/rb/ruby-oci8)
5
- [![Circle CI](https://circleci.com/gh/kubo/ruby-oci8.png?style=shield)](https://circleci.com/gh/kubo/ruby-oci8)
5
+ [![Tests](https://github.com/kubo/ruby-oci8/actions/workflows/tests.yml/badge.svg)](https://github.com/kubo/ruby-oci8/actions/workflows/tests.yml)
6
6
 
7
7
  What is ruby-oci8
8
8
  -----------------
@@ -24,7 +24,9 @@ See {file:NEWS}.
24
24
  Sample one-liner
25
25
  ----------------
26
26
 
27
- Connect to scott/tiger, select `emp` and print as CSV format.
27
+ When you have an Oracle database server to which `sqlplus scott/tiger` can connect
28
+ and `scott` user has `emp` table, you can select `emp` and print rows
29
+ as CSV by the followig one liner.
28
30
 
29
31
  ruby -r oci8 -e "OCI8.new('scott', 'tiger').exec('select * from emp') do |r| puts r.join(','); end"
30
32
 
@@ -50,6 +52,7 @@ Report issues
50
52
  Other documents
51
53
  ---------------
52
54
 
55
+ * {file:docs/number-type-mapping.md Number Type Mapping between Oracle and Ruby}
53
56
  * {file:docs/timeout-parameters.md Timeout Parameters}
54
57
  * {file:docs/conflicts-local-connections-and-processes.md Conflicts between Local Connections and Child Process Handling on Unix}
55
58
  * {file:docs/hanging-after-inactivity.md Hanging After a Long Period of Inactivity}
data/dist-files CHANGED
@@ -11,13 +11,14 @@ pre-distclean.rb
11
11
  ruby-oci8.gemspec
12
12
  setup.rb
13
13
  docs/bind-array-to-in_cond.md
14
+ docs/conflicts-local-connections-and-processes.md
15
+ docs/hanging-after-inactivity.md
14
16
  docs/install-binary-package.md
15
17
  docs/install-full-client.md
16
18
  docs/install-instant-client.md
17
19
  docs/install-on-osx.md
18
- docs/conflicts-local-connections-and-processes.md
19
- docs/hanging-after-inactivity.md
20
- docs/osx-install-dev-tools.png
20
+ docs/ldap-auth-and-function-interposition.md
21
+ docs/number-type-mapping.md
21
22
  docs/platform-specific-issues.md
22
23
  docs/report-installation-issue.md
23
24
  docs/timeout-parameters.md
@@ -78,13 +79,15 @@ lib/oci8/oracle_version.rb
78
79
  lib/oci8/properties.rb
79
80
  lib/oci8/version.rb
80
81
  lib/ruby-oci8.rb
81
- test/README
82
+ test/README.md
82
83
  test/config.rb
83
84
  test/setup_test_object.sql
85
+ test/setup_test_package.sql
84
86
  test/test_all.rb
85
87
  test/test_appinfo.rb
86
88
  test/test_array_dml.rb
87
89
  test/test_bind_array.rb
90
+ test/test_bind_boolean.rb
88
91
  test/test_bind_raw.rb
89
92
  test/test_bind_string.rb
90
93
  test/test_bind_time.rb
@@ -105,4 +108,5 @@ test/test_oracle_version.rb
105
108
  test/test_oradate.rb
106
109
  test/test_oranumber.rb
107
110
  test/test_package_type.rb
111
+ test/test_properties.rb
108
112
  test/test_rowid.rb
@@ -27,7 +27,7 @@ The above code is rewritten as follows:
27
27
 
28
28
  ids = [ ... ] # an arbitrary-length array containing user IDs.
29
29
 
30
- in_cond = OCI8::in_cond(:id, ids)]
30
+ in_cond = OCI8::in_cond(:id, ids)
31
31
  cursor = conn.exec("select * from users where id in (#{in_cond.names})", *in_cond.values)
32
32
 
33
33
  or
@@ -18,7 +18,7 @@ Look at {file:docs/install-on-osx.md} for OS X.
18
18
  Install Oracle Instant Client Packages
19
19
  --------------------------------------
20
20
 
21
- ### Donwload Instant Client Packages
21
+ ### Download Instant Client Packages
22
22
 
23
23
  Download the following packages from [Oracle Technology Network](http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html).
24
24
 
@@ -110,6 +110,7 @@ Package" or copy a runtime library to the directory where `ruby.exe` resides.
110
110
 
111
111
  | Oracle Version | Package | Runtime Library|
112
112
  |---|---|---|
113
+ | 18.3 | [Microsoft Visual C++ 2013 Redistributable Package][2013] | MSVCR120.DLL |
113
114
  | 12.2.0.x | [Microsoft Visual C++ 2013 Redistributable Package][2013] | MSVCR120.DLL |
114
115
  | 12.1.0.x | [Microsoft Visual C++ 2010 Redistributable Package][2010] | MSVCR100.DLL |
115
116
  | 11.2.0.x | Microsoft Visual C++ 2005 SP1 Redistributable Package ([x86][2005SP1_x86], [x64][2005SP1_x64]) | MSVCR80.DLL(The file version must be 8.0.50727.762.) |