在oracle中number型別的欄位長度是什麼意思

時間 2021-08-30 10:35:57

1樓:

oracle中的number型別

number (precision,scale)

a)    precision表示數字中的有效位,如果沒有指定precision的話,oracle將使用38作為精度;

b)    如果scale大於零,表示數字精度到小數點右邊的位數;scale預設設定為0;如果scale小於零,oracle將把該數字取捨到小數點左邊的指定位數。

c)    precision 的取值範圍是[1-38];scale的取值範圍是[-84-127].

d)    number整數部分允許的長度為(precision –scale),無論scale是正數還是負數。

e)    如果precision小於scale,表示儲存的是沒有正數的小數。

f)     precision表示有效位數,有效數位:從左邊第一個不為0的數算起,小數點和負號不計入有效位數;scale表示精確到多少位,指精確到小數點左邊還是右邊多少位(由+-決定)。

g)    number值型別舉例:

a)    關於precision,scale也可以做如下表述:

定點數的精度(p)和刻度(s)遵循以下規則:

1) 當一個數的整數部分長度 >p-s時,oracle就會報錯;

2) 當一個數的小數部分的長度 >s時,oracle就會舍入;

3) 當s(scale)為負數時,oracle就會對小數點左邊的s進行舍入;

4) 當s > p 時, p表示小數點後第s位向左最多可以有多少位數字,如果大於p則oracle報錯,小數點後s位向右的數字被舍入。

number型別的子類:

a)    oracle本來就沒有int型別,為了與別的資料庫相容,新增了int型別作為number型別的子集;

b)    int型別只能儲存整數,number可以儲存浮點數,也可以存整數。

c)    在oracle資料庫建表的時候,decimal,numeric不帶精度,oralce會自動把它處理成integer;帶精度,oracle會自動把它處理成number。

d)    oracle只用number(m,n)就可以表示任何複雜的數字資料。

decimal,numeric,int等都為sql,db2等資料庫的資料型別,oracle為了相容才將其引入;但實際上在oracle內部還是以number的形式將其存入的。

2樓:

它是指在number預設情況下,精度為38位,取值範圍1~38之間;

它實際上是磁碟上的一個變長型別,會佔用0~22 位元組的儲存空間;

預設小數點位是0。

number資料型別

number型別的語法很簡單:number(p,s):

1.p

精度位,precision,是總有效資料位數,取值範圍是38,預設是38,可以用字元*表示38;

2.s

小數位,scale,是小數點右邊的位數,取值範圍是-84~127,預設值取決於p,如果沒有指定p,那麼s是最大範圍,如果指定了p,那麼s=0;

number型別的p和s,與其底層儲存完全沒有關係,根本不會影響資料在磁碟上如何儲存,它只會影響允許哪些值以及數值如何舍入,你可以認為其是對資料的「編輯」。

簡單的說,精度位p表示數值最多能有多少個有效數字,而小數位s表示最多能有多少位小數。換句話說,p表示一共有多少位有效數字(即小數點左邊最多有p-s位有效數字),s表示小數點右邊有s位有效數字。

oracle資料庫中number型別的欄位,不定義長度是什麼意思?

3樓:匿名使用者

number預設情況下,精度為38位,取值範圍1~38之間

它實際上是磁碟上的一個變長型別,會佔用0~22 位元組的儲存空間。

預設小數點位是0

4樓:邊城兔子

首先number型別存在一個精度和有效位的概念,

如果不定義所謂的長度,即精度為38,有效位為0,相當於number(38,0).

oracle中number型別 預設長度是多少

5樓:匿名使用者

number型別是oralce的數值型別,儲存的數值的精度可以達到38位。number是一種變長型別,長度為0-22位元組。取值範圍為:

10^(-130) —— 10^126(不包括)。以十進位制格式進行儲存的,它便於儲存,但是在計算上,系統會自動的將它轉換成為二進位制進行運算的。

語法:number(p,s):

p和s都是可選的。

p指精度(precision),即總位數。預設情況下精度為38。精度的取值範圍為1~38。

s指小數位(scale),小數點右邊的位數。小數點位數的合法值為-84~127。小數位的預設值由精度來決定。

如果沒有指定精度,小數位預設為最大的取值區間。如果指定了精度,沒有指定小數位。小數位預設為0(即沒有小數位)。

精度和小數位不會影響資料如何儲存,只會影響允許哪些數值及數值如何舍入。

6樓:怎麼小年

在oracle中number型別可以用來儲存0,正負定點或者浮點數,可表示的資料範圍在 1.0 * 10(-130) —— 9.9...

9 * 10(125) 的數字,當oracle中的數學表示式的值》=1.0*10(126)時,oracle就會報錯。

7樓:

預設長度為38位,佔用22個位元組的儲存空間

oracle中number型別 預設長度是多少?

8樓:

number預設情況下,精度為38位,取值範圍1~38之間

不明白再問我,謝謝!

9樓:匿名使用者

(5,-3)代表-999.99~999.99

你的問題還真不知道,資料上沒有,不符值不佔位吧?

如何獲得oracle資料庫中,number型別欄位的長度

10樓:匿名使用者

select * from user_tab_cols where table_name='a' and column_name='col1';

就可以檢視到欄位col1的欄位長度。

oracle資料庫中number的欄位型別長度能不能修改

11樓:

alter table a modify m(number(10)); 裡面的10是我自己寫的,就是你原來varchar2的長度,你在實際執行時修改一下。

Oracle中NUMBER型別如果不指定長度和小數點精度預設是多長

number p,s p 精度位,precision,是總有效資料位數,取值範圍是38,預設是38,可以用字元 表示38。s 小數位,scale,是小數點右邊的位數,取值範圍是 84 127,預設值取決於p,如果沒有指定p,那麼s是最大範圍,如果指定了p,那麼s 0。 oracle number型別...

在linucentos中安裝oracle資料庫都需要哪些安裝

1 安裝包裡都有安裝指南 2 the following packages or later versions must be installed binutils 2.17.50.0.6 compat libstdc 33 3.2.3compat libstdc 33 3.2.3 32 bit e...

oracle資料庫中text型別用什麼型別表示

text在其他資料庫中是儲存大文字的型別,在oracle中用clob型別表示。建立包含clob型別的表 create table test id int,name clob 在clob型別中插入資料 與往varchar2中插入並無區別 insert into test values 1,badkan...