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