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

 

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.Varchar2200);

下面结合.NET开发需要,对数据类型比较整合下:

备注:

1.NET类型:OracleDataReader.GetValue返回的.NET Framework数据类型;

2OracleType类型:OracleDataReader.GetOracleValue返回的OracleClient数据类型。

3DbType:要绑定为参数的System.Data.DbType枚举

4OracleType:要绑定为参数的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

SingleDoubleDecimal

FloatDoubleNumber

7

INTEGER

Decimal

OracleNumber

SByteInt16Int32Int64Decimal

SByteInt16Int32Number

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

(2) Oracle 只允许将 BLOB 绑定为BLOB 参数。如果您尝试绑定非 BLOB 值,例如 byte[] 或 OracleBinaryOracle .NET 数据提供程序不会自动为您构造一个参数。

4Oracle只允许将 CLOB 绑定为 CLOB 参数。如果您尝试绑定非 CLOB 值,例如System.String 或 OracleStringOracle .NET 数据提供程序不会自动为您构造一个参数。

67Size确定System.Data.DBType 和OracleType

8918OracleType 仅在同时使用 Oracle 9i 客户端和服务器软件时才适用

13Oracle 只允许将 NCLOB 绑定为 NCLOB 参数。如果您尝试绑定非 NCLOB 值,例如 System.String 或 OracleString,Oracle .NET 数据提供程序不会自动为您构造一个参数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值