【转载】Oracle10g数据类型总结
原文:http://www.cnblogs.com/yshb/archive/2012/06/19/2554279.html
?
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。 |
在DATE和TIMESTAMP(會被轉化為DATE類型值)類型上加、減NUMBER類型常量,該常量單位為天數。
所有TIMESTAMP類型運算都以UTC時間為準。即對于TIMESTAMP WITH LOCAL TIME ZONE來說,先轉化為UTC時間,計算完成后再轉化回來。
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)。
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地址指向文件系統上的一個二進制文件,維護目錄和文件名。不參與事務處理。只支持只讀操作。 |
?
5.???? 其他類型
| 數據類型 | 長度 | 說明 |
| LONG | 最大為2GB | 變長類型,存儲字符串。創建表時不要使用該類型。 |
| RAW(n) | 最大2000字節,n為字節數,必須指定n | 變長類型,字符集發生變化時不會改變值。 |
| LONG RAW | 最大為2GB | 變長類型,不建議使用,建議轉化為BLOB類型,字符集發生變化時不會改變值。 |
| ROWID | 10字節 | 代表記錄的地址。顯示為18位的字符串。用于定位數據庫中一條記錄的一個相對唯一地址值。通常情況下,該值在該行數據插入到數據庫表時即被確定且唯一。 |
| UROWID(n) | ? | ? |
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;
posted on 2012-06-19 09:15 淩風 閱讀(820) 評論(1) 編輯 收藏
轉載于:https://www.cnblogs.com/yhlx125/articles/2555361.html
總結
以上是生活随笔為你收集整理的【转载】Oracle10g数据类型总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rhel6.2 yum
- 下一篇: 这一年,我们毕业了