A データ型変換

これらの項には、適切なパラメータ型マッピングを決定するのに使用される次の表が含まれます。

Oracleネイティブ・データ型から.NET Frameworkデータ型へのマッピング

表A-1に、Oracleネイティブ・データ型から.NET Framework型へのサポートされているマッピングを示します。

表A-1 Oracleネイティブ・データ型から.NET Frameworkデータ型へのマッピング

Oracleネイティブ・データ型 .NET Frameworkデータ型

BFILE *

Byte[]

BINARY_DOUBLE

Byte、Byte[]、Decimal、Double、float、int、Int16、Int32、Int64、long、SByte、short、Single、String、uint、Uint16、Uint32、Uint64、ulong、ushort

BINARY_FLOAT

Byte、Byte[]、Decimal、Double、float、int、Int16、Int32、Int64、long、SByte、short、Single、String、uint、Uint16、Uint32、Uint64、ulong、ushort

BINARY_INTEGER

Byte、Byte[]、Char、Decimal、Double、float、int、Int16、Int32、Int64、long、SByte、short、Single、String、uint、Uint16、Uint32、Uint64、ulong、ushort

BLOB

Byte[]

BOOLEAN

サポートされていません

CHAR

Byte、Char、Char[]、DateTime、Decimal、Double、float、int、Int16、Int32、Int64、long、SByte、short、Single、String、uint、Uint16、Uint32、Uint64、ulong、ushort

CLOB

Byte、Char、Char[]、DateTime、Decimal、Double、float、int、Int16、Int32、Int64、long、SByte、short、Single、String、uint、Uint16、Uint32、Uint64、ulong、ushort

DATE

Byte[]、Char[]、String、DateTime

FLOAT

Byte、Byte[]、Decimal、Double、float、int、Int16、Int32、Int64、long、SByte、short、Single、String、uint、Uint16、Uint32、Uint64、ulong、ushort

INTERVAL DAY TO SECOND

Byte[]、Char、Char[]、String、TimeSpan

INTERVAL YEAR TO MONTH

Byte、Byte[]、Char、Char[]、int、Int16、Int32、Int64、long、short、String

LONG

Byte、Char、Char[]、DateTime、Decimal、Double、float、int、Int16、Int32、Int64、long、SByte、short、Single、String、uint、Uint16、Uint32、Uint64、ulong、ushort

LONG RAW

Byte[]

NCHAR

Byte、Char、Char[]、DateTime、Decimal、Double、float、int、Int16、Int32、Int64、long、SByte、short、Single、String、uint、Uint16、Uint32、Uint64、ulong、ushort

NCLOB

Byte、Char、Char[]、DateTime、Decimal、Double、float、int、Int16、Int32、Int64、long、SByte、short、Single、String、uint、Uint16、Uint32、Uint64、ulong、ushort

NUMBER

Byte、Byte[]、Char、DateTime、Decimal、Double、float、int、Int16、Int32、Int64、long、SByte、short、Single、String、uint、Uint16、Uint32、Uint64、ulong、ushort

NVARCHAR2

Byte、Char、Char[]、DateTime、Decimal、Double、float、int、Int16、Int32、Int64、long、SByte、short、Single、String、uint、Uint16、Uint32、Uint64、ulong、ushort

PLS_INTEGER

Byte、Byte[]、Char、Decimal、Double、float、int、Int16、Int32、Int64、long、SByte、short、Single、String、uint、Uint16、Uint32、Uint64、ulong、ushort

RAW

Byte[]

REAL

Byte、Byte[]、Decimal、Double、float、int、Int16、Int32、Int64、long、SByte、short、Single、String、uint、Uint16、Uint32、Uint64、ulong、ushort

ROWID

Char[]、String

TIMESTAMP

Byte[]、Char[]、String、DateTime

TIMESTAMP WITH LOCAL TIME ZONE

Byte[]、Char[]、String、DateTime

TIME WITH TIME ZONE

Byte[]、Char[]、String、DateTime

UROWID

Char[]、String

VARCHAR2

Byte、Char、Char[]、DateTime、Decimal、Double、float、int、Int16、Int32、Int64、long、SByte、short、Single、String、uint、Uint16、Uint32、Uint64、ulong、ushort

XMLType

Char[]、String

.NET Frameworkデータ型からOracleネイティブ・データ型へのマッピング

表A-2に、.NET Frameworkデータ型からOracleネイティブ・データ型へのサポートされているマッピングを示します。

表A-2 .NET Frameworkデータ型からOracleネイティブ・データ型へのマッピング

.NET Frameworkデータ型 Oracleネイティブ・データ型

Byte

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、INTERVAL YEAR TO MONTH、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

Byte[]

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、BLOB、DATE、FLOAT、INTERVAL YEAR TO MONTH、LONG RAW、NUMBER、PLS_INTEGER、RAW、REAL、TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE、TIMESTAMP WITH TIME ZONE

Char

BINARY_INTEGER、CHAR、CLOB、INTERVAL DAY TO SECOND、INTERVAL YEAR TO MONTH、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、VARCHAR2、XMLType

Char[]

CHAR、CLOB、DATE、INTERVAL DAY TO SECOND、INTERVAL YEAR TO MONTH、LONG、NCHAR、NCLOB、NVARCHAR2、ROWID、TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE、TIMESTAMP WITH TIME ZONE、UROWID、VARCHAR2、XMLType

DateTime

CHAR、CLOB、DATE、LONG、NCHAR、NCLOB、NVARCHAR2、TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE、TIMESTAMP WITH TIME ZONE、VARCHAR2

Decimal

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、LONG、NCHAR、NCLOB、NVARCHAR2、NUMBER、PLS_INTEGER、REAL、VARCHAR2

Double

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

float

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

