ich den Code unten haben:ORA-01000: maximal geöffneten Cursor überschritten Fehler
using (System.Data.OracleClient.OracleConnection dataConn = new System.Data.OracleClient.OracleConnection(_connectionString))
{
using (System.Data.OracleClient.OracleCommand cmd = new System.Data.OracleClient.OracleCommand())
{
cmd.Connection = dataConn;
cmd.CommandText = "DELETE FROM Employees WHERE LOCATIONID= :LOCATIONID";
cmd.Parameters.AddWithValue(":LOCATIONID", locationId);
dataConn.Open();
retVal += cmd.ExecuteNonQuery();
dataConn.Close();
}
using (System.Data.OracleClient.OracleCommand cmd = new System.Data.OracleClient.OracleCommand())
{
cmd.Connection = dataConn;
cmd.CommandText = string.Format("DELETE FROM Locations WHERE LocationId = :LOCATIONID";
cmd.Parameters.AddWithValue(":LOCATIONID", locationId);
dataConn.Open();
retVal += cmd.ExecuteNonQuery();
dataConn.Close();
}
}
Gerade FYI,
- ich den oben Block sagen in einer Schleife anzurufenden 50 Iterationen.
- In jeder Iteration übergebe ich eine neue Locationid. -Die erste Abfrage löscht für jede Iteration möglicherweise 500 Datensätze in avg, da ein Standort 500 + Mitarbeitern zugewiesen ist.
Wie pro this Link :, Ich glaube, ich Dinge richtig mache, kann mir jemand bitte zeigen, warum ich immer noch die ORA-01000 erhalten: maximal geöffneten Cursor Fehler überschritten? Jede Hilfe wird sehr geschätzt. Danke.
Fragen Sie Ihren DBA Wert von [OPEN_CURSORS] (http://docs.oracle.com/database/121/REFRN/GUID-FAFD1247-06E5-4E64-917F-AEBD4703CF40.htm#REFRN10137) zu erhöhen. Ich denke, der Standardwert von 50 ist ziemlich niedrig. Vor allem, wie es heißt: * Es gibt keinen zusätzlichen Aufwand, um diesen Wert höher als tatsächlich benötigt zu setzen. * –