ORACLE資料型別number p,s 面試題

2021-09-10 05:29:59 字數 1671 閱讀 5865

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