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

    转自trf123trf原文Oracle数据类型与.NET中的对应关系,有修改

     

    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的数据类型的更多信息,请参考本人博客,Oracle的数据类型

     

  • 相关阅读:
    Windows 10 Universal App 开发记录
    Windows Phone 8.1 开发会用到的方法
    Android Activity设置全屏
    Android视频录制命令screenrecord
    Android ScrollView中嵌套ListView只显示一行的解决办法
    Android 4.4.4: java.lang.SecurityException: Package com.android.settings does not belong to 1001
    自定义Android spinner样式并添加监听事件
    GSON快速实现内部类
    android的Banner轮播图框架
    Okhttp与Okhttputils的用法及区别
  • 原文地址:https://www.cnblogs.com/arxive/p/10396299.html
Copyright © 2011-2022 走看看