C#: Oracle Data Type Equivalence with OracleDbType

前端 未结 5 2315
广开言路
广开言路 2020-12-01 05:34

Situation:

I am creating an app in C# that uses Oracle.DataAccess.Client (11g) to do certain operations on a Oracle database with stored procedures. I am awa

5条回答
  •  遥遥无期
    2020-12-01 06:20

    Here's a method to convert C# types to the most common OracleDbTypes

    private static OracleDbType GetOracleDbType(object o) 
    {
      if (o is string) return OracleDbType.Varchar2;
      if (o is DateTime) return OracleDbType.Date;
      if (o is Int64) return OracleDbType.Int64;
      if (o is Int32) return OracleDbType.Int32;
      if (o is Int16) return OracleDbType.Int16;
      if (o is sbyte) return OracleDbType.Byte;
      if (o is byte) return OracleDbType.Int16;    -- <== unverified
      if (o is decimal) return OracleDbType.Decimal;
      if (o is float) return OracleDbType.Single;
      if (o is double) return OracleDbType.Double;
      if (o is byte[]) return OracleDbType.Blob;
    
      return OracleDbType.Varchar2;
    }
    

    Also, for very large character data values, you may want to use OracleDbType.Clob.

提交回复
热议问题