Oracle数据类型与.NET中的对应关系
2015-08-21 12:39
597 查看
Oracle连接添加的引用不同,会存在数据类型不同以及其他一些差别,就工作中遇到的问题暂时总结下。
两种不同的添加引用语句:
(1)System.Data.OracleClient;
(2)Oracle.DataAccess.Client;
Oracle.DataAccess.Type;
采用第二种引用,创建的OracleCommand实例有ArrayBindCount属性,可用于传入数组型参数,执行多次储存过程函数。
对于不同引用创建OracleParameter实例,类型也存在着差异:
第一种引用:System.Data.OracleClient.OracleParameter para=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枚举
(1) Oracle 只允许将 BFILE 绑定为 BFILE 参数。如果您尝试绑定非 BFILE 值,例如 byte[] 或OracleBinary,Oracle
.NET 数据提供程序不会自动为您构造一个参数。
(2) Oracle 只允许将 BLOB 绑定为 BLOB 参数。如果您尝试绑定非 BLOB 值,例如 byte[] 或 OracleBinary,Oracle .NET 数据提供程序不会自动为您构造一个参数。
(4)Oracle 只允许将 CLOB 绑定为 CLOB 参数。如果您尝试绑定非 CLOB 值,例如 System.String 或 OracleString,Oracle .NET 数据提供程序不会自动为您构造一个参数。
(6、7)Size 确定System.Data.DBType
和OracleType。
(8、9、18)OracleType 仅在同时使用
Oracle 9i 客户端和服务器软件时才适用。
(13)Oracle 只允许将 NCLOB 绑定为 NCLOB 参数。如果您尝试绑定非 NCLOB 值,例如 System.String 或 OracleString,Oracle .NET 数据提供程序不会自动为您构造一个参数。
两种不同的添加引用语句:
(1)System.Data.OracleClient;
(2)Oracle.DataAccess.Client;
Oracle.DataAccess.Type;
采用第二种引用,创建的OracleCommand实例有ArrayBindCount属性,可用于传入数组型参数,执行多次储存过程函数。
对于不同引用创建OracleParameter实例,类型也存在着差异:
第一种引用:System.Data.OracleClient.OracleParameter para=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数据类型 | .NET类型 | GetOracleValue类型 | DbType | OracleType |
1 | BFILE | byte[] | OracleBFile | BFile | |
2 | BLOB | byte[] | OracleLob | Blob | |
3 | CHAR | string | OracleString | AnsiStringFixedLength | Char |
4 | CLOB | string | OracleLob | Clob | |
5 | DATE | DateTime | OracleDateTime | DateTime | DateTime |
6 | FLOAT | Decimal | OracleNumber | Single、Double、Decimal | Float、Double、Number |
7 | INTEGER | Decimal | OracleNumber | SByte、Int16、Int32、Int64、Decimal | SByte、Int16、Int32、Number |
8 | INTERVAL YEAR TO MONTH | Int32 | OracleMonthSpan | Int32 | IntervalYearToMonth |
9 | INTERVAL DAY TO SECOND | TimeSpan | OracleTimeSpan | Object | IntervalDayToSecond |
10 | LONG | string | OracleString | AnsiString | LongVarChar |
11 | LONG RAW | byte[] | OracleBinary | Binary | LongRaw |
12 | NCHAR | string | OracleString | StringFixedLength | NChar |
13 | NCLOB | string | OracleLob | NClob | |
14 | NUMBER | Decimal | OracleNumber | VarNumeric | Number |
15 | NVARCHAR2 | string | OracleString | String | NVarChar |
16 | RAW | byte[] | OracleBinary | Binary | RAW |
17 | ROWID | string | OracleString | AnsiString | Rowid |
18 | TIMESTAMP | DateTime | OracleDateTime | DateTime | Timestamp |
19 | VARCHAR2 | string | OracleString | AnsiString | VarChar |
.NET 数据提供程序不会自动为您构造一个参数。
(2) Oracle 只允许将 BLOB 绑定为 BLOB 参数。如果您尝试绑定非 BLOB 值,例如 byte[] 或 OracleBinary,Oracle .NET 数据提供程序不会自动为您构造一个参数。
(4)Oracle 只允许将 CLOB 绑定为 CLOB 参数。如果您尝试绑定非 CLOB 值,例如 System.String 或 OracleString,Oracle .NET 数据提供程序不会自动为您构造一个参数。
(6、7)Size 确定System.Data.DBType
和OracleType。
(8、9、18)OracleType 仅在同时使用
Oracle 9i 客户端和服务器软件时才适用。
(13)Oracle 只允许将 NCLOB 绑定为 NCLOB 参数。如果您尝试绑定非 NCLOB 值,例如 System.String 或 OracleString,Oracle .NET 数据提供程序不会自动为您构造一个参数。
相关文章推荐
- Oracle 六闪回技术,flashback
- Oracle 利用管道函数(pipelined)实现高性能大数据处理
- Linux(CentOS) Wget安装配置用户Oracle JDK
- Oracle 自定义数据类型Type
- "ORA-00942: 表或视图不存在 "的原因和解决方法
- 在Oracle中更新数据时,抛出:ORA-01008: not all variables bound
- JAVA读取Oracle数据库BLOB字段数据文件并保存到本地文件
- Oracle数据库的启动和关闭
- SQL-Oracle异常--java.sql.SQLDataException: ORA-01861: 文字与格式字符串不匹配
- 从字符串中删除不需要的字符
- 计算字符在字符串中出现的次数
- Oracle中exp的使用2
- 在oracle中跟踪会话执行语句的几种方法
- oracle中字符中有数字的判断
- 排错记录:plsql无法连接oracle ora-12154 ora-12560
- oracle字符集结构
- oracle 解锁scott账户
- 修改Oracle数据库的字符集为UTF-8
- Oracle 学习之SQL(一) Retrieving Data Using the SQL SELECT statement
- Oracle数据库时间戳转date类型进行判断操作