NHibernate を使用して Oracle データベースから SDO_ORDINATE_ARRAY をクエリしようとすると、OverflowException が発生します。
クラスのpublic static unsafe object GetValue(OracleConnection con, IntPtr pUdt, int attrIndex)
メソッド内の Oracle.DataAcess で例外がスローされます。OracleCustomTypeBase<T>
調査の結果、これは、Oracle が .NET よりも高い精度を 10 進値に使用しているため、DB から値を取得してネイティブの .NET 型に変換するときにクラッシュするという事実に起因するように思われることがわかりました。
OracleDecimal
オブジェクトを取得し、精度を設定してからValue
プロパティを取得する (.NET 10 進数を返す)ようにコードを変更しようとしましたが、うまくいきませんでした。
この問題を解決するにはどうすればよいですか? DUAL
SDO_ORDINATE_ARRAY をストアド プロシージャから、または偽のテーブルから選択して取得するため、カスタム型のマッピングを指定できないことに注意してください。
ご不明な点がございましたら、喜んでお答えいたします。