Several days ago, I wrote a piece of program in C#/.Net to import some records into oracle database. It is windows version 10g XE. When the program is running, I got a run-time error which is ORA-01000 maximum open cursors exceeded.
Here is the Oracle docs about ORA-01000:
ORA-01000 maximum open cursors exceeded
Cause: A host language program attempted to open too many cursors. The initialization parameter OPEN_CURSORS determines the maximum number of cursors per user.
Action: Modify the program to use fewer cursors. If this error occurs often, shut down Oracle, increase the value of OPEN_CURSORS, and then restart Oracle.
In order to solve this problem, I increased my OPEN_CURSORS by using:
ALTER SYSTEM SET open_cursors = 5000 SCOPE=BOTH;
You can use SQL/PL client and "connect" command to login the database system by using "system" user to change the open_cursors.
If you are using .NET, DBA, and Java programming, please remember to close all the readers or recordsets.
Otherwise, the un-used readers will bite all of your cursors.
Here is the Oracle docs about ORA-01000:
ORA-01000 maximum open cursors exceeded
Cause: A host language program attempted to open too many cursors. The initialization parameter OPEN_CURSORS determines the maximum number of cursors per user.
Action: Modify the program to use fewer cursors. If this error occurs often, shut down Oracle, increase the value of OPEN_CURSORS, and then restart Oracle.
In order to solve this problem, I increased my OPEN_CURSORS by using:
ALTER SYSTEM SET open_cursors = 5000 SCOPE=BOTH;
You can use SQL/PL client and "connect" command to login the database system by using "system" user to change the open_cursors.
If you are using .NET, DBA, and Java programming, please remember to close all the readers or recordsets.
Otherwise, the un-used readers will bite all of your cursors.
Comments