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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM