SuppressGetDecimalInvalidCastException

このプロパティは、InvalidCastExceptionを抑制し、28または29の精度に四捨五入された.NET Decimalとして表すことができるOracle NUMBER値を返すかどうかを指定します。

宣言

// C#
public bool SuppressGetDecimalInvalidCastException { get; set; }

プロパティ・タイプ

System.Boolean

備考

Oracle NUMBERの精度は最大38です。.NET Decimalの精度は最大28または29です。GetDecimal()メソッドが.NET Decimalとして表現できないOracle NUMBER値に対して呼び出された場合、数値を.NET Decimalに変換する際にすべての精度を保持できるわけではないため、ODP.NETによりInvalidCastExceptionがスローされます。

この動作は、SuppressGetDecimalInvalidCastExceptionfalseに設定されている場合に発生します。デフォルト値はfalseです。

SuppressGetDecimalInvalidCastExceptiontrueに設定されている場合、例外をスローせずに.NET Decimalとして収まるように、結果の10進数は28または29の精度に四捨五入されます。端数処理された数値が .NET Decimalに格納できる数値を超える場合は、数値1 x 10^32などの例外がスローされます。

SuppressGetDecimalInvalidCastExceptionプロパティは、OracleConfigurationOracleConnectionおよびOracleDataReaderオブジェクトでも構成できます。OracleDataAdapter SuppressGetDecimalInvalidCastExceptionプロパティ値は、作成時にOracleConnectionOracleCommand.ConnectionまたはOracleConfiguration SuppressGetDecimalInvalidCastExceptionプロパティ値を継承します。

OracleDataAdapter.SuppressGetDecimalInvalidCastExceptionを使用すると、このODP.NET設定がOracleDataAdapterの存続期間に有効になります。