Oracle数据类型与.NET中的对应关系(转)

Oracle数据类型与.NET中的对应关系 2011-02-24 10:02:16

标签:C# oracletype Oracle 数据类型 .NET

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枚举


序号


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

(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 数据提供程序不会自动为您构造一个参数。

时间: 2024-11-06 15:11:28

Oracle数据类型与.NET中的对应关系(转)的相关文章

java实体属性对应mysql和SQL Server 和Oracle 数据类型对应

1:Java数据类型与MySql数据类型对照表 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) VARCHAR L+N VARCHAR java.lang.String 12 CHAR N CHAR java.lang.String 1 BLOB L+N BLOB java.lang.byte[] -4 TEXT 65535 VARCHAR java.lang.String -1 INTEGER 4 INTEGER UNSIGNED java.lang.Long 4 T

Oracle 数据类型 与C#映射关系

大部分类型的对应关系:原文:http://2143892.blog.51cto.com/2133892/499353 序号 Oracle数据类型 .NET类型 GetOracleValue类型 DbType OracleType 1 BFILE byte[] OracleBFile BFile 2 BLOB byte[] OracleLob Blob 3 CHAR string OracleString AnsiStringFixedLength Char 4 CLOB string Oracl

oracle(数据类型)

1 oracle数据类型 2 字符类型 3 char[(size[byte|char])]:最大2000字节,默认1字节 4 varchar2(size[byte|char]):最大4000字节 5 nchar[(size)]:多字节编码(unicode)最大为2000字节 6 nvarchar2(size):最大为4000字节. 7 long:变长 最大长度为2 gb 8 数值类型 9 number[(p[,s])]:10(-130)-10(126)占用1-22个字节的存储空间. 10 p表示

Oracle数据类型,DDL、DML、DCL、TCL语言,SQL操作符,SQL函数

SQL查询与SQL函数 本章目标 了解Oracle数据类型  了解数据定义语言和数据操纵语言  了解事务控制语言和数据控制语言  掌握SQL操作符和SQL函数  SQL(structured query language)--结构化查询语言   通过SQL可以实现与Oracle服务器的通信   SQL是数据库语言,Oracle使用该语言存储和检索信息       表是主要的数据库对象,用于存储数据 用户  --------------------发送SQL语句查询----------------

在oracle的连接(join)中使用using关键字

如果是使用natraul join,并且两张表中如果有多个字段是具有相同的名称和数据类型的,那么这些字段都将被oracle自作主张的将他们连接起来. 但实际上我们有时候是不需要这样来连接的.我们只需要将他们的多个具有相同的名称和数据类型的字段中挑选一两个.这时候我们就需要用到using 关键字了. 下面是一个例子. 在oracle的例子sh的schema中的有一个表是sales,还有一个表是costs,这两个表中都有两个字段分别是pro_id和time_id.我们暂且不去考虑下面连接的实际意义,

Oracle EBS Web ADI 中的术语

(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 异步调用异步调用是这样子的,和引入接口表中的数据到Oracle应用中的进程不同,上传数据到接口表是一个单独的进程(例如,它们不是在同一时间发生的).当上传开始时,引入程序会被调用并且request ID会返回给用户.Oracle Applications会继续在后台运行引入程序,用户需要手工检查引入程序是不是在正确处理.那意味着提交上传和引入程序完成是不同步的,因此使用了异步术语. 客户端一

Oracle 11G R2 RAC中的scan ip 的用途和基本原理【转】

Oracle 11G R2 RAC增加了scan ip功能,在11.2之前,client链接数据库的时候要用vip,假如你的cluster有4个节点,那么客户端的tnsnames.ora中就对应有四个主机vip的一个连接串,如果cluster增加了一个节点,那么对于每个连接数据库的客户端都需要修改这个tnsnames.ora. 引入了scan以后,就方便了客户端连接的一个接口,顾名思义 single client access name ,简单客户端连接名,这是一个唯一的名称,在整个公司网络内部

Oracle数据类型和内置函数

Oracle数据类型 数字型:number. float 日期型:DATE.TIMESTAMP 字符串: TIMESTAMP 年:同SYSDATE里的年 月:同SYSDATE里的月 日:1号 时分秒:均为0 to_date date –to_date中的分隔符可以更换,date中的分隔符必须是- –date只可以表示日期,不可以表示时间 TIMESTAMP 记录了年.月.日.时.分.秒和纳秒 –默认值: 年:同SYSDATE里的年 月:同SYSDATE里的月 日:1号 时分秒和纳秒:均为0 表示

Java和C#与SQL Server、MySQL和Oracle数据类型对照映射表

SQL Server.JDBC 和 Java 编程语言数据类型之间的默认映射 SQL Server 类型 JDBC 类型 (java.sql.Types) Java 语言类型 bigint BIGINT long timestamp binary BINARY byte[] bit BIT boolean char CHAR String decimal money smallmoney DECIMAL java.math.BigDecimal float DOUBLE double int I