That means that your code is creating more statement at a time that the max
cursor allowed in the DB (spfile) or that your code does not free all the
statement you've created...
Without more information about your code, i cannot say more....
Regards,
Vincent
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
I run many times the routine OCI_ExecuteStmt, like:
CString stm;
st = OCI_StatementCreate (SGBD);
if (OCI_ExecuteStmt (st, stm))
{
OCI_Resultset *rs;
CString valor_fila;
int i, j, n;
rs = OCI_GetResultset (st);
n = OCI_GetColumnCount (rs);
for (i=0; OCI_FetchNext (rs); i++)
{....}
}
OCI_StatementFree (st);
After several queries, Oracle return me the error "ORA-01000: maximum open
cursors exceeded"
What can I do to solve it?
Many thanks in advance
Josemi
Hi,
That means that your code is creating more statement at a time that the max
cursor allowed in the DB (spfile) or that your code does not free all the
statement you've created...
Without more information about your code, i cannot say more....
Regards,
Vincent
Hi Vincet
You had reason :-(. I've got 2 routines without dispose statement
(OCI_StatementFree). Now it works fine
Many, many thanks
Yours sincerely
Josemi
I am having the same mistake in version 3.11.0. Which version is fixed?
About errors ORA-01000, the problem does not reside in OCILIB but in the user code that does not frees statements !
You are right Vicent.
There were in my code createStatements without its delelteStatements.
Thanks for the answer and for the library