ruby-oci8 2.2.3-x64-mingw32 → 2.2.4-x64-mingw32
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.
- checksums.yaml +4 -4
- data/ChangeLog +100 -0
- data/NEWS +39 -0
- data/README.md +16 -8
- data/dist-files +2 -0
- data/docs/bind-array-to-in_cond.md +1 -1
- data/docs/conflicts-local-connections-and-processes.md +7 -4
- data/docs/hanging-after-inactivity.md +61 -0
- data/docs/install-binary-package.md +15 -11
- data/docs/install-full-client.md +18 -21
- data/docs/install-instant-client.md +44 -27
- data/docs/install-on-osx.md +13 -15
- data/docs/platform-specific-issues.md +17 -50
- data/docs/report-installation-issue.md +3 -0
- data/docs/timeout-parameters.md +3 -0
- data/lib/oci8.rb +38 -1
- data/lib/oci8/cursor.rb +9 -8
- data/lib/oci8/oci8.rb +7 -3
- data/lib/oci8/properties.rb +22 -0
- data/lib/oci8/version.rb +1 -1
- data/lib/oci8lib_200.so +0 -0
- data/lib/oci8lib_210.so +0 -0
- data/lib/oci8lib_220.so +0 -0
- data/lib/oci8lib_230.so +0 -0
- data/lib/oci8lib_240.so +0 -0
- data/ruby-oci8.gemspec +1 -5
- data/test/test_all.rb +1 -0
- data/test/test_bind_integer.rb +47 -0
- data/test/test_connstr.rb +29 -13
- data/test/test_oci8.rb +1 -1
- metadata +7 -5
| @@ -1,7 +1,10 @@ | |
| 1 1 | 
             
            # @title Install for Oracle Instant Client
         | 
| 2 2 |  | 
| 3 | 
            +
            Install for Oracle Instant Client
         | 
| 4 | 
            +
            =================================
         | 
| 5 | 
            +
             | 
| 3 6 | 
             
            Introduction
         | 
| 4 | 
            -
             | 
| 7 | 
            +
            ------------
         | 
| 5 8 |  | 
| 6 9 | 
             
            This page explains the way to install ruby-oci8 for Oracle Instant Client.
         | 
| 7 10 |  | 
| @@ -13,10 +16,10 @@ have a special need to compile ruby-oci8 by yourself. | |
| 13 16 | 
             
            Look at {file:docs/install-on-osx.md} for OS X.
         | 
| 14 17 |  | 
| 15 18 | 
             
            Install Oracle Instant Client Packages
         | 
| 16 | 
            -
             | 
| 19 | 
            +
            --------------------------------------
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            ### Donwload Instant Client Packages
         | 
| 17 22 |  | 
| 18 | 
            -
            Donwload Instant Client Packages
         | 
| 19 | 
            -
            --------------------------------
         | 
| 20 23 | 
             
            Download the following packages from [Oracle Technology Network](http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html).
         | 
| 21 24 |  | 
| 22 25 | 
             
            * Instant Client Package - Basic or Basic Lite
         | 
| @@ -25,8 +28,7 @@ Download the following packages from [Oracle Technology Network](http://www.orac | |
| 25 28 |  | 
| 26 29 | 
             
            Note: use 32-bit packages for 32-bit ruby even though the OS is 64-bit.
         | 
| 27 30 |  | 
| 28 | 
            -
            UNIX zip packages
         | 
| 29 | 
            -
            -----------------
         | 
| 31 | 
            +
            ### UNIX zip packages
         | 
| 30 32 |  | 
| 31 33 | 
             
            Unzip the packages as follows:
         | 
| 32 34 |  | 
| @@ -79,8 +81,7 @@ Though many instant client pages indicate that the environment varialbe | |
| 79 81 | 
             
            configuration files such as `tnsnames.ora` and `sqlnet.ora` are in
         | 
| 80 82 | 
             
            `$ORACLE_HOME/network/admin/`.
         | 
| 81 83 |  | 
| 82 | 
            -
            Linux rpm packages
         | 
| 83 | 
            -
            ------------------
         | 
| 84 | 
            +
            ### Linux rpm packages
         | 
| 84 85 |  | 
| 85 86 | 
             
            Install the downloaded packages as follows:
         | 
| 86 87 |  | 
| @@ -95,24 +96,43 @@ For example: | |
| 95 96 | 
             
                $ LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client/lib
         | 
| 96 97 | 
             
                $ export LD_LIBRARY_PATH
         | 
| 97 98 |  | 
| 98 | 
            -
            Windows
         | 
| 99 | 
            -
             | 
| 99 | 
            +
            ### Windows
         | 
| 100 | 
            +
             | 
| 101 | 
            +
            Unzip the packages and set `PATH` to point to the directory where `OCI.DLL` is installed.
         | 
| 102 | 
            +
             | 
| 103 | 
            +
            If `require "ruby-oci8"` raises a load error such as "OCI.DLL: 126(The
         | 
| 104 | 
            +
            specified module could not be found. )", either `OCI.DLL` or a DLL depended
         | 
