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#中是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

&在Java中是啥意思?

C语言中的序列点是啥意思

FLAG1在编程中是啥意思

在oracle中number类型的字段长度是啥意思

C语言中的“class”是啥意思啊?讲下其作用及用法。麻烦了

buffer 在c语言中是啥?