cx_Oracle : How do I iterate over an outcome set?
The approved means is to make use of the constructed - in arrow iterator.
curs.execute('select * from people') for row in curs: print row
You can make use of
fetchall() to get all rows simultaneously.
for row in curs.fetchall(): print row
It can be hassle-free to utilize this to create a Python checklist having the values returned:
curs.execute('select first_name from people') names = [row for row in curs.fetchall()]
This can be valuable for smaller sized outcome collections, yet can have negative negative effects if the outcome set is huge.
You need to await the whole outcome readied to be gone back to your customer procedure.
You might consume a great deal of memory in your customer to hold the constructed - up checklist.
It might take a while for Python to construct and also deconstruct the checklist which you are mosting likely to quickly throw out anyways.
If you recognize there's a solitary row being returned in the outcome set you can call
fetchone() to get the solitary row.
curs.execute('select max(x) from t') maxValue = curs.fetchone()
Finally, you can loop over the outcome set bring one row at once. As a whole, there's no certain benefit in doing this over making use of the iterator.
row = curs.fetchone() while row: print row row = curs.fetchone()