Ruby-oci8-1.0.0 rowid

I noticed this apparently unanswered thread:

http://groups.google.com/group/comp.lang.ruby/browse_frm/thread/2ae6af9717678d39/cf37b223d5f7231f

It would seem that this is still a problem? I’m trying to port some
old code from oracle-0.2.11 to ruby-oci8-1.0.0 and for the most part
it is working. However, I can’t seem to figure out how to access the
rowid from oci8. I’ve got a simple query that I set up with the parse
method, then do:

cur.exec
while r = cur.fetch()
p r
p cur.rowid()
end
cur.close

But unfortunately get:

attr.c:261:in oci8lib.so: No Data (OCINoData)
from /opt/ruby/oci8/oci8.rb:817:in `rowid’

Anyway around this? I need to use the newer Oracle library because I
need to use a “//server:port/dataset” connection string that the older
library doesn’t seem to support.

I guess I may have to bail on using Ruby and convert it over to Java
like what the reset of the group is doing.

Amos

On Jan 15, 9:46 am, Amos [email protected] wrote:

I noticed this apparently unanswered thread:

http://groups.google.com/group/comp.lang.ruby/browse_frm/thread/2ae6af9717678d39/cf37b223d5f7231f

It would seem that this is still a problem? I’m trying to port some
old code from oracle-0.2.11 to ruby-oci8-1.0.0 and for the most part
it is working. However, I can’t seem to figure out how to access the
rowid from oci8.

It was pointed out to me that this works for ruby-oci8-1.0.0:

cursor = conn.parse(‘select rowid, t.* from dual t’)
cursor.define(1, String, 23) # fetch 1st column as a String.
cursor.exec
while row = cursor.fetch
puts row[0]
end

As for OCI8::Cursor#rowid, it is available to get rowids of inserted
rows.

cursor = conn.parse(‘insert into foo values (1, 2)’)
cursor.exec
rowid = cursor.rowid # inserted row’s rowid.

Amos

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs