Oracle データ型のマップ
更新 : November 2007
次の表に、Oracle データ型およびその OracleDataReader へのマップを示します。
Oracle データ型 |
OracleDataReader.GetValue によって返される .NET Framework データ型 |
OracleDataReader.GetOracleValue によって返される OracleClient データ型 |
解説 |
---|---|---|---|
BFILE |
Byte[] |
|
|
BLOB |
Byte[] |
|
|
CHAR |
String |
|
|
CLOB |
String |
|
|
DATE |
DateTime |
|
|
FLOAT |
Decimal |
このデータ型は NUMBER データ型のエイリアスであり、OracleDataReader が浮動小数点数値ではなく System.Decimal または OracleNumber を返すことを目的として用意されています。.NET Framework データ型を使用することで、オーバーフローが発生する場合があります。 |
|
INTEGER |
Decimal |
このデータ型は NUMBER(38) データ型のエイリアスであり、OracleDataReader が整数値ではなく System.Decimal または OracleNumber を返すことを目的として用意されています。.NET Framework データ型を使用することで、オーバーフローが発生する場合があります。 |
|
INTERVAL YEAR TO MONTH |
Int32 |
|
|
INTERVAL DAY TO SECOND |
TimeSpan |
|
|
LONG |
String |
|
|
LONG RAW |
Byte[] |
|
|
NCHAR |
String |
|
|
NCLOB |
String |
|
|
NUMBER |
Decimal |
.NET Framework データ型を使用することで、オーバーフローが発生する場合があります。 |
|
NVARCHAR2 |
String |
|
|
RAW |
Byte[] |
|
|
REF CURSOR |
|
|
Oracle REF CURSOR データ型は OracleDataReader オブジェクトではサポートされていません。 |
ROWID |
String |
|
|
TIMESTAMP |
DateTime |
|
|
TIMESTAMP WITH LOCAL TIME ZONE |
DateTime |
|
|
TIMESTAMP WITH TIME ZONE |
DateTime |
|
|
UNSIGNED INTEGER |
Number |
このデータ型は NUMBER(38) データ型のエイリアスであり、OracleDataReader が符号なし整数値ではなく System.Decimal または OracleNumber を返すことを目的として用意されています。.NET Framework データ型を使用することで、オーバーフローが発生する場合があります。 |
|
VARCHAR2 |
String |
|
次の表に、パラメータとしてバインドする場合に使用する Oracle データ型および .NET Framework データ型 (System.Data.DbType および OracleType) を示します。
Oracle データ型 |
パラメータとしてバインドする DbType 列挙型 |
パラメータとしてバインドする OracleType 列挙型 |
解説 |
---|---|---|---|
BFILE |
|
BFile |
Oracle では、BFILE パラメータとしてのみ BFILE をバインドできます。.NET Data Provider for Oracle では、byte[] や OracleBinary など、BFILE 以外の値をバインドしようとした場合に、自動的にこれを構築することはありません。 |
BLOB |
|
Blob |
Oracle では、BLOB パラメータとしてのみ BLOB をバインドできます。.NET Data Provider for Oracle では、byte[] や OracleBinary など、BLOB 以外の値をバインドしようとした場合に、自動的にこれを構築することはありません。 |
CHAR |
AnsiStringFixedLength |
Char |
|
CLOB |
|
Clob |
Oracle では、CLOB パラメータとしてのみ CLOB をバインドできます。.NET Data Provider for Oracle では、System.String や OracleString など、CLOB 以外の値をバインドしようとした場合に、自動的にこれを構築することはありません。 |
DATE |
DateTime |
DateTime |
|
FLOAT |
Single、Double、Decimal |
Float、Double、Number |
Size により System.Data.DBType および OracleType が決定されます。 |
INTEGER |
SByte、Int16、Int32、Int64、Decimal |
SByte、Int16、Int32、Number |
Size により System.Data.DBType および OracleType が決定されます。 |
INTERVAL YEAR TO MONTH |
Int32 |
IntervalYearToMonth |
OracleType は、Oracle 9i クライアントとサーバー ソフトウェアの両方を使用している場合のみ使用できます。 |
INTERVAL DAY TO SECOND |
Object |
IntervalDayToSecond |
OracleType は、Oracle 9i クライアントとサーバー ソフトウェアの両方を使用している場合のみ使用できます。 |
LONG |
AnsiString |
LongVarChar |
|
LONG RAW |
Binary |
LongRaw |
|
NCHAR |
StringFixedLength |
NChar |
|
NCLOB |
|
NClob |
Oracle では、NCLOB パラメータとしてのみ NCLOB をバインドできます。.NET Data Provider for Oracle では、System.String や OracleString など、NCLOB 以外の値をバインドしようとした場合に、自動的にこれを構築することはありません。 |
NUMBER |
VarNumeric |
Number |
|
NVARCHAR2 |
String |
NVarChar |
|
RAW |
Binary |
Raw |
|
REF CURSOR |
|
Cursor |
詳細については、「Oracle REF CURSOR」を参照してください。 |
ROWID |
AnsiString |
Rowid |
|
TIMESTAMP |
DateTime |
Timestamp |
OracleType は、Oracle 9i クライアントとサーバー ソフトウェアの両方を使用している場合のみ使用できます。 |
TIMESTAMP WITH LOCAL TIME ZONE |
DateTime |
TimestampLocal |
OracleType は、Oracle 9i クライアントとサーバー ソフトウェアの両方を使用している場合のみ使用できます。 |
TIMESTAMP WITH TIME ZONE |
DateTime |
TimestampWithTz |
OracleType は、Oracle 9i クライアントとサーバー ソフトウェアの両方を使用している場合のみ使用できます。 |
UNSIGNED INTEGER |
Byte、UInt16、UInt32、UInt64、Decimal |
Byte、UInt16、Uint32、Number |
Size により System.Data.DBType および OracleType が決定されます。 |
VARCHAR2 |
AnsiString |
VarChar |
|
OracleParameter オブジェクトの Value プロパティで使用される InputOutput 値、Output 値、および ReturnValueParameterDirection 値は、入力値が Oracle データ型 (OracleNumber や OracleString など) でない限り、.NET Framework データ型となります。これは REF CURSOR、BFILE、または LOB データ型には適用されません。