OracleDecimal構造
OracleDecimal構造は、データベース内のOracle NUMBERまたは任意のOracleの数値を表します。
クラスの継承
System.Object
System.ValueType
Oracle.DataAccess.Types.OracleDecimal
宣言
// C# public struct OracleDecimal : IComparable, INullable, IXmlSerializable
要件
| プロバイダ | ODP.NET管理対象外ドライバ | ODP.NET管理対象ドライバ | ODP.NET Core |
|---|---|---|---|
|
アセンブリ |
|
|
|
|
ネームスペース |
|
|
|
|
.NET Framework |
3.5, 4.5, 4.6, 4.7, 4.8 |
4.5, 4.6, 4.7, 4.8 |
4.6.1以降 |
|
.NET Core |
- |
- |
2.1以降 |
スレッド安全性
パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。
備考
.NETのDecimalデータ型では最大28までの精度しか保持できませんが、OracleDecimalでは最大38までの精度を格納できます。精度が28を超える値を持つOracleDecimalからOracleDecimal.Valueプロパティにアクセスすると、例外がスローされます。OracleDecimalの実際の値を取得するには、OracleDecimal.ToString()メソッドを使用します。または、BinDataプロパティにより、OracleDecimal値をバイト配列として内部Oracle NUMBER書式で取得する方法があります。
例
// C#
using System;
using Oracle.DataAccess.Types;
class OracleDecimalSample
{
static void Main(string[] args)
{
// Illustrates the range of OracleDecimal vs. .NET decimal
OracleDecimal decimal1 = OracleDecimal.MinValue;
OracleDecimal decimal2 = OracleDecimal.MaxValue;
OracleDecimal decimal3 = new OracleDecimal(decimal.MinValue);
OracleDecimal decimal4 = new OracleDecimal(decimal.MaxValue);
// Print the ranges
Console.WriteLine("OracleDecimal can range from\n{0}\nto\n{1}\n",
decimal1, decimal2);
Console.WriteLine(".NET decimal can range from\n{0}\nto\n{1}",
decimal3, decimal4);
}
}