114网址导航&&&&&&&&&&&
Oracle连接添加的引用不同,会存在数据类型不同以及其他一些差别,就工作中遇到的问题暂时总结下。
两种不同的添加引用语句:
(1)System.Data.OracleC
(2)Oracle.DataAccess.C
Oracle.DataAccess.T
采用第二种引用,创建的OracleCommand实例有ArrayBindCount属性,可用于传入数组型参数,执行多次储存过程函数。
对于不同引用创建OracleParameter实例,类型也存在着差异:
第一种引用:System.Data.OracleClient.OracleParameter ¶=new System.Data.OracleClient.OracleParameter("APPLICATIONNAME_",OracleType.NVarChar,200);
第二种引用:Oracle.DataAccess.Client.OracleParameter para=new Oracle.DataAccess.Client.OracleParameter("APPLICATIONNAME_",OracleDbType.Varchar2,200);
下面结合.NET开发需要,对数据类型比较整合下:
(1).NET类型:OracleDataReader.GetValue返回的.NET Framework数据类型;
(2)OracleType类型:OracleDataReader.GetOracleValue返回的OracleClient数据类型。
(3)DbType:要绑定为参数的System.Data.DbType枚举
(4)OracleType:要绑定为参数的OracleType枚举
Oracle数据类型
GetOracleValue类型
OracleType
OracleBFile
OracleString
AnsiStringFixedLength
OracleDateTime
OracleNumber
Single、Double、Decimal
Float、Double、Number
OracleNumber
SByte、Int16、Int32、Int64、Decimal
SByte、Int16、Int32、Number
INTERVAL YEAR TO &MONTH
OracleMonthSpan
IntervalYearToMonth
INTERVAL DAY TO &SECOND
OracleTimeSpan
IntervalDayToSecond
OracleString
AnsiString
LongVarChar
OracleBinary
OracleString
StringFixedLength
OracleNumber
VarNumeric
OracleString
OracleBinary
OracleString
AnsiString
OracleDateTime
OracleString
AnsiString
(1) Oracle 只允许将 BFILE 绑定为 BFILE 参数。如果您尝试绑定非 BFILE 值,例如 byte[] 或 ,Oracle .NET 数据提供程序不会自动为您构造一个参数。
(2) Oracle 只允许将 BLOB 绑定为 BLOB 参数。如果您尝试绑定非 BLOB 值,例如 byte[] 或 OracleBinary,Oracle .NET 数据提供程序不会自动为您构造一个参数。
(4)Oracle 只允许将 CLOB 绑定为 CLOB 参数。如果您尝试绑定非 CLOB 值,例如 System.String 或 OracleString,Oracle .NET 数据提供程序不会自动为您构造一个参数。
(6、7) 确定System.Data.DBType 和OracleType。
(8、9、18) 仅在同时使用 Oracle 9i 客户端和服务器软件时才适用。
(13)Oracle 只允许将 NCLOB 绑定为 NCLOB 参数。如果您尝试绑定非 NCLOB 值,例如 System.String 或 OracleString,Oracle .NET 数据提供程序不会自动为您构造一个参数。
阅读(...) 评论() &