Oracle有很多值得學習的地方,這裡我們主要介紹Oracle數據庫字符集,包括介紹國家字符集等方面。Oracle數據庫字符集,即國家語言支持(NLS)其作用是用本國語言和格式來存儲、處理和檢索數據。利用全球化支持,Oracle為用戶提供自己熟悉的數據庫母語環境,諸如日期格式、數字格式和存儲序列等。Oracle可以支持多種語言及字符集,Oracle9i則支持57種語言、88個國家地域、235種字符集。
單字節編碼
1.單字節7位字符集,可以定義128個字符,最常用的字符集為US7ASCII
2.單字節8位字符集,可以定義256個字符,適合於歐洲大部分國家
例如:WE8ISO8859P1(西歐、8位、ISO標准8859P1編碼)
多字節編碼
1.變長多字節編碼
某些字符用一個字節表示,其它字符用兩個或多個字符表示,變長多字節編碼常用於對亞洲語言的支持, 例如日語、漢語、印地語等。例如:AL32UTF8(其中AL代表ALL,指適用於所有語言),UTF-8是unicode的8位編碼方式,這種編碼可以用1、2、3個字節表示一個unicode字符
2.定長多字節編碼
每一個字符都使用固定長度字節的編碼方案,目前Oracle數據庫字符集唯一支持的定長多字節編碼是AL16UTF16,也是僅用於國家字符集 UTF-16是unicode的16位編碼方式,是一種定長多字節編碼,用2個字節表示一個unicode字符
在創建數據庫時,可以指定字符集(CHARACTER SET)和國家字符集(NATIONAL CHARACTER SET)。
字符集
(1)用來存儲CHAR,VARCHAR2,CLOB,LONG等類型數據
(2)用來標示諸如表名、列名以及PL/SQL變量等
(3)用來存儲SQL和PL/SQL程序單元等
國家字符集
(1)用以存儲NCHAR,NVARCHAR2,NCLOB等類型數據
(2)國家字符集實質上是為Oracle選擇的附加字符集,主要作用是為了增強Oracle的字符處理能力,因為NCHAR數據類型可以提供對亞洲使用定長多字節編碼的支持,而Oracle數據庫字符集則不能。國家字
符集在Oracle9i中進行了重新定義,只能在unicode編碼中的AL16UTF16和UTF8 中選擇,默認值是AL16UTF16