に、Oracle10gデータベースのselect * fromテーブルの結果を入力しようとすると、C#.net 2(Visual Studio 2005 SP1)で作業しています。 .netフレームワーク、IDEおよびデータベースはこのクライアントサイトでを変更できません。ODP.netデータセットを塗りつぶすときのOracle Decimal Numberの精度の問題。例外:算術演算のオーバーフローが発生しました
算術演算をもたらした:私はODP.netプロバイダを使用して接続してい
は、私はフィルコマンドを実行するとDLLのバージョンは、2.102.2.20
である私は例外を取得しますオーバーフローする
また、Visual Studioデザイナー(表示テーブルデータ)で問題の列を表示しようとすると、私は evテーブル内のこの列の行を削除します。このコードは、クエリで整数などの他の列を選択すると(たとえば、この列を省略した場合)、完全に機能します。それはモンテカルロシミュレーションに必要だとして
919.742866695572
は私が 精度が必要:私はヒキガエルからデータベースにそれを表示するときに問題になっている列が正常に見えるは、データは次のようになります。
データアダプタを使用してデータテーブルを埋めるのではなく、datareaderを使用してdataReader.getValue(columnIndex)を呼び出すと、同じエラーが発生しますが、dataReader.GetOracleDecimal(columnIndex)を呼び出すと、エラーなし。
データアダプターを使用してデータセットを埋め込むことになります(これらは、oracle dbから自動生成される強力な型指定のデータセットを取得できないため、型なしのデータセットです)。私はdatareaderを使用して結果を歩き回りたくない(列の値を選ぶ)ので、列の数、特定の列を必要とする小数点の列のインデックスに関係なく、多くのシナリオで動作する汎用メソッドとして記述しようとしています。データ型で呼び出しを取得します。
誰でも手助けできますか? 新しいバージョンのODP.net dllを使用して、古いバージョンのOracle10gデータベースに接続できますか?これが助けになるのだろうかと思っています。
ありがとうございました
ODP.netのバージョンを11gに変更しています(Oracle.DataAccess.dll 2.111.6。20)が助けにならなかったので、算術演算でオーバーフロー例外が発生しました。これを実行するための一つの解決策であるが理想的ではないです: 表 しかし、これはセルの書式設定に影響を与える場合は、Excelにので、私はわからないんだから、今の私のDataColumnの種類が異なっている、私はこのデータを書き込むFROM SELECT TO_CHAR(offendingColumn) 同じように。 – m3ntat
また、私はテーブルの各列について知っておく必要があることを意味する私はブランケットを行うことはできません選択*表から – m3ntat