ODP.net Oracle Dezimalzahl Präzisions-problem beim füllen eines dataset. Ausnahme: die Arithmetische operation hat einen überlauf verursacht

Arbeite ich in c# .net 2 (Visual Studio 2005 SP1) versucht zu füllen ein dataset mit dem Ergebnis von " select * from Tabelle aus einer Oracle10g-Datenbank. Die .net framework, IDE-und Datenbank - nicht geändert werden bei diesem client-Seite.

Ich bin Verbindung mit dem ODP.net Anbieter die dll-version ist 2.102.2.20

Wenn ich den fill-Befehl, bekomme ich eine Exception:

Arithmetische operation hat einen überlauf verursacht

Auch wenn ich versuchen, anzeigen, die problematische Spalte in der Visual Studio-designer (Show Table Data) bekomme ich für jede Zeile für diese Spalte in der Tabelle. Der code funktioniert perfekt, wenn meine Abfrage ausgewählt werden andere Spalten mit Ganzzahlen Beispiel für das weglassen dieser Spalte.

Der Spalte in Frage, sieht gut aus, wenn ich eine Ansicht in der Datenbank von Kröte, Daten Aussehen:

919.742866695572

Brauche ich die Präzision, wie es erforderlich ist für eine monte-carlo-simulation.

Wenn Sie anstatt einer Daten-adapter zum füllen der datatable, die ich verwenden Sie ein datareader-Objekt, und rufen Sie dataReader.getValue(columnIndex) bekomme ich den gleichen Fehler aber wenn ich den Anruf dataReader.GetOracleDecimal(columnIndex) dann habe ich das Ergebnis bekommen ich bin auf der Suche nach, kein Fehler.

Ich würde eher die Daten verwenden, adapter und dataset füllen (Hinweis: diese sind nicht typisierten datasets als ich konnte nicht wieder automatisch generierte stark typisierten datasets zu arbeiten, die von einer oracle-db). Ich will nicht zu verwenden von datareader und Spaziergang durch die Ergebnisse (wählen Sie aus der Spalte Werte), wie ich bin versucht zu schreiben, als eine Allgemeine Methode funktioniert für viele Szenarien unabhängig von der Anzahl der Spalten, index decimal-Spalten erfordern würde, dass bestimmte Anrufe bekommen von dem Datentyp.

Kann jemand helfen?
Kann ich neue Versionen der ODP.net dlls, um eine Verbindung zu den älteren Oracle10g Datenbank? Frage mich ob das helfen wird.

Dank

Ändern der ODP.net version 11g (Oracle.DataAccess.dll 2.111.6.20) nicht helfen, ich bekomme immer noch die Arithmetische operation hat einen überlauf verursacht Ausnahme. Eine Lösung, die zwar nicht ideal ist, um dies zu tun: WÄHLEN Sie TO_CHAR(offendingColumn) VOM Tisch, Aber jetzt ist mein dataColumn-Typen unterschiedlich sind, Schreibe ich diese Daten in Excel bin ich mir nicht sicher, ob dies wird Auswirkungen auf die Formatierung der Zellen als gut.
Auch bedeutet es, ich muss wissen, über jede Spalte in der Tabelle kann ich nicht einfach eine Decke Select * From Tabelle

InformationsquelleAutor m3ntat | 2009-06-25

Schreibe einen Kommentar