Chris Hulan
7/19/2006 3:21:00 PM
Faby wrote:
> 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
Two ways come to mind:
1) 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
2) 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...
Cheers