int

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、INTERVAL YEAR TO MONTH、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

Int16

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、INTERVAL YEAR TO MONTH、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

Int32

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、INTERVAL YEAR TO MONTH、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

Int64

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、INTERVAL YEAR TO MONTH、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

long

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、INTERVAL YEAR TO MONTH、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

SByte

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

short

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、INTERVAL YEAR TO MONTH、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

Single

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

String

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、DATE、FLOAT、INTERVAL DAY TO SECOND、INTERVAL YEAR TO MONTH、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、ROWID、STRING、TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE、TIMESTAMP WITH TIME ZONE、UROWID、VARCHAR2、XMLTYPE

TimeSpan

INTERVAL DAY TO SECOND

uint

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

Uint16

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

Uint32

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

Uint64

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

ulong

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

ushort

BINARY_DOUBLE、BINARY_FLOAT、BINARY_INTEGER、CHAR、CLOB、FLOAT、LONG、NCHAR、NCLOB、NUMBER、NVARCHAR2、PLS_INTEGER、REAL、VARCHAR2

Oracleネイティブ・データ型からODP.NETデータ型へのマッピング

表A-3に、Oracleネイティブ・データ型からODP.NET型へのサポートされているマッピングを示します。

表A-3 Oracleネイティブ・データ型のODP.NETデータ型へのマッピング

Oracleネイティブ・データ型 ODP.NET型

BFILE *

OracleBFile

BINARY_DOUBLE

OracleDecimal

OracleString

BINARY_FLOAT

OracleDecimal

OracleString

BINARY_INTEGER

OracleDecimal

OracleString

BLOB

OracleBinary

OracleBlob

BOOLEAN

サポートされていません

CHAR

OracleString

CLOB

OracleClob

OracleString

DATE

OracleDate

OracleString

OracleTimeStamp

OracleTimeStampTZ

OracleTimeStampLTZ

FLOAT

OracleDecimal

OracleString

INTERVAL DAY TO SECOND

OracleString

OracleIntervalDS

INTERVAL YEAR TO MONTH

OracleIntervalYM

OracleString

LONG

OracleString

LONG RAW

OracleBinary

NCHAR

OracleString

NCLOB

OracleClob

OracleString

NUMBER

OracleDecimal

OracleString

NVARCHAR2

OracleString

PLS_INTEGER

OracleDecimal

OracleString

RAW

OracleBinary

REAL

OracleDecimal

OracleString

ROWID

OracleString

TIMESTAMP

OracleDate

OracleString

OracleTimeStamp

OracleTimeStampTZ

OracleTimeStampLTZ

TIMESTAMP WITH LOCAL TIME ZONE

OracleDate

OracleString

OracleTimeStamp

OracleTimeStampTZ

OracleTimeStampLTZ

TIME WITH TIME ZONE

OracleDate

OracleString

OracleTimeStamp

OracleTimeStampTZ

OracleTimeStampLTZ

UROWID

OracleString

VARCHAR2

OracleString

XMLType

OracleClob

OracleString

OracleXmlType

ODP.NETデータ型からOracleネイティブ・データ型へのマッピング

表A-4に、ODP.NET型からOracleネイティブ・データ型へのサポートされているマッピングを示します。

表A-4 ODP.NETデータ型からOracleネイティブ・データ型へのマッピング

ODP.NET型 Oracleネイティブ・データ型

OracleBFile

BFILE *

OracleBinary

BLOB

LONG RAW

RAW

OracleBlob

BLOB

OracleClob

CLOB

NCLOB

XMLType

OracleDate

DATE

TIMESTAMP

TIMESTAMP WITH LOCAL TIME ZONE

TIME WITH TIME ZONE

OracleDecimal

BINARY_DOUBLE

BINARY_INTEGER

BINARY_FLOAT

FLOAT

NUMBER

PLS_INTEGER

REAL

OracleIntervalDS

INTERVAL DAY TO SECOND

OracleIntervalYM

INTERVAL YEAR TO MONTH

OracleString

BINARY_DOUBLE

BINARY_FLOAT

BINARY_INTEGER

CHAR

CLOB

DATE

FLOAT

INTERVAL DAY TO SECOND

INTERVAL YEAR TO MONTH

LONG

NCHAR

NCLOB

NVARCHAR2

NUMBER

PLS_INTEGER

REAL

ROWID

STRING

TIMESTAMP

TIMESTAMP WITH LOCAL TIME ZONE

TIME WITH TIME ZONE

UROWID

VARCHAR2

XMLType

OracleTimeStamp

DATE

TIMESTAMP

TIMESTAMP WITH LOCAL TIME ZONE

TIME WITH TIME ZONE

OracleTimeStampTZ

DATE

TIMESTAMP

TIMESTAMP WITH LOCAL TIME ZONE

TIME WITH TIME ZONE

OracleTimeStampLTZ

DATE

TIMESTAMP

TIMESTAMP WITH LOCAL TIME ZONE

TIME WITH TIME ZONE

OracleXmlType

XMLType

* .NET FrameworkへのBFILEのマッピング

OracleネイティブBFILE型のパラメータは、.NETのByte[]に変換できます。ただし、Byte[]からOracleネイティブのBFILE型への変換はサポートされていません。これは、BFILEから.NET Byte[]に変換できるのは、データベース側のBFILEパラメータ型がINパラメータで、.NETストアド・プロシージャの対応するパラメータがByte[]型のINパラメータである場合のみであることを意味します。BFILE INOUT、またはOUTパラメータまたはRETURN VALUEの場合、対応する.NETストアド・プロシージャのパラメータはOracle.DataAccess.Types.OracleBFile型である必要があります。それ以外の場合は、例外がスローされます。

PL/SQL連想配列

PL/SQL連想配列はサポートされていません。