oracle國家字符集與資料庫字符集
oracle國家字符集與資料庫字符集
伺服器端:(oracle伺服器端字符集)
資料庫字符集在建立資料庫時指定,在建立後通常不能更改。在建立資料庫時,可以指定字符集(CHARACTER SET)和國家字符集(NATIONAL CHARACTER SET)。
1. 字符集:
(1)用來儲存CHAR, VARCHAR2, CLOB, LONG等型別資料
(2)用來標示諸如表名、列名以及PL/SQL變數等
(3)用來儲存SQL和PL/SQL程式單元等
2. 國家字符集:
(1)用以儲存NCHAR, NVARCHAR2, NCLOB等型別資料
(2)國家字符集實質上是為oracle選擇的附加字符集,主要作用是為了增強oracle的字元處理能力,因為NCHAR資料型別可以提供對亞洲使用定
長多位元組編碼的支援,而資料庫字符集則不能。國家字符集在oracle9i中進行了重新定義,只能在unicode編碼中的AF16UTF16和UTF8
中選擇,預設值是AF16UTF16
3. 查詢字符集引數:
可以查詢以下資料字典或檢視檢視字符集設定情況
nls_database_parameters、props$、v$nls_parameters
查詢結果中NLS_CHARACTERSET表示字符集,NLS_NCHAR_CHARACTERSET表示國家字符集
4. 修改資料庫字符集:
按照上文所說,資料庫字符集在建立後原則上不能更改。如果需要修改字符集,通常需要匯出資料庫資料,重建資料庫,再匯入資料庫資料的方式來轉換,或透過
ALTER DATABASE CHARACTER
SET語句修改字符集,但建立資料庫後修改字符集是有限制的,只有新的字符集是當前字符集的超集時才能修改資料庫字符集,例如UTF8是US7ASCII
的超集,修改資料庫字符集可使用ALTER
客戶端:(NLS_LANG引數)
客戶端字符集定義了客戶端字元資料的編碼方式,任何發自或發往客戶端的字元資料均使用客戶端定義的字符集編碼,客戶端可以看作是能與資料庫直接連線的各種應用,例如sqlplus,exp/imp等。客戶端字符集是透過設定NLS_LANG引數來設定的。
國家字符集的不同:(AL16UTF16與UTF-8)
1. AL16UTF16 和 UTF8 這兩種選擇都適用於國家字符集
2. AL16UFT16 是寬度固定的雙位元組 Unicode 字符集;UTF8 是寬度可變的、一至三個位元組的 Unicode 字符集
3. 歐洲字元在 UTF8 中按一至兩個位元組儲存,而在 AL16UTF16 中按兩個位元組儲存,相比之下,UTF8可以節省空間;亞洲字元在 UTF8 中按三個位元組儲存,這樣,所需的空間比在 AL16UTF16 中要多
4. AL16UTF16 是寬度固定的編碼,因此在執行速度上要比寬度可變的 UTF8 快
如果使用EXP/IMP進行資料庫的匯出/匯入,不僅要注意兩伺服器端之間的字符集的相容性,而且要考慮到匯出/匯入過程中,伺服器端與客戶端之間的字符集的相容性,特別是匯出的時候。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-2120374/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle字符集和國家字符集Oracle
- oracle10g_csscan_更變資料庫字符集及國家字符集的工具測試OracleCSS資料庫
- 修改Oracle資料庫字符集Oracle資料庫
- oracle資料庫字符集資訊Oracle資料庫
- 修改Oracle資料庫字符集(zt)Oracle資料庫
- oracle資料庫的字符集更改Oracle資料庫
- 檢視oracle資料庫字符集Oracle資料庫
- Oracle資料庫字符集介紹Oracle資料庫
- Oracle資料庫字符集問題Oracle資料庫
- Oracle資料庫字符集淺析Oracle資料庫
- 「Oracle」資料庫字符集編碼修改Oracle資料庫
- Oracle資料庫字符集問題解析Oracle資料庫
- 巧妙轉換ORACLE資料庫字符集Oracle資料庫
- oracle資料庫字符集的轉換Oracle資料庫
- Oracle資料庫字符集分析之一Oracle資料庫
- Oracle為什麼需要國家字符集及相應的資料型別Oracle資料型別
- 修改資料庫字符集資料庫
- Oracle修改資料字符集Oracle
- Oracle資料庫字符集的全面認識Oracle資料庫
- oracle11g更改資料庫字符集Oracle資料庫
- Oracle資料庫字符集問題解析(轉)Oracle資料庫
- 關於資料庫字符集資料庫
- 修改資料庫字符集(轉)資料庫
- (轉載)Oracle資料庫字符集問題解析Oracle資料庫
- Oracle 11g rac資料庫字符集轉換Oracle資料庫
- [轉載]Oracle資料庫字符集問題解析3Oracle資料庫
- [轉載]Oracle資料庫字符集問題解析2Oracle資料庫
- [轉載]Oracle資料庫字符集問題解析1Oracle資料庫
- Oracle資料庫字符集問題解決方案大全Oracle資料庫
- 怎樣修改資料庫字符集資料庫
- 【字符集】“客戶終端字符集”、“NLS_LANG”環境變數以及“資料庫字符集”變數資料庫
- oracle資料庫字符集設定的查詢語法Oracle資料庫
- 修改oracle9i資料庫字符集的方法(轉)Oracle資料庫
- 遷移資料時oracle字符集的轉換遷移資料時oracle字符集的轉換Oracle
- 資料庫字符集的選擇(轉)資料庫
- 檢視引數(parameter)的字典與資料庫字符集資料庫
- mysql 5 資料庫匯出與字符集的問題。MySql資料庫
- linux 字符集和oracle 字符集LinuxOracle