一)資料型別的分類
oracle支援的資料型別可以分為四個基本種類:字元資料型別、數字資料型別、日期資料型別以及表示其它資料的資料型別。
屬於字元資料型別的有: char/varchar/varchar2/nvarchar/nvarchar2/long
屬於數字資料型別的有: number
屬於日期資料型別的有: date/timestamp
屬於其它資料型別的有: raw/long raw/rowid/clob/nclob/blob/bfile
二)字元資料型別
[b]1)char[/b]
[b]char的長度是固定的[/b],比如說,你定義了char(20),即使你你插入abc,不足二十個位元組,資料庫也會在abc後面自動加上17個空格,以補足二十個位元組;
char是區分中英文的,中文在char中佔兩個位元組,而英文佔乙個,所以char(20)你只能存20個字母或10個漢字。
char適用於長度比較固定的,一般不含中文的情況
[b]2)varchar[/b]
[b]varchar是長度不固定的[/b],比如說,你定義了varchar(20),當你插入abc,則在資料庫中只佔3個位元組。
varchar同樣區分中英文
[b]3)varchar2[/b]
varchar2基本上等同於varchar,它是oracle自己定義的乙個非工業標準varchar,不同在於,[b]varchar2用null代替varchar的空字串[/b]
[b]varchar/varchar2適用於長度不固定的,一般不含中文的情況 [/b]
[b]4)nvarchar[/b]
nvarchar是長度不固定的
nvarchar不區分中英文,比如說:你定義了nvarchar(20),你可以存入20個英文本母/漢字或中英文組合,這個20定義的是[b]字元數[/b]而不是位元組數
[b]5)nvarchar2[/b]
nvarchar2基本上等同於nvarchar,不同在於nvarchar2中存的英文本母也佔兩個位元組
[b]nvarchar/nvarchar2適用於存放中文[/b]
[b]6)long[/b]
long資料型別可以存放2gb的字元資料,它是從早期版本中繼承來的。現在如果想儲存大容量的資料,oracle推薦使用clob和nclob資料型別。在表和sql語句中使用long型別有許多限制。所以已經不大推薦使用了。
三)數字資料型別
oracle使用標準、可變長度的內部格式來儲存數字。這個內部格式精度可以高達38位。
number資料型別可以有兩個限定符,如:
column number (precision, scale)
precision表示數字中的有效位。如果沒有指定precision的話,oracle將使用38作為精度。
scale表示數字小數點右邊的位數,scale預設設定為0.如果把scale設成負數,oracle將把該數字取捨到小數點左邊的指定位數。
四)日期資料型別
[b]1)date[/b]
可以儲存月,年,日,世紀,時,分和秒。度量粒度是秒
[b]2)timestamp[/b]
它包括了所有date資料型別的年月日時分秒的資訊,而且包括了小數秒的資訊。
to_char函式支援date和timestamp
五)其它資料型別
[b]1)raw[/b]
用於儲存基於位元組的資料,最多能儲存2000個位元組,它沒有預設大小,所以在使用時要指定大小,可以建立索引。
[b]2)long raw[/b]
用於儲存可變長度的二進位制資料,最多能儲存2gb,它受的限制和long型別一樣
[b]3)rowid[/b]
rowid是一種特殊的列型別,稱之為偽列(pseudocolumn)。rowid偽列在sql select語句中可以像普通列那樣被訪問。oracle資料庫中每行都有乙個偽列。rowid表示行的位址,rowid偽列用rowid資料型別定義。
rowid與磁碟驅動的特定位置有關,因此,rowid是獲得行的最快方法。但是,行的rowid會隨著解除安裝和過載資料庫而發生變化,因此建議不要在事務 中使用rowid偽列的值。例如,一旦當前應用已經使用完記錄,就沒有理由儲存行的rowid.不能通過任何sql語句來設定標準的rowid偽列的值。
列或變數可以定義成rowid資料型別,但是oracle不能保證該列或變數的值是乙個有效的rowid.
[b]4)blob[/b]
[b]5)clob[/b]
乙個字元大型物件,可容納單位元組的字元;不支援寬度不等的字符集;最大為4g位元組
[b]6)nlob[/b]
乙個字元大型物件,可容納單位元組的字元;不支援寬度不等的字符集;最大為4g位元組;儲存國家字符集
[b]7)bfile[/b]
包含乙個大型二進位制檔案的定位器,其儲存在資料庫的外面;使得可以以字元流i/o訪問存在資料庫伺服器上的外部lob;最大大小為4g位元組.
oracle資料型別
char 用於描述定長的字元型資料,長度 2000位元組 varchar2 用於描述變長的字元型資料,長度 4000位元組 nchar 用來儲存unicode字符集的定長字元型資料,長度 1000位元組 nvarchar2 用來儲存unicode字符集的變長字元型資料,長度 1000位元組 numb...
Oracle資料型別
一 概述 標量 scalar 復合 composite 引用 reference lob 二 標量 scalar 合法的標量型別與資料庫的列所使用的型別相同,此外它還有一些擴充套件。它又分為七個組 數字 字元 行 日期 行標識 布林和可信。數字,它有三種基本型別 number pls integer...
Oracle 資料型別
資料型別 引數描述 char n n 1 to 2000位元組 定長字串,n位元組長,如果不指定長度,預設為1個位元組長 乙個漢字為2位元組 varchar2 n n 1 to 4000位元組 可變長的字串,具體定義時指明最大長度n,這種資料型別可以放數字 字母以及ascii碼字符集 或者ebcdi...