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

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

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

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

    Oracle连接添加的引用不同,会存在数据类型不同以及其他一些差别,就工作中遇到的问题暂时总结下. 两种不同的添加引用语句: (1)System.Data.OracleClient; (2)Oracl ...

  2. SQL Server和Oracle数据类型对应关系

    在工作中,有时会遇到跨库传输数据的情况,其中 SQL Server 和 Oracle 之间的数据传输是比较常见的情况. 因为 SQL Server 和 Oracle 的数据类型有些差异,这就要求我们在 ...

  3. 【2016-11-3】【坚持学习】【Day18】【Oracle 数据类型 与C#映射关系】

    大部分类型的对应关系:原文:http://2143892.blog.51cto.com/2133892/499353 序号 Oracle数据类型 .NET类型 GetOracleValue类型 DbT ...

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

    1:Java数据类型与MySql数据类型对照表 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) VARCHAR L+N VARCHAR java.lang.String 12 ...

  5. mysql 和 Oracle 数据类型对照

    MySQL与Oracle两种数据库在工作中,都是用的比较多的数据库,由于MySQL与Oracle在数据类型上有部分差异,在我们迁移数据库时,会遇上一定的麻烦,下面介绍MySQL与Oracle数据库数据 ...

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

    大部分类型的对应关系:原文:http://2143892.blog.51cto.com/2133892/499353 序号 Oracle数据类型 .NET类型 GetOracleValue类型 DbT ...

  7. oracle数据类型

    本文转自:http://blog.csdn.net/defonds/article/details/4302695 谢谢原文作者 有道是,磨刀不误砍柴工.多了解一些底层的东西,对于Oracle开发.维 ...

  8. oracle 数据类型详解---日期型(转载)

    oracle 数据类型详解---日期型 oracle数据类型看起来非常简单,但用起来会发现有许多知识点,本文是我对ORACLE日期数据类型的一些整理,都是开发入门资料,与大家分享: 注:由于INTER ...

  9. Oracle EBS Web ADI 中的术语

    Oracle EBS Web ADI 中的术语 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 异步调用异步调用是这样子的,和引入接口表中的数 ...

随机推荐

  1. 触控(Touch)

    1 使用触控实现一个简易的画板 1.1 问题 触控(Touch)是一个UITouch类型的对象,当用户触摸了屏幕上的视图时自动被创建,通常使用触控实现绘图.涂鸦.手写等功能.本案例使用触控实现一个简易 ...

  2. Xcode no visible @interface for xxx declares the selector errors

  3. -canOpenURL: failed for URL

    这在 Xcode 6.4 + iOS 8 时,是不会有的情况,原因是[为了强制增强数据访问安全, iOS9 默认会把所有从NSURLConnection . CFURL . NSURLSession发 ...

  4. TextView之一:子类的常用属性

    TextView常见的子类包括EditText,Button,CheckBox, RadioButton等. 1.EditText EditText继承自TextView,因此TextView所有属性 ...

  5. 如何使用Assetic进行文件管理

    安装和配置Assetic 从symfony2.8开始,Assetic就不再被包括在symfony标准版.使用任何Assetic的特性之前需要安装AsseticBundel,在命令行执行下面命令: $ ...

  6. 如何成为一个真正在路上的Linuxer

    Linux 是工具,却更像一个信仰. 写在前面: 本文目的不是教你如何成为一个真正的Linuxer,也没有能力教你成为一个真正的linuxer,而是通过笔者的一些想法试图指引你真正踏上学习linux之 ...

  7. Integer和Integer数据的大小比较

    public class Test{ public static void main(String[] args){ Integer i1 = 100; Integer i2 = 100; if(i1 ...

  8. Backward Digit Sums(POJ 3187)

    Backward Digit Sums Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5495   Accepted: 31 ...

  9. 优先队列(和fence repair完全一样)

    懒省事的小明 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述       小明很想吃果子,正好果园果子熟了.在果园里,小明已经将所有的果子打了下来,而且按果子的不同种 ...

  10. 8051_asm.uew

    /L20"8051 Assembly" AASM_LANG Line Comment = ; Nocase String Chars = ' File Extensions = S ...