ruby-oci8 1.0.0-rc3 is released. This is a Oracle module using OCI8 API.
http://rubyforge.org/projects/ruby-oci8/
What’s new.
-
support external OS authentication.
(suggested by Dan Fitch)conn = OCI8.new(‘/’)
or
conn = OCI8.new(nil, nil) -
incompatible change on connect string.
You need to pass only one argument to OCI8.new to parse the
first argument as a SQL*Plus-like connect string.For example, OCI8.new(‘scott/tiger’, nil) was parsed as the
username is ‘scott’ and the password is ‘tiger’ in 1.0.0-rc2.
But from now on, it is treated as the username is ‘scott/tiger’
and the password is nil because it has two arguments. You need
to use OCI8.new(‘scott/tiger’) instead. -
fix NCLOB support on Oracle 9i.
(reported by Matthew Noble)1.0.0-rc2’s NCLOB support worked on Oracle 10g only.
-
fix a problem to compile with a third-party x86_64 rpm package.
(contributed by Jeff A.)The x86_64 source rpm packages are found on the following URLs.
[freshrpms.net] - Oracle 10g Instant Client on RHEL4 and RHEL5
http://remi.collet.free.fr/index.php?2007/01/22/279-oracle-instant-client-10203-on-x86_64 -
‘–with-instant-client’ option become obsolete and is ignored.
Use LD_LIBRARY_PATH(Linux), PATH(Windows), etc. to indicate
the instant client’s location. -
fix some other minor problems.
What will be new in the next release.
-
The vesion will be 1.0.0.
-
No data rounding between ruby’s Float and Oracle’s
BINARY_DOUBLE when using bind variables.In ruby-oci8 1.0.0-rc3 and earlier, even though an Oracle’s
column is defined as BINARY_DOUBLE, there are data convertions
between the server and the client. That’s because the network
data representation is not BINARY_DOUBLE but Oracle’s NUMBER
datatype. The client-side’s ruby Float become Oracle NUMBER
on the network and become BINARY_DOUBLE on the server. Ruby’s
Flaot and Oracle’s BINARY_DOUBLE are both IEEE 754 double
precision floating number, but Oracle NUMBER is base-100
floating number. It causes rounding problems. You can store
almost same but not exactly same values to the server.In ruby-oci8 1.0.0, the network data representation will be
same with BINARY_DOUBLE if the client and server’s version is
Oracle 10g. There will be no data conversion except changing
byte order.Note: Rails cannot store exactly same Float values to the server
even though after ruby-oci8 1.0.0 is released. That’s
because rails doesn’t use real bind variables.