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,而非不帶正負號的整數 (Unsigned Integer) 值。使用 .NET Framework 資料型別會造成溢位。 |
|
VARCHAR2 |
String |
|
下表列出當做參數進行繫結時,要使用的 Oracle 資料型別及 .NET Framework 資料型別 (System.Data.DbType 及 OracleType)。
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.String 或 OracleString),.NET Data Provider for Oracle 將不會自動為您建構。 |
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 |
只有當您同時使用 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.String 或 OracleString),.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.DBType 和 OracleType。 |
VARCHAR2 |
AnsiString |
VarChar |
|
除非輸入值是 Oracle 資料型別 (例如,OracleNumber 或 OracleString),否則 OracleParameter 物件之 Value 屬性所使用的 InputOutput、Output 和 ReturnValueParameterDirection 值就是 .NET Framework 資料型別。這並不適用於 REF CURSOR、BFILE 或 LOB 資料型別。