gpt4 book ai didi

C#:Oracle 数据类型与 OracleDbType 等价

转载 作者:IT王子 更新时间:2023-10-29 04:37:07 24 4
gpt4 key购买 nike


情况:

我正在使用 C# 创建一个应用程序,它使用 Oracle.DataAccess.Client (11g) 通过存储过程对 Oracle 数据库执行某些操作。我知道有一个包含 Oracle 数据类型的特定枚举 (OracleDbType),但我不确定对某些类型使用哪个枚举。

问题:

  • 什么是等效的Oracle PL/SQL 数据type 中的每个枚举类型OracleDbType 枚举?

  • 整数分为三种类型
    OracleDbType 中的 (Int16, Int32, Int64) ...怎么知道用哪个还是都用
    想工作吗?


最佳答案

这是将 C# 类型转换为最常见的 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;
}

此外,对于非常大的字符数据值,您可能需要使用 OracleDbType.Clob

关于C#:Oracle 数据类型与 OracleDbType 等价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1583150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com