Oracle資料庫的資料類型與其它的資料庫系統相比,它的資料類型不多,Oracle在表示資料方面比其他資料庫系統來說要省去許多關鍵字。Oracle隻用NUMBER(m,n)就可以表示任何複雜的數字資料。其它如日期類型等也簡單得多,隻DATE就表示日期和時間。下面以清單形式給出各個版本的Oracle系統資料類型的表示方法。下面給出Oracle舊版本的資料類型的目的是讓讀者了解Oracle的變化,另外就是你在對舊版本進行更新或資料轉換時要注意各個版本的差别。
ORACLE5、ORACLE6資料類型
資料類型
說明
Char
可變長字元型,≤254
Varchar2
可變長字元型,≤2000
Number(m,n)
數字類型,含整數、小數等
Date
日期型,含時間,預設格式為mmm-dd-yyyy hh:mi:ss(占7位元組)
Long
存儲大型可變長字元串,≤2GB
Raw
存儲短二進制串,≤2GB
Long raw
存儲長二進制串,≤2GB
ORACLE7資料類型
定長字元,≤255個字元
Varchar
變長字元,≤2000個字元
數字類型,含整數、浮點、雙精度等
存儲可變短二進制數,≤2000
存儲大型可變長二進制數,≤2GB
ORACLE8/8i 資料類型
定長字元,≤2000個字元
(同Varchar2)可變字元,≤4000個字元
變長字元,≤4000個字元
固定長度(7位元組)的日期型
Number
數字型,可存放實型和整型
可變字元,≤2GB個字元
可變二進制資料,≤4000位元組
可變二進制資料,≤2GB
MLSLABEL
僅Trusted Oracle 用長度在2~5位元組間
Blob
大二進制對象,≤4GB
Clob
大字元串對象,≤4GB
Nclob
多位元組字元集的Clob,≤4GB
Bfile
外部二進制檔案,大小由OS決定
<b> </b>
<b>CHAR(<size>)</b>
定長字元型(在Oracle5 、Oracle6 是變長),字元長度不夠自動在<b>右邊</b>加空格符号。當字元長度超出2000個則錯誤。不指定大小預設為 1。
<b>VARCHAR(<size>)</b>
可變字元型,目前與VARCHAR2(<size>)相同。
<b>VARCHAR2(<SIZE>)</b>
可變字元型,目前與VARCHAR(<size>)相同。VARCHAR2 類型的字段(列)可存放4000個字元;但是VARCHAR2 變量可以存放32,767 個字元。大小必須指定。
<b>NCHAR(<size>)和NVARCHAR2(<size>)</b>
NCHAR 和NVARCHAR2 分别與 CHAR和VARCHAR2 有相同的大小。并用于于存放 National Language Support (NLS)資料,Oracle 允許以本地語言存放資料和查詢資料。
如果将列名聲明成NCHAR、NVARCHAR2這樣的類型,則insert和 select 等語句中的具體值前加N,不能直接按照普通字元類型進行操作。看下面例子:
SQL> create table nchar_tst(name nchar(6),addr nvarchar2(16),sal number(9,2));
表已建立。
SQL> insert into nchar_tst values(N'趙元傑',N'北京市海澱區',9999.99);
已建立 1 行。
SQL> select * from nchar_tst where name like <b>N'</b><b>趙%'</b>;
NAME ADDR SAL
------ ---------------- ----------
趙元傑 北京市海澱區 9999.99
SQL> select * from nchar_tst where name like '趙%';
select * from nchar_tst where name like '趙%'
*
ERROR 位于第 1 行:
ORA-12704: 字元集不比對.
<b>提示:</b>雖然Oracle可以使用nchar, nvarchar2 類型來存放字元資料,但建議設計者不要使用NCHAR和NVARCHAR2。因為CHAR和VARCHAR2就能存放漢字。
本文轉自 jxwpx 51CTO部落格,原文連結:http://blog.51cto.com/jxwpx/204036,如需轉載請自行聯系原作者