explicitly closing cursors
Date: Tue, 13 Apr 2004 17:09:52 +0200
Message-ID: <c5gvs1$fk9$2_at_news-reader5.wanadoo.fr>
Hi,
I'm running a batch application that basically performs a potentially high
number of SELECT queries (a minor proportion of UPDATEs as well), using the
OCI.
After some 300 statements get executed, I'm faced with the recurrent
ORA-01000 error message that says "maximum open cursors exceeded". I checked
my OCIHandleFree() calls, there's no mismatch, meaning they match the calls
to OCIHandleAllocate().
My understanding is that to close cursors, you have to
- either let go of the connection, which i don't want to do because it'd be
way too costly for me to open and close a connection on each request,
- or as it says in the online documentation "explicitly close any open
cursor during the execution of (my) program".
After some amount of searching through documentation, my question is : how on earth do I explicitly close an open cursor ? What leaves me somewhat perplexed is that i came across the following statement somewhere else in the online help : "Oracle 8i does not use cursors any more". Well my impression is that it jolly well does, if only to issue error messages related to their excessive number :-)
G - Received on Tue Apr 13 2004 - 17:09:52 CEST