您的位置:首页 > 数据库 > Oracle

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

2011-10-10 18:59 411 查看
转载自:http://blog.sina.com.cn/s/blog_3c6ecea90100nqry.html

Oracle连接添加的引用不同,会存在数据类型不同以及其他一些差别,就工作中遇到的问题暂时总结下。

两种不同的添加引用语句:

(1)System.Data.OracleClient;

(2)Oracle.DataAccess.Client;

Oracle.DataAccess.Type;

采用第二种引用,创建的OracleCommand实例有ArrayBindCount属性,可用于传入数组型参数,执行多次储存过程函数。

对于不同引用创建OracleParameter实例,类型也存在着差异:

第一种引用:System.Data.OracleClient.OracleParameter para=newSystem.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 数据提供程序不会自动为您构造一个参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: