2009-05-15 3 views
1

Ich bin eine MauerWarum erhalte ich bei Oracle 10g mit DBExpress ein Record Record-Limit von 255?

während der normalen SQL-Verarbeitung trifft

Bei Verbindung mit Oracle 10g von einem Remote-Client w/dbexpress, - mit dem Standard dbxpora.dll + oci.dll

Wenn in einer Transaktion nach genau 255 Datensatz Einfügungen, hängt die Verbindung 30 Sekunden und gibt den Fehler:

ORA-03114 (as if it lost the connection...)

Dies geschieht, wenn 255 Datensätze in einer Tabelle, während in einer Transaktion eingefügt wird. (wenn lokal auf der db-box läuft alles funktioniert)

Gibt es etwas, das ich vermisse?

Antwort

0

Nun, ich kenne Oracle-Datenbanken nicht speziell, aber ich weiß, dass 255 eine magische Zahl ist. Es ist der maximale Wert, den Sie in einem einzelnen Byte ausdrücken können. Es gibt wahrscheinlich etwas, das als Byte deklariert ist, das Ihre Datensätze zählt, und Sie überfließen es. Versuchen Sie, Ihr gesamtes Projekt neu zu erstellen, indem Bereichsüberprüfung und Überlaufprüfung aktiviert werden, und überprüfen Sie, ob es irgendwo eine Ausnahme auslöst, wenn Sie das versuchen. Das sollte helfen, es aufzuspüren, wenn es tatsächlich in Code ist, den du kompilierst. Wenn es in einer der Bibliotheken ist, wird das nicht helfen.

+0

Vielleicht haben Sie verpasst "(wenn lokal auf der db-Box läuft alles funktioniert)" – Shane

+0

... oh. Ich habe das falsch gelesen. Ich dachte, du würdest deine Transaktion in der Datenbank manuell ausführen. In diesem Fall, vergiss es. Es ist immer noch wahrscheinlich ein Integer-Überlauf, aber das Problem ist irgendwo in Ihrer Transportschicht. Wenn Sie hier keine guten Antworten erhalten, versuchen Sie, dies Oracle mitzuteilen. –

+0

danke ... aber ich denke, dass Sie in der Transportschicht richtig sind ... d. DBExpress und Oracle10g. – Shane

Verwandte Themen