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

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

2012-04-18 22:50 489 查看
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.OracleParameterpara=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 数据提供程序不会自动为您构造一个参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: