Share via


Oracle 資料型別對應

下表列出 Oracle 資料型別及其與 OracleDataReader 的對應。

Oracle 資料型別

OracleDataReader.GetValue 傳回的 .NET Framework 資料型別

OracleDataReader.GetOracleValue 傳回的 OracleClient 資料型別

備註

BFILE

Byte[]

OracleBFile

 

BLOB

Byte[]

OracleLob

 

CHAR

String

OracleString

 

CLOB

String

OracleLob

 

DATE

DateTime

OracleDateTime

 

FLOAT

Decimal

OracleNumber

此資料型別是 NUMBER 資料型別的別名,並且已設計為能夠讓 OracleDataReader 傳回 System.DecimalOracleNumber,而非浮點值。 使用 .NET Framework 資料型別會造成溢位。

INTEGER

Decimal

OracleNumber

此資料型別是 NUMBER(38) 資料型別的別名,並且已設計為能夠讓 OracleDataReader 傳回 System.DecimalOracleNumber,而非整數值。 使用 .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

Number

OracleNumber

此資料型別是 NUMBER(38) 資料型別的別名,並且已設計為能夠讓 OracleDataReader 傳回 System.DecimalOracleNumber,而非不帶正負號的整數 (Unsigned Integer) 值。 使用 .NET Framework 資料型別會造成溢位。

VARCHAR2

String

OracleString

 

下表列出當做參數進行繫結時,要使用的 Oracle 資料型別及 .NET Framework 資料型別 (System.Data.DbTypeOracleType)。

Oracle 資料型別

要以參數來繫結的 DbType 列舉型別

要以參數來繫結的 OracleType 列舉型別

備註

BFILE

 

BFile

Oracle 僅允許以 BFILE 參數來繫結 BFILE。 如果您嘗試繫結非 BFILE 值 (例如 byte[]OracleBinary),.NET Data Provider for Oracle 將不會自動為您建構。

BLOB

 

Blob

Oracle 僅允許以 BLOB 參數來繫結 BLOB。 如果您嘗試繫結非 BLOB 值 (例如 byte[]OracleBinary),.NET Data Provider for Oracle 將不會自動為您建構。

CHAR

AnsiStringFixedLength

Char

 

CLOB

 

Clob

Oracle 僅允許以 CLOB 參數來繫結 CLOB。 如果您嘗試繫結非 CLOB 值 (例如 System.StringOracleString),.NET Data Provider for Oracle 將不會自動為您建構。

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

只有當您同時使用 Oracle 9i 用戶端及伺服器軟體時,才可以使用 OracleType

INTERVAL DAY TO SECOND

Object

IntervalDayToSecond

只有當您同時使用 Oracle 9i 用戶端及伺服器軟體時,才可以使用 OracleType

LONG

AnsiString

LongVarChar

 

LONG RAW

Binary

LongRaw

 

NCHAR

StringFixedLength

NChar

 

NCLOB

 

NClob

Oracle 僅允許以 NCLOB 參數來繫結 NCLOB。 如果您嘗試繫結非 NCLOB 值 (例如 System.StringOracleString),.NET Data Provider for Oracle 將不會自動為您建構。

NUMBER

VarNumeric

Number

 

NVARCHAR2

String

NVarChar

 

RAW

Binary

Raw

 

REF CURSOR

 

Cursor

如需詳細資訊,請參閱Oracle REF CURSOR

ROWID

AnsiString

Rowid

 

TIMESTAMP

DateTime

Timestamp

只有當您同時使用 Oracle 9i 用戶端及伺服器軟體時,才可以使用 OracleType

TIMESTAMP WITH LOCAL TIME ZONE

DateTime

TimestampLocal

只有當您同時使用 Oracle 9i 用戶端及伺服器軟體時,才可以使用 OracleType

TIMESTAMP WITH TIME ZONE

DateTime

TimestampWithTz

只有當您同時使用 Oracle 9i 用戶端及伺服器軟體時,才可以使用 OracleType

UNSIGNED INTEGER

Byte、UInt16、UInt32、UInt64、Decimal

Byte、UInt16、Uint32、Number

Size 可決定 System.Data.DBTypeOracleType

VARCHAR2

AnsiString

VarChar

 

除非輸入值是 Oracle 資料型別 (例如,OracleNumberOracleString),否則 OracleParameter 物件之 Value 屬性所使用的 InputOutputOutputReturnValue ParameterDirection 值就是 .NET Framework 資料型別。 這並不適用於 REF CURSORBFILELOB 資料型別。

請參閱

其他資源

Oracle 和 ADO.NET