Forum: Ruby Populating long data column with Ruby OCI8

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
397f61cc4458e13157b4facf72325e5f?d=identicon&s=25 Gennady Bystritsky (Guest)
on 2006-01-17 07:08
(Received via mailing list)
Hi, friends

I am back to the list after a while. And I start the reunion with a
question ;-).

Is there any way to insert a big chunk of data (say, 100K) into a column
of type long with Ruby OCI8 or by any other Ruby means? I saw that to do
it in C you must be prepared to handle OCI error code inviting you to
insert another piece. But how to do it in Ruby, especially with OCI8? If
I do

require 'oci8'

db = OCI8.new 'system', 'manager'
db.exec("create table sample (id number, data long)")

data = 'A' * 1024 * 100

c = db.parse('insert into sample values (2, :data)')
c.bind_param(':data', data)

c.exec
db.commit

What I end up with in column 'data' is host dependent (or db block size
dependent?). I observed 14464 bytes on 2K database on Solaris, and 34652
bytes on 8K database on Linux.

Thank you,
Gennady Bystritsky.
This topic is locked and can not be replied to.