[ANN] ruby-oci8 1.0.0-rc3

K

KUBO Takehiro

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.

1. support external OS authentication.
(suggested by Dan Fitch)

conn = OCI8.new('/')
or
conn = OCI8.new(nil, nil)

2. 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.

3. fix NCLOB support on Oracle 9i.
(reported by Matthew Noble)

1.0.0-rc2's NCLOB support worked on Oracle 10g only.

4. fix a problem to compile with a third-party x86_64 rpm package.
(contributed by Jeff Abbott)

The x86_64 source rpm packages are found on the following URLs.
http://freshrpms.net/docs/oracle/
http://remi.collet.free.fr/index.php?2007/01/22/279-oracle-instant-client-10203-on-x86_64

5. '--with-instant-client' option become obsolete and is ignored.

Use LD_LIBRARY_PATH(Linux), PATH(Windows), etc. to indicate
the instant client's location.

6. fix some other minor problems.

What will be new in the next release.

1. The vesion will be 1.0.0.

2. 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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top