Oracle与.NET数据类型映射

2018-01-29 12:41:12来源:网络收集作者:咖啡不加糖人点击

分享

下表列出 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.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 CURSOROracleDataReader 对象不支持 Oracle REF CURSOR 数据类型。
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 枚举
备注
BFILE
BFile
Oracle 只允许将 BFILE 绑定为 BFILE 参数。 如果您尝试绑定一个非 BFILE 值(如 byte[] 或 OracleBinary),适用于 Oracle 的 .NET 数据提供程序并不会自动为您构造这样的值。
BLOB
Blob
Oracle 只允许将 BLOB 绑定为 BLOB 参数。 如果您尝试绑定一个非 BLOB 值(如 byte[] 或 OracleBinary),适用于 Oracle 的 .NET 数据提供程序并不会自动为您构造这样的值。
CHAR
AnsiStringFixedLength
Char
CLOB
Clob
Oracle 只允许将 CLOB 绑定为 CLOB 参数。 如果您尝试绑定一个非 CLOB 值(如 System.String 或 OracleString),适用于 Oracle 的 .NET 数据提供程序并不会自动为您构造这样的值。
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
二进制
LongRaw
NCHAR
StringFixedLength
NChar
NCLOB
NClob
Oracle 只允许将 NCLOB 绑定为 NCLOB 参数。 如果您尝试绑定一个非 NCLOB 值(如System.String 或 OracleString),适用于 Oracle 的 NET 数据提供程序并不会自动为您构造这样的值。
NUMBER
VarNumeric
数字
NVARCHAR2
String
NVarChar
RAW
二进制
Raw
REF CURSOR
Cursor
有关详细信息,请参阅Oracle REF CURSOR。
ROWID
AnsiString
Rowid
TIMESTAMP
DateTime
时间戳
只有在同时使用 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

由 OracleParameter 对象的 Value 属性使用的 InputOutput、Output 和 ReturnValue ParameterDirection 值为 .NET Framework 数据类型,除非输入值是 Oracle 数据类型(例如 OracleNumber 或 OracleString)。 这并不适用于 REF CURSOR、BFILE 或 LOB 数据类型。


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台