Oracle与.NET数据类型映射

下表列出 Oracle 数据类型及其与 OracleDataReader 的映射。

Oracle 数据类型由 OracleDataReader.GetValue 返回的 .NET Framework 数据类型由 OracleDataReader.GetOracleValue 返回的 OracleClient 数据类型备注
BFILEByte[]OracleBFile
BLOBByte[]OracleLob
CHARStringOracleString
CLOBStringOracleLob
DATEDateTimeOracleDateTime
FLOATDecimalOracleNumber此数据类型是 NUMBER 数据类型的别名,其设计目的是使 OracleDataReader 返回 System.Decimal 或 OracleNumber,而不是浮点值。 使用该 .NET Framework 数据类型可能导致溢出。
INTEGERDecimalOracleNumber此数据类型是 NUMBER(38) 数据类型的别名,其设计目的是使 OracleDataReader 返回 System.Decimal 或 OracleNumber,而不是整数值。 使用该 .NET Framework 数据类型可能导致溢出。
INTERVAL YEAR TO MONTHInt32OracleMonthSpan
INTERVAL DAY TO SECONDTimeSpanOracleTimeSpan
LONGStringOracleString
LONG RAWByte[]OracleBinary
NCHARStringOracleString
NCLOBStringOracleLob
NUMBERDecimalOracleNumber使用该 .NET Framework 数据类型可能导致溢出。
NVARCHAR2StringOracleString
RAWByte[]OracleBinary
REF CURSOROracleDataReader 对象不支持 Oracle REF CURSOR 数据类型。
ROWIDStringOracleString
TIMESTAMPDateTimeOracleDateTime
TIMESTAMP WITH LOCAL TIME ZONEDateTimeOracleDateTime
TIMESTAMP WITH TIME ZONEDateTimeOracleDateTime
UNSIGNED INTEGER数字OracleNumber此数据类型是 NUMBER(38) 数据类型的别名,其设计目的是使 OracleDataReader 返回 System.Decimal 或 OracleNumber,而不是无符号整数值。 使用该 .NET Framework 数据类型可能导致溢出。
VARCHAR2StringOracleString

下表列出了在将数据类型作为参数绑定时使用的 Oracle 数据类型和 .NET Framework 数据类型(System.Data.DbTypeOracleType)。

Oracle 数据类型要绑定为参数的 DbType 枚举要绑定为参数的 OracleType 枚举备注
BFILEBFileOracle 只允许将 BFILE 绑定为 BFILE 参数。 如果您尝试绑定一个非 BFILE 值(如 byte[] 或 OracleBinary),适用于 Oracle 的 .NET 数据提供程序并不会自动为您构造这样的值。
BLOBBlobOracle 只允许将 BLOB 绑定为 BLOB 参数。 如果您尝试绑定一个非 BLOB 值(如 byte[] 或 OracleBinary),适用于 Oracle 的 .NET 数据提供程序并不会自动为您构造这样的值。
CHARAnsiStringFixedLengthChar
CLOBClobOracle 只允许将 CLOB 绑定为 CLOB 参数。 如果您尝试绑定一个非 CLOB 值(如 System.String 或 OracleString),适用于 Oracle 的 .NET 数据提供程序并不会自动为您构造这样的值。
DATEDateTimeDateTime
FLOATSingle、Double、DecimalFloat、Double、NumberSize 确定 System.Data.DBType 和 OracleType。
INTEGERSByte、Int16、Int32、Int64、DecimalSByte、Int16、Int32、NumberSize 确定 System.Data.DBType 和 OracleType。
INTERVAL YEAR TO MONTHInt32IntervalYearToMonth只有在同时使用 Oracle 9i 客户端和服务器软件时,OracleType 才可用。
INTERVAL DAY TO SECONDObjectIntervalDayToSecond只有在同时使用 Oracle 9i 客户端和服务器软件时,OracleType 才可用。
LONGAnsiStringLongVarChar
LONG RAW二进制LongRaw
NCHARStringFixedLengthNChar
NCLOBNClobOracle 只允许将 NCLOB 绑定为 NCLOB 参数。 如果您尝试绑定一个非 NCLOB 值(如System.String 或 OracleString),适用于 Oracle 的 NET 数据提供程序并不会自动为您构造这样的值。
NUMBERVarNumeric数字
NVARCHAR2StringNVarChar
RAW二进制Raw
REF CURSORCursor有关详细信息,请参阅Oracle REF CURSOR。
ROWIDAnsiStringRowid
TIMESTAMPDateTime时间戳只有在同时使用 Oracle 9i 客户端和服务器软件时,OracleType 才可用。
TIMESTAMP WITH LOCAL TIME ZONEDateTimeTimestampLocal只有在同时使用 Oracle 9i 客户端和服务器软件时,OracleType 才可用。
TIMESTAMP WITH TIME ZONEDateTimeTimestampWithTz只有在同时使用 Oracle 9i 客户端和服务器软件时,OracleType 才可用。
UNSIGNED INTEGERByte、UInt16、UInt32、UInt64、DecimalByte、UInt16、Uint32、NumberSize 确定 System.Data.DBType 和 OracleType。
VARCHAR2AnsiStringVarChar

OracleParameter 对象的 Value 属性使用的 InputOutputOutputReturnValue ParameterDirection 值为 .NET Framework 数据类型,除非输入值是 Oracle 数据类型(例如 OracleNumberOracleString)。 这并不适用于 REF CURSORBFILELOB 数据类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值