Oracle データ型のマッピング (ADO.NET)
更新 : November 2007
.NET Framework Data Provider for Oracle (System.Data.OracleClient) のデータ型から推論される .NET Framework の型を次の表に示します。OracleDataReader の型指定されたアクセサ メソッドも示します。
Oracle 型 |
.NET Framework 型 |
.NET Framework の型指定されたアクセサ |
OracleType の型指定されたアクセサ |
---|---|---|---|
BFILE |
Byte[] |
GetBytes() |
GetOracleBFile() |
BLOB |
Byte[] |
GetBytes() |
GetOracleLob() |
CHAR |
String Char[] |
GetString() GetChars() |
GetOracleString() |
CLOB |
String Char[] |
GetString() GetChars() |
GetOracleLob() |
DATE |
DateTime |
GetDateTime() |
GetOracleDateTime() |
FLOAT |
Decimal |
GetDecimal() |
GetOracleNumber() ** |
INTEGER |
Decimal |
GetDecimal() |
GetOracleNumber() ** |
INTERVAL YEAR TO MONTH * |
Int32 |
GetInt32() |
GetOracleMonthSpan() |
INTERVAL DAY TO SECOND * |
TimeSpan |
GetTimeSpan() |
GetOracleTimeSpan() |
LONG |
String Char[] |
GetString() GetChars() |
GetOracleString() |
LONG RAW |
Byte[] |
GetBytes() |
GetOracleBinary() |
NCHAR |
String Char[] |
GetString() GetChars() |
GetOracleString() |
NCLOB |
String Char[] |
GetString() GetChars() |
GetOracleLob() |
NUMBER |
Decimal |
GetDecimal() |
GetOracleNumber() ** |
NVARCHAR2 |
String Char[] |
GetString() GetChars() |
GetOracleString() |
RAW |
Byte[] |
GetBytes() |
GetOracleBinary() |
REF CURSOR |
|
|
|
ROWID |
String Char[] |
GetString() GetChars() |
GetOracleString() |
TIMESTAMP * |
DateTime |
GetDateTime() |
GetOracleDateTime() |
TIMESTAMP WITH LOCAL TIME ZONE * |
DateTime |
GetDateTime() |
GetOracleDateTime() |
TIMESTAMP WITH TIME ZONE * |
DateTime |
GetDateTime() |
GetOracleDateTime() |
UNSIGNED INTEGER |
Decimal |
GetDecimal() |
GetOracleNumber() ** |
VARCHAR2 |
String Char[] |
GetString() GetChars() |
GetOracleString() |
* この Oracle 型は、クライアントとサーバーの両方に Oracle 9i ソフトウェアを使用している場合にだけ使用できます。
** Oracle の NUMBER 型の有効桁数は 38 桁です。.NET Framework の decimal 型は 28 桁に制限されています。Oracle の NUMBER 型を .NET Framework の decimal 型に読み込む場合、28 桁を超える NUMBER 型の値では OverflowException がスローされます。OracleDataReader から Oracle の NUMBER 型の値を読み込む場合は、GetOracleNumber の型指定されたアクセサ メソッドを呼び出し、OracleNumber として Oracle の NUMBER 型の値を返すことをお勧めします。DataSet にデータを読む込む場合は、FillError イベントを使用して、OverflowException が発生したかどうかを確認し、発生時に適切な対応をすることができます。FillError イベントの詳細については、「DataAdapter のイベント処理 (ADO.NET)」を参照してください。