| 105 | 
            +
            by `OCI.DLL` could not be found in `PATH`.
         | 
| 106 | 
            +
             | 
| 107 | 
            +
            If `OCI.DLL` is surely in `PATH`, the missing module is a Visual C++ runtime
         | 
| 108 | 
            +
            library in most cases. You need to install "Microsoft Visual C++ Redistributable
         | 
| 109 | 
            +
            Package" or copy a runtime library to the directory where `ruby.exe` resides.
         | 
| 110 | 
            +
             | 
| 111 | 
            +
            | Oracle Version | Package | Runtime Library|
         | 
| 112 | 
            +
            |---|---|---|
         | 
| 113 | 
            +
            | 12.2.0.x | [Microsoft Visual C++ 2013 Redistributable Package][2013] | MSVCR120.DLL |
         | 
| 114 | 
            +
            | 12.1.0.x | [Microsoft Visual C++ 2010 Redistributable Package][2010] | MSVCR100.DLL |
         | 
| 115 | 
            +
            | 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.) |
         | 
| 116 | 
            +
            | 11.1.0.x | [No separate redistributable package][2003] | MSVCR71.DLL |
         | 
| 117 | 
            +
            | 10.2.0.x | [No separate redistributable package][2003] | MSVCR71.DLL |
         | 
| 100 118 |  | 
| 101 | 
            -
             | 
| 119 | 
            +
            [2013]: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads
         | 
| 120 | 
            +
            [2010]: http://www.microsoft.com/en-us/download/details.aspx?id=26999
         | 
| 121 | 
            +
            [2005SP1_x86]: https://www.microsoft.com/en-us/download/details.aspx?id=5638
         | 
| 122 | 
            +
            [2005SP1_x64]: https://www.microsoft.com/en-us/download/details.aspx?id=18471
         | 
| 123 | 
            +
            [2003]: http://stackoverflow.com/questions/1596167/where-to-download-microsoft-visual-c-2003-redistributable#6132093
         | 
| 102 124 |  | 
| 103 125 | 
             
            Check the environment
         | 
| 104 | 
            -
             | 
| 126 | 
            +
            ---------------------
         | 
| 105 127 |  | 
| 106 | 
            -
            Oracle installation
         | 
| 107 | 
            -
            -------------------
         | 
| 128 | 
            +
            ### Oracle installation
         | 
| 108 129 |  | 
| 109 130 | 
             
            Run the following command and confirm it works fine. If it doesn't
         | 
| 110 131 | 
             
            work well, check `LD_LIBRARY_PATH` or PATH.
         | 
| 111 132 |  | 
| 112 133 | 
             
                sqlplus USERNAME/PASSWORD
         | 
| 113 134 |  | 
| 114 | 
            -
            ruby installation
         | 
| 115 | 
            -
            -----------------
         | 
| 135 | 
            +
            ### ruby installation
         | 
| 116 136 |  | 
| 117 137 | 
             
            Run the following command. If it ends with "can't find header files
         | 
| 118 138 | 
             
            for ruby" or "ruby: no such file to load -- mkmf (LoadError)", you need
         | 
| @@ -120,8 +140,7 @@ to install ruby-devel(redhat) or ruby-dev(debian/ubuntu). | |
| 120 140 |  | 
| 121 141 | 
             
                ruby -r mkmf -e ""
         | 
| 122 142 |  | 
| 123 | 
            -
            development tools
         | 
| 124 | 
            -
            -----------------
         | 
| 143 | 
            +
            ### development tools
         | 
| 125 144 |  | 
| 126 145 | 
             
            You need a C compiler and development tools such as make or nmake.
         | 
