Oracle的Numer类型与C,C#数据类型对应关系

最近一直在编和Oracle数据库相关程序。
Oracle的Number类型和C语言,C#语言类型的对应关系,在网络上查找很久,也没有找到说明文字。
但在http://oracle.chinaitlab.com/induction/734741.html有《Oracle与DB2数据类型分类对应说明》,根据这篇文章,我总结了一下Oracle的Number类型和C语言,C#语言类型的对应关系。

NUMBER,是以十进制格式进行存储的,它便于存储,但是在计算上,系统会自动的将它转换成为二进制进行运算的。它的定义方式是NUMBER(P,S),P是精度,最大38位,S是刻度范围,可在-84...127间取值。例如:NUMBER(5,2)可以用来存储表示-999.99...999.99间的数值。P、S可以在定义是省略,例如:NUMBER(5)、NUMBER等;

首先,必须声明,Oracle的Number类型和C语言,C#语言类型的对应没办法做到完全的一对一,下面的表格只能作为大致的参考。

Oracle DB2/400 C C# C/C#数据范围
NUMBER Float(n)/REAL/DOUBLE double double

1.7E +/- 308 (15 digits)

NUMBER(p)
p<=4
SAMLLINT
DECIMAL(p)
NUMBER(p)
short Int16

–32,768 to 32,767

NUMBER(5)

NUMBER(p)
5<=p<=9
INTEGER
DECIMAL(p)
NUMBER(p)
int Int32

–2,147,483,648 to 2,147,483,647

NUMBER(10)

NUMBER(p)
10<=p<=19
BIGINT
DECIMAL(p)
NUMBER(p)
__int64 Int64

–9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

NUMBER(19)

NUMBER(p,s)
p=7 s=3
Float(n)
DECIMAL(p,s)
NUMBER(p,s)

float
float

3.4E +/- 38 (7 digits)

NUMBER(p,s)
p=15 s=5
REAL
DECIMAL(p,s)
NUMBER(p,s)
double double

1.7E +/- 308 (15 digits)

NUMBER(p,s)
p=15 s=5
DOUBLE
DECIMAL(p,s)
NUMBER(p,s)
double double

1.7E +/- 308 (15 digits)

 

posted @   许志伟  阅读(7513)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示