Hi all,
I am new to ruby so any help will be greatly appreciated.
I am using ruby with oracle, and the following text is an extract of my
programm. (A cursor is fecthing the rows of a sql query.)
while row=cursor.fetch
if(row[0]<4)
outputFile<<row[0].to_s+"\t"+row[1].to_s+"\n"
elsif (row[0]>=4)
totalRow4+=row[1]
end
end
What I need now is to be able to determine when my cursor has reached
the last row of my query ie if row==last_row…
I hope i explain myself clearly enough
Thanks
Faby
end
What I need now is to be able to determine when my cursor has reached
the last row of my query ie if row==last_row…
I hope i explain myself clearly enough
Thanks
Faby
Two ways come to mind:
first execute a count(*) cursor to get the number of records,
then in the while loop count the records so you know when
you are on the last one.
or similarly
Oracle tables have a psuedo-column called ROWNUM, which
is a sequential number for a given records set. Execute a query
to get the max(ROWNUM) for the query results, then in the while
loop check for the row.ROWNUM equal to maxRowNum.
I also believe you can do a fetch_all to get all rows into an array,
but
this will depend on how much memory the data needs…
Hi,Thank you for your answers. I managed to get my problem solved using
a count method. Thanks Daniel for your answer, i will try to implement
it now as it may be a quicker way.
Many thanks for your help
Faby
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.