Oracle的資料類型
來源:互聯網
上載者:User
1.字元型
用來儲存字串或字元資料,主要類型有VARCHAR2、CHAR和LONG。
(1)VARCHAR2
用來儲存可變長的字串或字元型資料,在使用時,須指明其最大位元組資料。
(2)CHAR
用來儲存定長的字串或字元型資料,使用時也要指定長度,其預設值為1。
(3)LONG
用來儲存可變長的字串或字元型資料。
2.數字型
數字型用於儲存整數或實數。主要有:number、BINARY_INTEGER
(1)NUMER
用於儲存數字資料,包括整數或浮點數。在實際應用中,應指定該類型資料長度和小數的位元。在Oracle中其指定的長度不包含小數點和符號位。
(2)BINARY_INTEGER
它是PL/SQL的一個資料類型,它用於帶符號的整數值,以2的補碼的二進位形式進行儲存。
3.日期型
DATE型用於儲存日期和時間資訊,包括世紀、和、月、日、時、分、秒,其佔7個位元組,每一部分佔一個位元組。
4.RAW和LONG RAW
RAW和LONG RAW用來儲存位元據。
(1)RAW
RAW類似於CHAR,必須指定儲存位元的最大位元組數。
(2)LONG RAW
LONG RAW類似於LONG。
5.ROWID
資料庫表中的每一行(ROW)都有一個地址,通過查詢偽列ROWID獲得該行地址。該偽列的值為16進位字串,該串的資料類型為ROWID。其字元值的形式為:BLOCK.ROW.FILE。
6. 布爾型
在表中無布爾型的欄位類型,只有在PL/SQL中可以定義BOOLEAN型,它的值為TRUE、FALSE、NULL。在定義BOOLEAN型變數時可限定變數為NOT NULL,但此時必須為該變數初始化。
7.複合類型
(1)記錄
記錄定義的格式如下:
TYPE Record_type IS RECORD(
Field1 Datatype1 [NOT NULL][:=Expression1],
Field2 Datatype2 [NOT NULL][:=Expression2],
…);
在上述格式中Record_type是一種定義的記錄類型。
如果要定義記錄類型的變數與已建立的某一關係表結構一致,可使用下列定義:
Record_typename table_name%ROWTYPE;
(2) 表
PL/SQL中的表類似於C語言中的數組,並與其數組的處理方式類似,但實現方法不同。表必須定義該表類型,再聲明一個屬於該類型的變數,然後才能引用。定義表類型的格式如下:
TYPE Table_type IS TABLE OF type INDEX BY BINARY_INTEGER;
一個PL/SQL表類似於資料庫中的一個只有兩列的表,一列的類型為BINARY_INTEGER,另一列的類型為定義中指定的類型。
8.LOB類型
LOB類型用來儲存大型的對象,它可以是一個位元值或字元型值,其最大長度為4GB。LOB可包含沒有結構特徵的資料,對它的訪問比對LONG 或LONG RAW資料的訪問更為有效,對它的限制更少。
9.自訂子類型
PL/SQL中除可使用預定義的子類型外,使用者自己可以定義子類型,其格式為:
SUBTYPE new_type IS original_type
10.使用%TYPE
在許多情況下,PL/SQL變數可以用來處理儲存在資料庫表中的資料,因而該變數類型與表中相應欄位的資料類型相同。可使用%TYPE說明某一變數與表中欄位類型相同。其格式為:
variety_name table_name.field_name%TYPE;