# Ruby-oci8-1.0.0 rowid

**URL:** <https://www.ruby-forum.com/t/ruby-oci8-1-0-0-rowid/126123>\
**Category:** Ruby\
**Created:** [January 15, 2008, 4:51pm UTC](https://www.ruby-forum.com/t/ruby-oci8-1-0-0-rowid/126123 "2008-01-15T16:51:02Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Amos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ebca7d/32.png) [@Amos](https://www.ruby-forum.com/u/Amos)\
**Post date:** [January 15, 2008, 4:51pm UTC](https://www.ruby-forum.com/t/ruby-oci8-1-0-0-rowid/126123/1 "2008-01-15T16:51:02Z")

</div>

I noticed this apparently unanswered thread:

[http://groups.google.com/group/comp.lang.ruby/browse\_frm/thread/2ae6af9717678d39/cf37b223d5f7231f](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

---

<div class="post-metadata">

**Author:** ![Amos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ebca7d/32.png) [@Amos](https://www.ruby-forum.com/u/Amos)\
**Post date:** [January 17, 2008, 4:44pm UTC](https://www.ruby-forum.com/t/ruby-oci8-1-0-0-rowid/126123/2 "2008-01-17T16:44:28Z")

</div>

On Jan 15, 9:46 am, Amos [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I noticed this apparently unanswered thread:
> 
> [http://groups.google.com/group/comp.lang.ruby/browse\_frm/thread/2ae6af9717678d39/cf37b223d5f7231f](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
