關於oracle 資料型別number(p,s)
遇到乙個面試題正式考number型別的,當時有點懵,事後趕緊查了查,在資料庫上驗證一遍。
參考部落格:
參考部落格:
number型別詳細
簡稱:precision --> p
scale --> s
number(p, s)
範圍: 1 <= p <= 38,
-84 <= s <= 127
p為有效位:從左邊第乙個不為0的數算起的位數。
s的情況:
s > 0
精確到小數點右邊s位,並四捨五入。然後檢驗有效位是否 <= p。
s < 0
精確到小數點左邊s位,並四捨五入。然後檢驗有效位是否 <= p + |s|。
s = 0
此時number表示整數。
如果沒有指定precision的話,oracle將使用38 作為精度。 scale預設設定為0。
number資料型別面試題:
結果是:
1、 12.34
2、 錯誤
3、錯誤
4、 0
5、 12
6、 12.3
如果要存入的數 比欄位型別最大值還大,就會報錯了。 如果是存入的值的小數字超過了資料型別的小數字,那麼就會進行四捨五入預算,在將資料儲存。
測試**:
create table test1(
a number(5,2),
b number(4,3),
c number(3,4),
d number(5,-2),
e number(5,0),
f number(5,1)
)truncate table test1 ;
insert into test1
select 12.34,null,null,null,null,null from dual ;
insert into test1
select null,12.34,null,null,null,null from dual;
insert into test1
select null,null,12.34,null,null,null from dual;
insert into test1
select null,null,null,12.34,null,null from dual;
insert into test1
select null,null,null,null,12.34,null from dual;
insert into test1
select null,null,null,null,null,12.34 from dual;
select * from test1;
最後的查詢結果如下:其中第2,3條insert 插入失敗。只能夠查出4條記錄。
oracle資料型別
char 用於描述定長的字元型資料,長度 2000位元組 varchar2 用於描述變長的字元型資料,長度 4000位元組 nchar 用來儲存unicode字符集的定長字元型資料,長度 1000位元組 nvarchar2 用來儲存unicode字符集的變長字元型資料,長度 1000位元組 numb...
Oracle資料型別
一 概述 標量 scalar 復合 composite 引用 reference lob 二 標量 scalar 合法的標量型別與資料庫的列所使用的型別相同,此外它還有一些擴充套件。它又分為七個組 數字 字元 行 日期 行標識 布林和可信。數字,它有三種基本型別 number pls integer...
Oracle 資料型別
資料型別 引數描述 char n n 1 to 2000位元組 定長字串,n位元組長,如果不指定長度,預設為1個位元組長 乙個漢字為2位元組 varchar2 n n 1 to 4000位元組 可變長的字串,具體定義時指明最大長度n,這種資料型別可以放數字 字母以及ascii碼字符集 或者ebcdi...