oracle存儲大小
Ⅰ 如何在Oracle裡面存儲大整數
Oracle number datatype 語法:NUMBER[(precision [, scale])]
簡稱:precision --> p scale --> s
NUMBER(p,s)
范圍: 1 <= p <=38, -84 <= s <= 127
保存數據范圍:-1.0e-130 <= number value < 1.0e+126
保存在機器內部的范圍: 1 ~ 22 bytes
有效位:從左邊第一個不為0的數算起的位數。
s的情況:
s > 0
精確到小數點右邊s位,並四捨五入。然後檢驗有效位是否 <= p。
s < 0
精確到小數點左邊s位,並四捨五入。然後檢驗有效位是否 <= p + |s|。
s = 0
此時NUMBER表示整數。
從而,Oracle可以存儲、可以運算的最大整數是 1e126 -1 。
declare
n number:=0;
begin
for i in REVERSE 1..125 loop
n := n + 9*power(10,i);
dbms_output.put_line(i || '-->' || n);
end loop;
insert into tt(id)values(n);
commit;
end;
/
經實際驗證,的確可以存放1e126-1,但無法查看,也無法參與運算。
Ⅱ oracle 表空間 數據存儲空間
表空間是由數據文件組成的,表空間容量是由數據文件大小決定的,一個表空間由一個或多個數據文件組成。例如,一個空間由10個1G的數據文件組成,空間容量是10g。block大小為8k的數據文件最大為32G.你所說的超過8G報錯,應該是操作系統的限制。如空間問題,或者是windows的問題。當然也可能用大文件超過32G的限制。
Ⅲ oracle資料庫一張表最大存多少條數據
1、64位linux 和64位oracle,默認oracle表空間數據文件用的BLOCKSIZE是8k,表空間數據文件最大是32G。
SQL>show parameter k_cache_size
查看資料庫默認的塊大小
SQL> show parameter db_block_size
db_block_size integer 8192
2、為了讓一個表空間數據文件存64G,你需要告訴oracle用BLOCKSIZE 是16k
CREATE TABLESPACE TEST DATAFILE 『/data1/test_ts1.dbf』 SIZE 512M AUTOEXTEND ON NEXT 256M MAXSIZE UNLIMITED BLOCKSIZE 16k;
提前需要設置db_16k_cache_size
alter system set db_16k_cache_size=16M scope=both;
否則會報錯ORA-29339:
tablespace block size 16384 does not match configured block sizes
3、為了讓一個表空間數據文件存128G,你需要告訴oracle用BLOCKSIZE 是32k
4、32位linux 和32位oracle,默認oracle表空間datafile用的BLOCKSIZE也是8k,表空間數據文件最大也是32G。試了一下64G文件,也沒有問題。