【问题标题】:Number(5) in Oracle what is it meaning in C#Oracle中的数字(5)在C#中是什么意思
【发布时间】:2017-04-07 08:13:37
【问题描述】:

我创建了我的表格,我的列区域之一是 Number(5),

 PROJECT_CODE  NUMBER(5)  NOT NULL ,

当我在 c# 中将它集成到我的模型中时,它看起来像;

  public global::System.Int16 PROJECT_CODE

我的问题是为什么它会进入 Int16,因为 int16 表示短,最大值是 "32767",如果我的值是 32768,oracle 可以,但是 c# 呢?

【问题讨论】:

  • 那为什么不改成NUMBER(6)或者根本不指定长度呢?
  • Oracle Number(5)BCD-99999..99999 范围和净 整数值 之间没有直接对应关系:Int16 有 @ 987654327@ 或 Int32-2147483648..2147483647。一些妥协是不可避免的。
  • 这将自动映射到类型,由可以容纳该值的数据提供者完成,对于 32768,它将开始映射到 Int32,因为 Int16 不能再容纳该值
  • @Jenny 不是这样,以防它可以灵活决定Type,否则如果你尝试用Short(Int16)填充32768,会导致错误
  • @Jenny 理想情况下,您应该使用符合您要求的类型,代码生成在那里可能做得不好

标签: c# oracle int short


【解决方案1】:

因为 odpnet 有一个说明这种事实状态的规范。

oracle datatype mapping for .net

在代码执行中,如果您手动设置的值范围不正确,您可能会遇到问题。我建议使用相同的应用程序来设置值,以保证过程。

【讨论】:

    猜你喜欢
    • 2013-03-09
    • 2021-02-06
    • 2011-07-07
    • 2016-04-19
    • 2015-04-11
    • 2012-04-25
    • 2011-08-25
    • 2016-04-03
    • 2011-11-26
    相关资源
    最近更新 更多