Oracle 11g 數據類型


1.     字符類型

數據類型

長度

說明

CHAR(n BYTE/CHAR)

默認1字節,n值最大為2000

末尾填充空格以達到指定長度,超過最大長度報錯。默認指定長度為字節數,字符長度可以從1字節到四字節。

NCHAR(n)

默認1字符,最大存儲內容2000字節

末尾填充空格以達到指定長度,n為Unicode字符數。默認為1字節。

NVARCHAR2(n)

最大長度必須指定,最大存儲內容4000字節

變長類型。n為Unicode字符數

VARCHAR2(n BYTE/CHAR)

最大長度必須指定,至少為1字節或者1字符,n值最大為4000

變長類型。超過最大長度報錯。默認存儲的是長度為0的字符串。

VARCHAR

同VARCHAR2

不建議使用

 

2.     數字類型

數據類型

長度

說明

NUMBER(p[,s])

1-22字節。

P取值范圍1到38

S取值范圍-84到127

存儲定點數,值的絕對值范圍為1.0 x 10 -130至1.0 x 10 126。值大於等於1.0 x 10 126時報錯。p為有意義的10進制位數,正值s為小數位數,負值s表示四舍五入到小數點左部多少位。

BINARY_FLOAT

5字節,其中有一長度字節。

32位單精度浮點數類型。

符號位1位,指數位8位,尾數位23位。

BINARY_DOUBLE

9字節,其中有一長度字節。

64位雙精度浮點數類型。

3.     時間、時間間隔類型

時間字段可取值范圍:

時間字段

時間類型有效值

時間間隔類型有效值

YEAR

-4712至9999,包括0

任何整數

MONTH

01至12

0至11

DAY

01至31

任何整數

HOUR

00 至 23

0 至 23

MINUTE

00 至 59

0至 59

SECOND

00 to 59.9(n),9(n)不適用與DATE類型

0 to 59.9(n)

TIMEZONE_HOUR

-1至14,不適用與DATE和TIMESTAMP類型

不可用

TIMEZONE_MINUTE

00至59,不適用與DATE和TIMESTAMP類型

不可用

TIMEZONE_REGION

 

不可用

TIMEZONE_ABBR

 

不可用

 

時間、時間間隔類型:

數據類型

長度

說明

DATE

7字節

默認值為SYSDATE的年、月,日為01。包含一個時間字段,若插入值沒有時間字段,則默認值為:00:00:00 or 12:00:00 for 24-hour and 12-hour clock time。沒有分秒和時間區。

TIMESTAMP [(fractional_seconds_precision)]

7至11字節

fractional_seconds_precision為Oracle存儲秒值小數部分位數,默認為6,可選值為0到9。沒有時間區。

TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE

13字節

使用UTC,包含字段YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, TIMEZONE_

HOUR, TIMEZONE_MINUTE

TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE

7至11字節

存時使用數據庫時區,取時使用回話的時區。

INTERVAL YEAR [(year_precision)] TO MONTH

5字節

包含年、月的時間間隔類型。year_precision是年字段的數字位數,默認為2,可取0至9。

INTERVAL DAY [(day_precision)]

TO SECOND [(fractional_seconds_precision)]

11字節

day_precision是月份字段的數字位數,默認為2,可取0至9。

  1. TO_DATE()、DATE使用的時間字段值都是午夜值。或者使用TRUNC()函數進行過濾,確保時間字段為午夜值。
  2. 時間和時間間隔類型操作規則:

在DATE和TIMESTAMP(會被轉化為DATE類型值)類型上加、減NUMBER類型常量,該常量單位為天數。

所有TIMESTAMP類型運算都以UTC時間為准。即對於TIMESTAMP WITH LOCAL TIME ZONE來說,先轉化為UTC時間,計算完成后再轉化回來。

  1. INTERVAL YEAR TO MONTH常量:

INTERVAL‘year-month’YEAR/MONTH(precision) TO MONTH

year位數超過precision時,返回一個錯誤。

其中precision為最大的位數,默認為2,可取0到9。

例子:INTERVAL '123-2' YEAR(3) TO MONTH 、

INTERVAL '123' YEAR(3) 、

INTERVAL '300' MONTH(3)。

  1. INTERVAL DAY TO SECOND常量:

INTERVAL ‘n/time_expr/n time_expr’ DAY/HOUR/MINUTE(leading_precision)  TO  HOUR/MINUTE/SECOND(fractional_second_precision)

INTERVAL ‘n/time_expr’ SECOND(leading_precision, fractional_second_precision) 

time_expr格式:HH[:MI[:SS[.n]]] or MI[:SS[.n]] or SS[.n] 若n大於分秒精度,則四舍五入n。

只有當第一個字段是DAY時,才可以使用n time_expr。

leading_precision默認為2,可取0至9。

4.     大對象類型

數據類型

長度

說明

BLOB

最大為(4GB-1)*數據庫塊大小

存儲非結構化二進制文件。支持事務處理。

CLOB

最大為(4GB-1)*數據庫塊大小

存儲單字節或者多字節字符數據。支持事務處理。

NCLOB

最大為(4GB-1)*數據庫塊大小

存儲Unicode數據。支持事務處理。

BFILE

最大為2 32-1字節

LOB地址指向文件系統上的一個二進制文件,維護目錄和文件名。不參與事務處理。只支持只讀操作。

 

  1. LOB列包含一個LOB地址,指向數據庫內或者數據庫外的LOB類型值。

5.     其他類型

數據類型

長度

說明

LONG

最大為2GB

變長類型,存儲字符串。創建表時不要使用該類型。

RAW(n)

最大2000字節,n為字節數,必須指定n

變長類型,字符集發生變化時不會改變值。

LONG RAW

最大為2GB

變長類型,不建議使用,建議轉化為BLOB類型,字符集發生變化時不會改變值。

ROWID

10字節

代表記錄的地址。顯示為18位的字符串。用於定位數據庫中一條記錄的一個相對唯一地址值。通常情況下,該值在該行數據插入到數據庫表時即被確定且唯一。

UROWID(n)

 

 

  1. ROWID:數據對象編號32位(6個字符)、文件編號10位(3個字符)、塊編號22位(6個字符)、行編號16位(3個字符)
  2. 使用dqms_rowid包獲得ROWID信息:

select dbms_rowid.rowid_object(rowid) object_id,                dbms_rowid.rowid_relative_fno(rowid) file_id,                                                                   dbms_rowid.rowid_block_number(rowid) block_id,                                                                  dbms_rowid.rowid_row_number(rowid) num                                                                          from dept;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM