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 十進位 OracleNumber 此資料類型是 NUMBER 資料類型的別名,並且已設計為能夠讓 OracleDataReader 傳回 System.DecimalOracleNumber,而非浮點值。 使用 .NET Framework 資料型別會造成溢位。
INTEGER 十進位 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 十進位 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,而非不帶正負號的整數值。 使用 .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 二進位 LongRaw
NCHAR StringFixedLength NChar
NCLOB NClob Oracle 僅允許以 NCLOB 參數來繫結 NCLOB。 如果您嘗試繫結非 NCLOB 值 (例如 System.StringOracleString),.NET Data Provider for Oracle 將不會自動為您建構。
NUMBER VarNumeric Number
NVARCHAR2 String NVarChar
RAW 二進位 Raw
REF 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 屬性所使用的 InputOutputOutputReturnValueParameterDirection 值就是 .NET Framework 資料類型。 這並不適用於 REF CURSORBFILELOB 資料類型。

另請參閱