Oracle中的数字(5)在C#中是啥意思
Posted
技术标签:
【中文标题】Oracle中的数字(5)在C#中是啥意思【英文标题】: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 理想情况下,您应该使用符合您要求的类型,代码生成在那里可能做得不好
【参考方案1】:
因为 odpnet 有一个说明这种事实状态的规范。
oracle datatype mapping for .net
在代码执行中,如果您手动设置的值范围不正确,您可能会遇到问题。我建议使用相同的应用程序来设置值,以保证过程。
【讨论】:
以上是关于Oracle中的数字(5)在C#中是啥意思的主要内容,如果未能解决你的问题,请参考以下文章