| 127 146 | 
             
            Note that they must be same with ones used to compile the ruby.
         | 
| @@ -129,13 +148,12 @@ For example, you need Oracle Solaris Studio, not gcc, for ruby | |
| 129 148 | 
             
            compiled by Oracle Solaris Studio.
         | 
| 130 149 |  | 
| 131 150 | 
             
            Installation
         | 
| 132 | 
            -
             | 
| 151 | 
            +
            ------------
         | 
| 133 152 |  | 
| 134 153 | 
             
            If you get a problem in the following steps, look at {file:docs/platform-specific-issues.md}
         | 
| 135 154 | 
             
            and {file:docs/report-installation-issue.md}.
         | 
| 136 155 |  | 
| 137 | 
            -
            gem package
         | 
| 138 | 
            -
            -----------
         | 
| 156 | 
            +
            ### gem package
         | 
| 139 157 |  | 
| 140 158 | 
             
            Run the following command.
         | 
| 141 159 |  | 
| @@ -144,19 +162,18 @@ Run the following command. | |
| 144 162 | 
             
            If you get a problem, look at {file:docs/platform-specific-issues.md}
         | 
| 145 163 | 
             
            and {file:docs/report-installation-issue.md}.
         | 
| 146 164 |  | 
| 147 | 
            -
            tar.gz package
         | 
| 148 | 
            -
            --------------
         | 
| 165 | 
            +
            ### tar.gz package
         | 
| 149 166 |  | 
| 150 | 
            -
             | 
| 167 | 
            +
            #### Download the source code
         | 
| 151 168 |  | 
| 152 169 | 
             
            Download the latest tar.gz package from [download page][].
         | 
| 153 170 |  | 
| 154 171 | 
             
            Note: if you are using Windows and you have no special need to compile
         | 
| 155 172 | 
             
            it by yourself, look at {file:docs/install-binary-packge.md}.
         | 
| 156 173 |  | 
| 157 | 
            -
             | 
| 174 | 
            +
            #### Run make and install
         | 
| 158 175 |  | 
| 159 | 
            -
             | 
| 176 | 
            +
            ##### UNIX or Windows(mingw32, cygwin)
         | 
| 160 177 |  | 
| 161 178 | 
             
                gzip -dc ruby-oci8-VERSION.tar.gz | tar xvf -
         | 
| 162 179 | 
             
                cd ruby-oci8-VERSION
         | 
| @@ -166,7 +183,7 @@ it by yourself, look at {file:docs/install-binary-packge.md}. | |
| 166 183 | 
             
            note: If you use '`sudo`', use it only when running '`make install`'.
         | 
| 167 184 | 
             
            '`sudo`' doesn't pass library search path to the executing command for security reasons.
         | 
| 168 185 |  | 
| 169 | 
            -
             | 
| 186 | 
            +
            ##### Windows(mswin32)
         | 
| 170 187 |  | 
| 171 188 | 
             
                gzip -dc ruby-oci8-VERSION.tar.gz | tar xvf -
         | 
| 172 189 | 
             
                cd ruby-oci8-VERSION
         | 
    
        data/docs/install-on-osx.md
    CHANGED
    
    | @@ -1,12 +1,15 @@ | |
| 1 1 | 
             
            # @title Install ruby-oci8 on OS X
         | 
| 2 2 |  | 
| 3 | 
            +
            Install ruby-oci8 on OS X
         | 
| 4 | 
            +
            =========================
         | 
| 5 | 
            +
             | 
| 3 6 | 
             
            This page explains the way to install ruby-oci8 os OS X.
         | 
| 4 7 |  | 
| 5 8 | 
             
            Look at {file:docs/install-full-client.md}, {file:docs/install-instant-client.md}
         | 
| 6 9 | 
             
            or {file:docs/install-binary-package.md} for other platforms.
         | 
| 7 10 |  | 
| 8 11 | 
             
            Install C compiler
         | 
| 9 | 
            -
             | 
| 12 | 
            +
            ------------------
         | 
| 10 13 |  | 
| 11 14 | 
             
            You need to install the command line developer tools or the Xcode.
         | 
| 12 15 | 
             
            (The latter includes the former.)
         | 
| @@ -28,10 +31,9 @@ please re-run as root via sudo."` is printed, you need to run | |
| 28 31 | 
             
            and type `"agree"`.
         | 
| 29 32 |  | 
| 30 33 | 
             
            Install Oracle Instant Client Packages
         | 
