zoukankan      html  css  js  c++  java
  • Oracle数据类型与.NET中的对应关系(转)

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

  • 相关阅读:
    Git 版本导致 clone 故障
    ELK-Stack 最后一次全篇文档
    Elasticsearch 搜索引擎
    Yum -y update 报错
    Linux OOM 自动杀死进程
    MySQL 执行 'use databases;' 时很慢
    DRBD 数据镜像软件介绍
    ELK 日志管理系统,再次尝试记录
    ELK 日志管理系统,初次尝试记录
    iframe与include的区别
  • 原文地址:https://www.cnblogs.com/yasepix/p/4968235.html
Copyright © 2011-2022 走看看