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...