| 31 | 
            -
             | 
| 34 | 
            +
            --------------------------------------
         | 
| 32 35 |  | 
| 33 | 
            -
            Download Oracle Instant Client Packages
         | 
| 34 | 
            -
            --------------------------------
         | 
| 36 | 
            +
            ### Download Oracle Instant Client Packages
         | 
| 35 37 |  | 
| 36 38 | 
             
            Download the following packages from [Oracle Technology Network][]
         | 
| 37 39 |  | 
| @@ -39,8 +41,7 @@ Download the following packages from [Oracle Technology Network][] | |
| 39 41 | 
             
            * Instant Client Package - SDK (`instantclient-sdk-macos.x64-12.1.0.2.0.zip`)
         | 
| 40 42 | 
             
            * Instant Client Package - SQL*Plus (`instantclient-sdk-macos.x64-12.1.0.2.0.zip`) (optionally) 
         | 
| 41 43 |  | 
| 42 | 
            -
            Install Oracle Instant Client Packages via Homebrew
         | 
| 43 | 
            -
            ---------------------------------------------------
         | 
| 44 | 
            +
            ### Install Oracle Instant Client Packages via Homebrew
         | 
| 44 45 |  | 
| 45 46 | 
             
            To install `Oracle Instant Client Basic` via [Homebrew][]
         | 
| 46 47 |  | 
| @@ -78,8 +79,7 @@ To install `Oracle Instant Client Basic Lite` via [Homebrew][] | |
| 78 79 |  | 
| 79 80 | 
             
                    export OCI_DIR=$(brew --prefix)/lib
         | 
| 80 81 |  | 
| 81 | 
            -
            Install Oracle Instant Client Manually
         | 
| 82 | 
            -
            ---------------------
         | 
| 82 | 
            +
            ### Install Oracle Instant Client Manually
         | 
| 83 83 |  | 
| 84 84 | 
             
            If you don't use [Homebrew][], do the following:
         | 
| 85 85 |  | 
| @@ -104,25 +104,23 @@ Set the environment variable OCI_DIR while performing the following installation | |
| 104 104 | 
             
                export OCI_DIR=/opt/oracle/instantclient_12_1
         | 
| 105 105 |  | 
| 106 106 | 
             
            Installation
         | 
| 107 | 
            -
             | 
| 107 | 
            +
            ------------
         | 
| 108 108 |  | 
| 109 109 | 
             
            If you get a problem in the following steps, look at {file:docs/report-installation-issue.md}.
         | 
| 110 110 |  | 
| 111 | 
            -
            gem package
         | 
| 112 | 
            -
            -----------
         | 
| 111 | 
            +
            ### gem package
         | 
| 113 112 |  | 
| 114 113 | 
             
            Run the following command.
         | 
| 115 114 |  | 
| 116 115 | 
             
                gem install ruby-oci8
         | 
| 117 116 |  | 
| 118 | 
            -
            tar.gz package
         | 
| 119 | 
            -
            --------------
         | 
| 117 | 
            +
            ### tar.gz package
         | 
| 120 118 |  | 
| 121 | 
            -
             | 
| 119 | 
            +
            #### Download the source code
         | 
| 122 120 |  | 
| 123 121 | 
             
            Download the latest tar.gz package from [download page][].
         | 
| 124 122 |  | 
| 125 | 
            -
             | 
| 123 | 
            +
            #### Run make and install
         | 
| 126 124 |  | 
| 127 125 | 
             
                tar xvfz ruby-oci8-VERSION.tar.gz
         | 
| 128 126 | 
             
                cd ruby-oci8-VERSION
         | 
| @@ -1,10 +1,12 @@ | |
| 1 1 | 
             
            # @title Platform Specific Issues
         | 
| 2 2 |  | 
| 3 | 
            +
            Platform Specific Issues
         | 
| 4 | 
            +
            ========================
         | 
| 5 | 
            +
             | 
| 3 6 | 
             
            Linux
         | 
| 4 | 
            -
             | 
| 7 | 
            +
            -----
         | 
| 5 8 |  | 
| 6 | 
            -
            Ubuntu 11.10 (Oneiric Ocelot)
         | 
| 7 | 
            -
            -----------------------------
         | 
| 9 | 
            +
            ### Ubuntu 11.10 (Oneiric Ocelot)
         | 
