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.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 | オブジェクト | 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 | 数値 | |
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.DBType と OracleType が決定されます。 |
VARCHAR2 | AnsiString | VarChar |
OracleParameter オブジェクトの Value プロパティで使用される InputOutput 値、Output 値、ReturnValue ParameterDirection 値は、入力値が Oracle データ型 (OracleNumber や OracleString など) でない限り、.NET Framework データ型となります。 これは REF CURSOR、BFILE、または LOB データ型には適用されません。