標籤:oracle資料類型 資料類型 date
Oracle提供了22種不同的sql資料類型供我們使用:
1、char :
這是個定長的字串,會用空格填充來達到其最大長度。char 欄位最多可以儲存2000位元組資訊;
2、nchar :
這個一個包含Unicode格式資料的定長字串。與char類型有所不同,char類型定義的長度可為位元組或字元。nchar欄位最多可以儲存2000位元組的資訊;
3、varchar2 :
目前這也是varchar的同義字。它是個變長字串,與char類型不同,它不會用空格將欄位或變數填充至最大長度。它最多可以儲存4000位元組資訊。自Oracle12C起,它可以最多儲存32767位元組資訊;
4、nvarchar2 :
這個一個包含Unicode格式資料的變長字串。它最多可以儲存4000位元組的資訊。自Oracle12C起,它可以儲存最多32767位元組的資訊;
5、raw :
這個一種變長位元據類型,也就是說採用這種資料類型儲存的資料不會發生字元集轉換。它最多儲存2000位元組資訊。自Oracle12C起,它可以儲存最多32767位元組的資訊;
6、number :
這種資料類型能儲存精度最多達38位的數字,這種類型的資料會以變長方式來儲存,其長度在0~22位元組(null值長度為0)。它的精度很高;
7、binary_float :
這是Oracle10 才開始有的一種新類型。它是一個32位單精確度浮點數,可以支援至少6位精度,佔用磁碟上5個位元組的儲存空間;
8、binary_double :
這是一種Oracle10 才開始有的新類型,它是一個64位雙精確度浮點數,可以支援至少15位精度,佔用磁碟9位元組的儲存空間;
9、long :
這種類型能儲存最多2GB的字元資料(2GB是指2千MB,而不是2千兆個字元,因為在一個多位元組字元集中,有的字元可能佔用多個位元組),不建議使用該類型,在現有的應用中應將long類型轉換為CLOB類型;
10、long raw :
該類型能儲存多大2GB的二進位資訊,與long類型同樣的原因建議在應用中使用BLOB類型;
11、date :
這是個7位元組的定寬日期/時間資料類型,其中共包含7個屬性:世紀、世紀中的哪一年、月份、天、小時、分鐘和秒;
12、timestamp :
這是個7位元組或11位元組的定寬日期時間資料類型(高精度會使用11位元組)。它與date資料類型不同,因為timestamp可以包含小數秒,帶小數秒的timestamp最多可以保留9位小數;
13、timestamp with time zone :
這是一個13位元組的定寬timestamp,不過它還提供了時區(time zone)支援。因為時區資訊是與timestamp儲存在一起的,所以資料在插入時的時區資訊會與時間一起保留下來;
14、timestamp with local time zone :
與timestamp類型,這是一種以7位元組或11位元組的定寬日期時間資料類型(高精度會使用11位元組);不過,這種類型對時區敏感;
15、interval year 10 month :
這是個5位元組的定寬資料類型,用於儲存一個時段。這個類型將時段儲存為年數和月數;我們可以在日期運算中使用這種時段,使一個date或timestamp類型的資料增加或減少一段時間;
16、interval day 10 second :
這是個11位元組的定寬資料類型,用於儲存一個時段。這種類型將時段儲存為天、小時、分鐘、秒數,還可以有最多9位的小數秒;
17、BLOB :
在Oracle9i以前最多能儲存4GB資料,而從Oracle10以後最多能儲存(4GB-1)X(資料庫塊大小)位元組的資料;blob包含不需要進行字元集轉換的位元據。
18、CLOB :
在Oracle9i以前最多能儲存4GB資料,而從Oracle10以後最多能儲存(4GB-1)X(資料庫塊大小)位元組的資料;當發生字元集轉換時,CLOB會受到影響。這種資料類型很適合儲存大塊純文字資訊。
19、NCLOB :
在Oracle9i以前最多能儲存4GB資料,而從Oracle10以後最多能儲存(4GB-1)X(資料庫塊大小)位元組的資料;NVLOB會儲存以資料庫國家字元集編碼的資訊,而且像CLOB一樣,當發生字元集轉換時,這種類型也會受到影響;
20、BFILE :
這種資料類型可以在資料庫列中儲存一個Oracle目錄對象和一個檔案名稱,我們可以通過它來讀取這個檔案;
21、rowid :
rowid實際上是資料庫表中行的地址,它有10位元組長。rowid中編碼的資訊,不但足以在磁碟上定位每一行,而且還能識別出rowid指向的那行資料所屬的對象(表等);
22、urowid :
urowid是一個通用rowid,用於沒有固定rowid的表。urowid通常表現為主鍵的值。因此urowid的大小會根據所指向的對象而有所變化;
注意:從Oracle12C 起,varchar2、nvarchar2和raw類型可以儲存最多32767位元組的資訊,但是需要啟用擴充資料類型。在預設情況下這個特性沒有啟用的。
從Oracle12C起,varchar2 和 nvarchar2類型的最大長度由原來的4000位元組變成現在最多儲存32767位元組,12C預設情況下沒有啟用擴充資料類型,需要手動啟動,如下:
shutdown immediate;
startup upgrade;
alter system set max_string_size=extended;
@?/rdbms/admin/utl32k.sql
shutdown immediate
startup;
---按照上面的命令就可以啟用擴充資料類型;
注意:一旦啟用擴充資料類型,是不可以回退的,除非做一個非完全恢複,將資料恢複到變更的時間點前的狀態;
本文出自 “笨小孩的dba之路” 部落格,請務必保留此出處http://fengfeng688.blog.51cto.com/4896812/1934806
Oracle基礎-資料類型總結