| 8 10 |  | 
| 9 11 | 
             
            If the following error occurs even though libc6-dev is installed,
         | 
| 10 12 |  | 
| @@ -15,8 +17,7 @@ You need to use ruby-oci8 2.1.0 or upper. Otherwise, run the following command a | |
| 15 17 |  | 
| 16 18 | 
             
                $ sudo ln -s /usr/include/linux/ /usr/include/sys
         | 
| 17 19 |  | 
| 18 | 
            -
            General Linux
         | 
| 19 | 
            -
            -------------
         | 
| 20 | 
            +
            ### General Linux
         | 
| 20 21 |  | 
| 21 22 | 
             
            Use the same bit-width of libraries with ruby. For example, x86\_64
         | 
| 22 23 | 
             
            instant client for x86\_64 ruby and 32-bit instant client for 32-bit
         | 
| @@ -32,21 +33,18 @@ To check which type of ruby do you use: | |
| 32 33 | 
             
            Note: "`" is a back quote.
         | 
| 33 34 |  | 
| 34 35 | 
             
            Mac OS X
         | 
| 35 | 
            -
             | 
| 36 | 
            +
            --------
         | 
| 36 37 |  | 
| 37 | 
            -
            OS X 10.7+
         | 
| 38 | 
            -
            ----------
         | 
| 38 | 
            +
            ### OS X 10.7+
         | 
