Heute mal tatsächlich seit langem wieder ein richtiger IT-Post.
Als ich heute versuchte, eine Schleife die Daten zusammenstellt und dann in INSERT Statements verpackt und in einer großen Transaction gegen die Datenbank pustet, von MS-SQL auf ORACLE umzustellen bekam ich dabei den hier vorgeworfen.
ORA-01000: Maximale Anzahl offener Cursor überschritten
Großes Tennis – also erstmal ein bißchen googeln und siehe da.
Wenn man für jeden Befehl ein eigenes Command-Objekt öffnet, dann hält dieses auf ORACLEs Seite einen Cursor offen, das Objekt wird dann von GarbageCollection u.U. zu spät abgeräumt und man überschreitet die maximale Anzahl. *peng*
Entweder man verwendet die Command-Objekte also mehrfach, oder man ruft explizit Dispose() auf – dann funktioniert’s.
MS-SQL ist da nicht so empfindlich.