不行啊 1L
我們提供的服務(wù)有:網(wǎng)站制作、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、桐廬ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的桐廬網(wǎng)站制作公司
還是能向數(shù)據(jù)庫添加非整數(shù)數(shù)據(jù)啊
oracle會將integer轉(zhuǎn)換成number類型的
oracle本身只有number這個數(shù)值數(shù)據(jù)類型啊
ROUND(12.01, 0) = 12
ROUND(12.51, 0) = 13
TRUNCATE(12.01, 0) = 12
TRUNCATE(12.51, 0) = 12
直接將欄位數(shù)據(jù)類型定義為number(18,4)
例如:
create table test1
(a number(18,4));
insert into test1
values(0.03125 );
insert into test1
values(0.12 );
insert into test1
values(1.12 );
select * from test1;
結(jié)果:
1 0.0313
2 0.1200
3 1.1200
oracle本來就沒有int類型,為了與別的數(shù)據(jù)庫兼容,新增了int類型作為number類型的子集。
int類型只能存儲整數(shù);
number可以存儲浮點(diǎn)數(shù),也可以存儲整數(shù);
number(8,1)存儲小數(shù)位為1位,總長度為8的浮點(diǎn)數(shù),如果小數(shù)位數(shù)不足,則用0補(bǔ)全;
number(8)存儲總長度為8的整數(shù);
int相當(dāng)于number(22),存儲總長度為22的整數(shù)。
舉例說明:
--創(chuàng)建表結(jié)構(gòu)
SQL create table tab(id0 int,id1 number,id2 number(8,1),id3 number(8));
Table created
SQL
--插入測試數(shù)據(jù)
SQL insert into tab select 1,1.5,1.6,8 from dual;
1 row inserted
SQL insert into tab select 1,1.55,1.6,8 from dual;
1 row inserted
SQL insert into tab select 1,1.595,1,8 from dual;
1 row inserted
SQL commit;
Commit complete
SQL select * from tab;
ID0 ID1 ID2 ID3
---------- ---------- ---------- ---------
1 1.5 1.6 8
1 1.55 1.6 8
1 1.595 1.0 8
--查詢數(shù)據(jù)字典表dba_tab_columns
SQL select table_name,column_name,data_type,data_length,data_precision,data_scale from dba_tab_columns a
2 where table_name='TAB'
3 and owner='NETMAX'
4 order by column_id;
TABLE_NAME COLUMN_NAME DATA_TYPE DATA_LENGTH DATA_PRECISION DATA_SCALE
--------------- -------------- ----------------- ---------------- ----------- ----------
TAB ID0 NUMBER 22 0
TAB ID1 NUMBER 22
TAB ID2 NUMBER 22 8 1
TAB ID3 NUMBER 22 8 0
SQL
在dba_tab_columns表中,
Data_type表示字段類型;
Data_length表示字段類型的長度;
Data_Precision表示字段類型的精度的總長度,如果為null,表示精度的總長度不固定,最長為Data_Length;
Data_scale表示字段類型的精度范圍,如果為0,表示只能存儲為整數(shù),
如果為null,表示可以存儲整數(shù)或者浮點(diǎn)數(shù),浮點(diǎn)數(shù)位數(shù)不確定,
如果為整數(shù),表示存儲的精度位數(shù)。
查詢dba_tab_columns表,發(fā)現(xiàn)tab表中ID0字段類型int已經(jīng)被轉(zhuǎn)換為number(22)。