| 39 39 |  | 
| 40 40 | 
             
            Use the latest 64-bit instant client. The older 64-bit (10.2.0.4) instant client [doesn't work](https://forums.oracle.com/forums/thread.jspa?threadID=2187558). The older 32-bit instant client will work but only with 32-bit ruby or jruby (using JDBC).
         | 
| 41 41 |  | 
| 42 | 
            -
            Intel Mac (64-bit)
         | 
| 43 | 
            -
            ------------------
         | 
| 42 | 
            +
            ### Intel Mac (64-bit)
         | 
| 44 43 |  | 
| 45 44 | 
             
            See [How to setup Ruby and Oracle Instant Client on Snow Leopard](http://blog.rayapps.com/2009/09/06/how-to-setup-ruby-and-oracle-instant-client-on-snow-leopard/).
         | 
| 46 45 | 
             
            Note that setting the environment variable RC\_ARCHS=x86\_64 instead of ARCHFLAGS="-arch x86\_64" will work fine also.
         | 
| 47 46 |  | 
| 48 | 
            -
            Intel Mac (32-bit)
         | 
| 49 | 
            -
            ------------------
         | 
| 47 | 
            +
            ### Intel Mac (32-bit)
         | 
| 50 48 |  | 
| 51 49 | 
             
            See [How to setup Ruby and Oracle Instant Client on Snow Leopard](http://blog.rayapps.com/2009/09/06/how-to-setup-ruby-and-oracle-instant-client-on-snow-leopard/). Note that you need to replace x86\_64 with i386 in the blog.
         | 
| 52 50 |  | 
| @@ -57,13 +55,12 @@ use one of the following workarounds. | |
| 57 55 | 
             
            * use [ruby-odbc](http://www.ch-werner.de/rubyodbc/) and a third party ODBC driver ([Actual Technologies](http://www.actualtechnologies.com) or [OpenLink Software](http://uda.openlinksw.com/)).
         | 
| 58 56 | 
             
            * use JRuby and Oracle JDBC driver.
         | 
| 59 57 |  | 
| 60 | 
            -
            PowerPC Mac
         | 
| 61 | 
            -
            -----------
         | 
| 58 | 
            +
            ### PowerPC Mac
         | 
| 62 59 |  | 
| 63 60 | 
             
            See [How to setup Ruby and Oracle Instant Client on Snow Leopard](http://blog.rayapps.com/2009/09/06/how-to-setup-ruby-and-oracle-instant-client-on-snow-leopard/). Note that you need to replace x86\_64 with ppc in the blog.
         | 
| 64 61 |  | 
| 65 62 | 
             
            Solaris
         | 
| 66 | 
            -
             | 
| 63 | 
            +
            -------
         | 
| 67 64 |  | 
| 68 65 | 
             
            You need a same compiler which is used to make ruby itself.
         | 
| 69 66 | 
             
            For example, if the ruby is compiled by gcc, you need gcc. If it is compiled by Oracle Solaris Studio
         | 
| @@ -83,15 +80,10 @@ as follows: | |
| 83 80 | 
             
                to:   CONFIG["LDFLAGS"] = "-L. "
         | 
| 84 81 |  | 
| 85 82 | 
             
            FreeBSD
         | 
| 86 | 
            -
             | 
| 87 | 
            -
             | 
| 88 | 
            -
            There are two ways.
         | 
| 83 | 
            +
            -------
         | 
| 89 84 |  | 
| 90 | 
            -
             | 
| 91 | 
            -
             | 
| 92 | 
            -
             | 
| 93 | 
            -
            linux emulator
         | 
| 94 | 
            -
            --------------
         | 
| 85 | 
            +
            Oracle8-client port isn't available because it is too old.
         | 
| 86 | 
            +
            You need to use linux emulator.
         | 
| 95 87 |  | 
| 96 88 | 
             
            I have not run ruby-oci8 on linux emulator, but I guess it will
         | 
| 97 89 | 
             
            run as follows. If it works, please tell me.
         | 
| @@ -129,33 +121,8 @@ On freebsd: | |
| 129 121 | 
             
                cd /compat/linux/usr/local
         | 
| 130 122 | 
             
                tar xvfz ruby-1.8.x-linux.tar.gz
         | 
| 131 123 |  | 
| 132 | 
            -
            oracle8-client port
         | 
| 133 | 
            -
            -------------------
         | 
| 134 | 
            -
             | 
| 135 | 
            -
            I don't recommend this because of the following two reasons.
         | 
| 136 | 
            -
             | 
| 137 | 
            -
            * The oracle8-client port is made from Oracle 8.1.7.1 static library for Linux. Oracle have not supported the connectivity between 8.1.7.1 and Oracle 10g.
         | 
| 138 | 
            -
            * It is very unstable. When it fails to connect to an Oracle server, it is down by segmentation fault on FreeBSD 7.0 not only when using ruby-oci8, but also by a very simple test code written by C.
         | 
| 139 | 
            -
             | 
| 140 | 
            -
            If you try to use oracle8-client port, compile and install as follows.
         | 
| 141 | 
            -
             | 
| 142 | 
            -
            * install oracle8-client
         | 
| 143 | 
            -
             | 
| 144 | 
            -
                cd /usr/ports/databases/oracle8-client
         | 
| 145 | 
            -
                make
         | 
| 146 | 
            -
                make install
         | 
| 147 | 
            -
             | 
| 148 | 
            -
            * set an environment variable ORACLE\_HOME
         | 
| 149 | 
            -
             | 
| 150 | 
            -
                export ORACLE_HOME=/usr/local/oracle8-client
         | 
| 151 | 
            -
             | 
| 152 | 
            -
            The rest steps are described at {file:docs/install-full-client.md}.
         | 
| 153 | 
            -
             | 
| 154 | 
            -
            note: You have no need to set LD\_LIBRARY\_PATH because 
         | 
| 155 | 
            -
            Oracle libraries in oracle8-client port are static ones.
         | 
| 156 | 
            -
             | 
| 157 124 | 
             
            HP-UX
         | 
| 158 | 
            -
             | 
| 125 | 
            +
            -----
         | 
| 159 126 |  | 
| 160 127 | 
             
            You need a ruby which is linked with ''libpthread'' and ''libcl''.
         | 
| 161 128 |  | 
| @@ -174,7 +141,7 @@ and `make install`. | |
| 174 141 | 
             
            The rest steps are described at {file:docs/install-full-client.md}.
         | 
| 175 142 |  | 
| 176 143 | 
             
            Windows
         | 
| 177 | 
            -
             | 
| 144 | 
            +
            -------
         | 
| 178 145 |  | 
| 179 146 | 
             
            On some machines using a slow disk, you may get the following error.
         | 
| 180 147 |  | 
| @@ -1,5 +1,8 @@ | |
| 1 1 | 
             
            # @title Report Installation Issues
         | 
| 2 2 |  | 
| 3 | 
            +
            Report Installation Issues
         | 
| 4 | 
            +
            ==========================
         | 
| 5 | 
            +
             | 
| 3 6 | 
             
            Look at {file:docs/platform-specific-issues.md} and [the issues page on github][github] to check whether your issue is fixed or not.
         | 
| 4 7 |  | 
| 5 8 | 
             
            If it is a new one, post the following information to [github][].
         | 
    
        data/docs/timeout-parameters.md
    CHANGED
    
    | @@ -30,6 +30,9 @@ The next two parameters `send_timeout` and `recv_timeout` are available on Oracl | |
| 30 30 | 
             
            or upper. Use these parameters to prevent a ruby process from being blocked by poor quality network.
         | 
| 31 31 | 
             
            Otherwise, the ruby process may be blocked until TCP keepalive time (2 hours).
         | 
| 32 32 |  | 
| 33 | 
            +
            See {file:docs/hanging-after-inactivity.md Hanging After a Long Period of Inactivity}
         | 
| 34 | 
            +
            for TCP keepalive time.
         | 
| 35 | 
            +
             | 
| 33 36 | 
             
            tcp_connect_timeout
         | 
| 34 37 | 
             
            -------------------
         | 
| 35 38 |  | 
    
        data/lib/oci8.rb
    CHANGED
    
    | @@ -1,4 +1,3 @@ | |
| 1 | 
            -
             | 
| 2 1 | 
             
            #   --*- ruby -*--
         | 
| 3 2 | 
             
            # This is based on yoshidam's oracle.rb.
         | 
| 4 3 | 
             
            #
         | 
| @@ -68,12 +67,50 @@ else | |
| 68 67 | 
             
              raise 'unsupported ruby engine: ' + RUBY_ENGINE
         | 
| 69 68 | 
             
            end
         | 
| 70 69 |  | 
| 70 | 
            +
            dll_dir = nil
         | 
| 71 | 
            +
            begin
         | 
| 72 | 
            +
              require 'ruby_installer/runtime' # RubyInstaller2 for Windows
         | 
| 73 | 
            +
             | 
| 74 | 
            +
              dll_arch = proc do |file|
         | 
| 75 | 
            +
                begin
         | 
| 76 | 
            +
                  File.open(file, 'rb') do |f|
         | 
| 77 | 
            +
                    if f.read(2) == 'MZ' # IMAGE_DOS_HEADER.e_magic
         | 
| 78 | 
            +
                      f.seek(60, IO::SEEK_SET)
         | 
| 79 | 
            +
                      pe_offset = f.read(4).unpack('V')[0] # IMAGE_DOS_HEADER.e_lfanew
         | 
| 80 | 
            +
                      f.seek(pe_offset)
         | 
| 81 | 
            +
                      if f.read(4) == "PE\000\000" # IMAGE_NT_HEADERS.Signature
         | 
| 82 | 
            +
                        case f.read(2).unpack('v')[0] # IMAGE_FILE_HEADER.Machine
         | 
| 83 | 
            +
                        when 0x014c # IMAGE_FILE_MACHINE_I386
         | 
| 84 | 
            +
                          :x86
         | 
| 85 | 
            +
                        when 0x8664 # IMAGE_FILE_MACHINE_AMD64
         | 
| 86 | 
            +
                          :x64
         | 
| 87 | 
            +
                        end
         | 
| 88 | 
            +
                      end
         | 
| 89 | 
            +
                    end
         | 
| 90 | 
            +
                  end
         | 
| 91 | 
            +
                rescue
         | 
| 92 | 
            +
                  nil
         | 
| 93 | 
            +
                end
         | 
| 94 | 
            +
              end
         | 
| 95 | 
            +
             | 
| 96 | 
            +
              ruby_arch = [nil].pack('P').size == 8 ? :x64 : :x86
         | 
| 97 | 
            +
              ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
         | 
| 98 | 
            +
                if dll_arch.call(File.join(path, 'OCI.DLL')) == ruby_arch
         | 
| 99 | 
            +
                  dll_dir = RubyInstaller::Runtime.add_dll_directory(path)
         | 
| 100 | 
            +
                  break
         | 
| 101 | 
            +
                end
         | 
| 102 | 
            +
              end
         | 
| 103 | 
            +
            rescue LoadError
         | 
| 104 | 
            +
            end
         | 
| 105 | 
            +
             | 
| 71 106 | 
             
            begin
         | 
| 72 107 | 
             
              require so_basename
         | 
| 73 108 | 
             
            rescue LoadError, OCIError
         | 
| 74 109 | 
             
              require 'oci8/check_load_error'
         | 
| 75 110 | 
             
              OCI8::Util::check_load_error($!)
         | 
| 76 111 | 
             
              raise
         | 
| 112 | 
            +
            ensure
         | 
| 113 | 
            +
              dll_dir.remove if dll_dir
         | 
| 77 114 | 
             
            end
         | 
| 78 115 |  | 
| 79 116 | 
             
            require 'oci8/version.rb'
         | 
    
        data/lib/oci8/cursor.rb
    CHANGED
    
    | @@ -58,15 +58,16 @@ class OCI8 | |
| 58 58 | 
             
                #   # ...or...
         | 
| 59 59 | 
             
                #   cursor.bind_param(':ename', 'SMITH') # bind by name
         | 
| 60 60 | 
             
                #
         | 
| 61 | 
            -
                # To bind as number,  | 
| 62 | 
            -
                #  | 
| 63 | 
            -
                # +type+ and Fixnum or Float to +val+.
         | 
| 61 | 
            +
                # To bind as number, set the number intself to +val+. If its initial value
         | 
| 62 | 
            +
                # is NULL, please set nil to +type+ and Integer, Float or OraNumber to +val+.
         | 
| 64 63 | 
             
                #
         | 
| 65 64 | 
             
                # example:
         | 
| 66 | 
            -
                #   cursor.bind_param(1, 1234) # bind as  | 
| 65 | 
            +
                #   cursor.bind_param(1, 1234) # bind as Integer, Initial value is 1234.
         | 
| 67 66 | 
             
                #   cursor.bind_param(1, 1234.0) # bind as Float, Initial value is 1234.0.
         | 
| 68 | 
            -
                #   cursor.bind_param(1, nil,  | 
| 67 | 
            +
                #   cursor.bind_param(1, nil, Integer) # bind as Integer, Initial value is NULL.
         | 
| 69 68 | 
             
                #   cursor.bind_param(1, nil, Float) # bind as Float, Initial value is NULL.
         | 
| 69 | 
            +
                #   cursor.bind_param(1, OraNumber(1234)) # bind as OraNumber, Initial value is 1234.
         | 
| 70 | 
            +
                #   cursor.bind_param(1, nil, OraNumber) # bind as OraNumber, Initial value is NULL.
         | 
| 70 71 | 
             
                #
         | 
| 71 72 | 
             
                # In case of binding a string, set the string itself to
         | 
| 72 73 | 
             
                # +val+. When the bind variable is used as output, set the
         | 
| @@ -379,7 +380,7 @@ class OCI8 | |
| 379 380 | 
             
                #
         | 
| 380 381 | 
             
                # FYI: Rails oracle adaptor uses 100 by default.
         | 
| 381 382 | 
             
                #
         | 
| 382 | 
            -
                # @param [ | 
| 383 | 
            +
                # @param [Integer] rows The number of rows to be prefetched
         | 
| 383 384 | 
             
                def prefetch_rows=(rows)
         | 
| 384 385 | 
             
                  attr_set_ub4(11, rows) # OCI_ATTR_PREFETCH_ROWS(11)
         | 
| 385 386 | 
             
                end
         | 
| @@ -430,12 +431,12 @@ class OCI8 | |
| 430 431 | 
             
                # * OCI8::STMT_ALTER
         | 
| 431 432 | 
             
                # * OCI8::STMT_BEGIN (PL/SQL block which starts with a BEGIN keyword)
         | 
| 432 433 | 
             
                # * OCI8::STMT_DECLARE (PL/SQL block which starts with a DECLARE keyword)
         | 
| 433 | 
            -
                # * Other  | 
| 434 | 
            +
                # * Other Integer value undocumented in Oracle manuals.
         | 
| 434 435 | 
             
                #
         | 
| 435 436 | 
             
                # <em>Changes between ruby-oci8 1.0 and 2.0.</em>
         | 
| 436 437 | 
             
                #
         | 
| 437 438 | 
             
                # [ruby-oci8 2.0] OCI8::STMT_* are Symbols. (:select_stmt, :update_stmt, etc.)
         | 
| 438 | 
            -
                # [ruby-oci8 1.0] OCI8::STMT_* are  | 
| 439 | 
            +
                # [ruby-oci8 1.0] OCI8::STMT_* are Integers. (1, 2, 3, etc.)
         | 
| 439 440 | 
             
                #
         | 
| 440 441 | 
             
                def type
         | 
| 441 442 | 
             
                  # http://docs.oracle.com/cd/E11882_01/appdev.112/e10646/ociaahan.htm#sthref5506
         |