Oracle データ型のマッピング

次の表に、Oracle データ型およびその OracleDataReader へのマップを示します。

Oracle データ型 OracleDataReader.GetValue によって返される .NET Framework データ型 OracleDataReader.GetOracleValue によって返される OracleClient データ型 Remarks
BFILE Byte[] OracleBFile
BLOB Byte[] OracleLob
CHAR String OracleString
CLOB String OracleLob
DATE DateTime OracleDateTime
FLOAT Decimal OracleNumber このデータ型は NUMBER データ型のエイリアスであり、OracleDataReader が浮動小数点数値ではなく System.Decimal または OracleNumber を返すことを目的として設計されています。 .NET Framework データ型を使用することで、オーバーフローが発生する場合があります。
INTEGER Decimal OracleNumber このデータ型は NUMBER(38) データ型のエイリアスであり、OracleDataReader が整数値ではなく System.Decimal または OracleNumber を返すことを目的として設計されています。 .NET Framework データ型を使用することで、オーバーフローが発生する場合があります。
INTERVAL YEAR TO MONTH Int32 OracleMonthSpan
INTERVAL DAY TO SECOND TimeSpan OracleTimeSpan
LONG String OracleString
LONG RAW Byte[] OracleBinary
NCHAR String OracleString
NCLOB String OracleLob
NUMBER Decimal OracleNumber .NET Framework データ型を使用することで、オーバーフローが発生する場合があります。
NVARCHAR2 String OracleString
RAW Byte[] OracleBinary
REF CURSOR Oracle の REF CURSOR データ型は、OracleDataReader オブジェクトではサポートされていません。
ROWID String OracleString
TIMESTAMP DateTime OracleDateTime
TIMESTAMP WITH LOCAL TIME ZONE DateTime OracleDateTime
TIMESTAMP WITH TIME ZONE DateTime OracleDateTime
UNSIGNED INTEGER 数値 OracleNumber このデータ型は NUMBER(38) データ型のエイリアスであり、OracleDataReader が符号なし整数値ではなく System.Decimal または OracleNumber を返すことを目的として設計されています。 .NET Framework データ型を使用することで、オーバーフローが発生する場合があります。
VARCHAR2 String OracleString

次の表に、パラメーターとしてバインドする場合に使用する Oracle のデータ型および .NET Framework のデータ型 (System.Data.DbType および OracleType) を示します。

Oracle データ型 パラメーターとしてバインドする DbType 列挙型 パラメーターとしてバインドする OracleType 列挙型 Remarks
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.StringOracleString など、CLOB 以外の値をバインドしようとした場合に、自動的に構築されることはありません。
DATE DateTime DateTime
FLOAT Single、Double、Decimal Float、Double、Number Size により、System.Data.DBTypeOracleType が決定されます。
INTEGER SByte、Int16、Int32、Int64、Decimal SByte、Int16、Int32、Number Size により、System.Data.DBTypeOracleType が決定されます。
INTERVAL YEAR TO MONTH Int32 IntervalYearToMonth OracleType は、Oracle 9i クライアントとサーバー ソフトウェアの両方を使用している場合のみ使用できます。
INTERVAL DAY TO SECOND オブジェクト 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.StringOracleString など、NCLOB 以外の値をバインドしようとした場合に、自動的に構築されることはありません。
NUMBER VarNumeric 数値
NVARCHAR2 String NVarChar
RAW Binary Raw
REF CURSOR カーソル 詳しくは、「Oracle REF CURSOR」をご覧ください。
ROWID AnsiString Rowid
TIMESTAMP DateTime タイムスタンプ 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.DBTypeOracleType が決定されます。
VARCHAR2 AnsiString VarChar

OracleParameter オブジェクトの Value プロパティで使用される InputOutput 値、Output 値、ReturnValueParameterDirection 値は、入力値が Oracle データ型 (OracleNumberOracleString など) でない限り、.NET Framework データ型となります。 これは REF CURSORBFILE、または LOB データ型には適用されません。

関連項目