oracle中的資料型別

2021-10-13 17:48:30 字數 3387 閱讀 2718

part1  oracle資料型別分析

一、資料型別

1char(n) n=1 to 2000位元組 定長字串,n位元組長,如果不指定長度,預設為1個位元組長(乙個漢字為2位元組)。

2varchar2(n) n=1 to 4000位元組 可變長的字串,具體定義時指明最大長度n,這種資料型別可以放數字、字母以及ascii碼字符集(或者ebcdic等資料庫系統接受的字符集標準)中的所有符號。如果資料長度沒有達到最大值n,oracle 8i/9i/10g會根據資料大小自動調節字段長度,如果你的資料前後有空格,oracle 8i會自動將其刪去。varchar2是最常用的資料型別。

3number(m,n) m=1 to 38,n=-84 to 127 可變長的數值列,允許0、正值及負值,m是所有有效數字的位數,n是小數點以後的位數。如:number(5,2),則這個欄位的最大值是99999,如果數值超出了位數 限制就會被擷取多餘的位數。如:number(5,2),但在一行資料中的這個字段輸入575.316,則真正儲存到字段中的數值是575.32。如:number(3,0),輸入575.316,真正儲存的資料是575。 

4date 無 從西元前2023年1月1日到公元2023年12月31日的所有合法日期,oracle 8i/9i/10g其實在內部是按7個位元組來儲存日期資料,在定義中還包括小時、分、秒。預設格式為dd-mon-yy,如07-11月-00 表示  2023年11月7日。 

5long:可變長字元列,最大長度限制是2gb,用於不需要作字串搜尋的長串資料,如果要進行字元搜尋就要用varchar2型別。

long是一種較老的資料型別,將來會逐漸被blob、clob、nclob等大的物件資料型別所取代。 

raw是一種較老的資料型別,將來會逐漸被blob、nclob等大的物件資料型別所取代。 

在同一張表中不能同時有long型別和long raw型別,long raw也是一種較老的資料型別,將來會逐漸被blob、nclob等大的物件資料型別所取代。 

8blob clob nclob

可以執行讀取、儲存、寫入等特殊操作。 

9bfile 無 在資料庫外部儲存的大型二進位制物件檔案,最大長度是4gb。這種外部的lob型別,通過資料庫記錄變化情況,但是資料的具體儲存是在資料庫外部進行的。oracle 8i/9i/10g可以讀取、查詢bfile,但是不能寫入。大小由作業系統決定。 

二、oracle中的資料型別分類

1、字元資料型別:包括我char,varchar2,long。

char型:可以儲存字母數字值,這種資料型別的列長度可以是1到2000個位元組。如果未指明,則預設其占用乙個位元組,如果使用者輸入的值小於指定的長度,資料庫則用空格填充至固定長度。

varchar2型:其實就是varchar,只不過後面多了乙個數字2,varchar2就是varchar的同義詞,也稱別名。資料型別大小在1至4000個位元組,但是和char不同的一點是:當你定義了varchar2長度為30,但是你只輸入了10個字元,這時varchar2不會像char一樣填充,在資料庫中只有10具位元組。

long型:此資料型別用來儲存可變長度的字元資料,最多能儲存2gb。但是有一些限制:乙個表中只有一列可以為long型,long列不能定義為主鍵或唯一約束,不能建立索引,過程或儲存過程不能接受long資料型別的引數。

2、數值資料型別:只有number型,但是number功能不小,它可以儲存正數,負數,零,定點數和精度為30位的浮點數。格式為(p=38,s=0),其中p為精度,表示數字的總位數,它在1-38之間,s為範圍,表示小數點右邊的數字的位數,它在-84至127之間。

3、日期時間資料型別:有date資料型別,timestamp資料型別。

date用於儲存表中的日期和時間資料,oracle使用自己的格式儲存日期,使用7個位元組固定長度,每個位元組分別儲存世紀,年月日,小時,分和秒。日期資料型別的值從西元前2023年1月1日到公元2023年12月31日。oracle中的sysdate函式用於返回當前的日期和時間。timestamp資料型別與date不同的是:它還返回當前的時區。

4、 raw和long raw 資料型別此種資料型別主要用於儲存二進位制資料。raw用於儲存基於位元組的資料,最多能儲存2000個位元組,它沒有預設大小,所以在使用時要指定大小,可以建立索引。

raw long用於儲存可變長度的二進位制資料,最多能儲存2gb,它受的限制和long型別一樣。

5、lob資料型別

● lob又稱為「大物件」資料型別:主要有clob,blob(nblob),bfile,三種子型別。

● clob代表(character lob),它能夠儲存大量字元資料,可以儲存非結構化的xml文件。

bfile代表(binary file),它能夠將二進位制檔案儲存在資料庫外部的作業系統檔案中,注意是二進位制檔案,不是一般資料,bfile列儲存乙個bfile定位器,它指向位於伺服器檔案系統上的二進位制檔案,支援的檔案最大為4gb。不過oracle10以上的會更大,這還需要硬體方面的支援。

part2oracle 9i/10g共提供了16種標量資料型別

oracle 9i

共提供了16種標量資料型別,如表1所示。 名稱

含義char

用於描述定長的字元型資料,長度<=2000位元組

varchar2

用於描述變長的字元型資料,長度<=4000位元組

nchar

用來儲存unicode字符集的定長字元型資料,長度<=1000位元組

nvarchar2

用來儲存unicode字符集的變長字元型資料,長度<=1000位元組

number

用來儲存整型或者浮點型數值

date

用來儲存日期資料

long

用來儲存最大長度為2gb的變長字元資料

raw用來儲存非結構化資料的變長字元資料,長度<=2000位元組

long raw

用來儲存非結構化資料的變長字元資料,長度<=2gb

rowid

用來儲存表中列的實體地址的二進位制資料,占用固定的10個位元組

blob

用來儲存多達4gb的非結構化的二進位制資料

clob

用來儲存多達4gb的字元資料

nclob

用來儲存多達4gb的unicode字元資料

bfile

用來把非結構化的二進位制資料儲存在資料庫以外的作業系統檔案中

urowid

用來儲存表示任何型別列位址的二進位制資料

float

用來儲存浮點數

oracle中的資料型別

字段型別 中文說明 限制條件 其它說明 char 固定長度字串 最大長度2000 bytes varchar2 可變長度的字串 最大長度4000 bytes 可做索引的最大長度749 nchar 根據字符集而定的固定長度字串 最大長度2000 bytes nvarchar2 根據字符集而定的可變長度...

ORACLE中的資料型別

char 固定長度字元域,最大長度可達2 000 個位元組 nchar 多位元組字符集的固定長度字元域,長度隨字符集而定,最多為2 000個字元或2 000個位元組 varchar2 可變長度字元域,最大長度可達4 000 個字元 nvarchar2 多位元組字符集的可變長度字元域,長度隨字符集而定...

Oracle中的資料型別

oracle 8 資料型別 資料型別 引數描述 char n n 1 to 2000位元組 定長字串,n位元組長,如果不指定長度,預設為1個位元組長 乙個漢字為2位元組 varchar2 n n 1 to 4000位元組 可變長的字串,具體定義時指明最大長度n,這種資料型別可以放數字 字母以及asc...