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資料庫字符集(zt)Oracle資料庫
- 「Oracle」資料庫字符集編碼修改Oracle資料庫
- Oracle 字符集修改Oracle
- 資料型別和字符集資料型別
- 如何在10g中修改資料庫字符集資料庫
- 字符集與編碼
- 更改Oracle字符集:把字符集ZHS16GBK換成UTF8Oracle
- 資料庫建庫時字符集和排序規則的選擇資料庫排序
- Oracle修改字符集前如何找出可能出現問題的資料?Oracle
- 字符集
- 不同字符集倒庫的方法
- 修改Oracle字符集為ZHS16GBKOracle
- 遷移ORACLE資料到MogDB/openGauss時的字符集問題Oracle
- Tomcat字符集Tomcat
- MySQL字符集MySql
- Oracle Linux 7設定中文字符集OracleLinux
- 深入理解Emoji(一) —— 字符集,字符集編碼
- 38、字符集_2(匯出匯入指定字符集)
- Oracle 字符集從GBK升級到Utf8Oracle
- 修改sqlserver字符集SQLServer
- 更新Linux字符集Linux
- 批次修改欄位字符集和表表字符集,sql生成SQL
- MySQL字符集亂碼與解決方案MySql
- MySQL 檢視與修改預設字符集MySql
- Oracle 12.2 新特性 | PDB不同字符集變更深入解析Oracle
- 4.2.1.4 選擇字符集
- mysql字符集說明MySql
- oracle資料庫與oracle例項Oracle資料庫
- 《Oracle MySQL程式設計自學與面試指南》05:字符集和校對集OracleMySql程式設計面試
- mysql字符集和字元排序MySql字元排序
- CentOS7.5修改字符集CentOS
- weblogic 啟動指定字符集Web
- 字符集編碼(三):UnicodeUnicode
- 字符集編碼(四):UTF
- MOGDB/openGauss與PostgreSQL關於GBK字符集問題SQL
- MOGDB/openGauss與PostgreSQL關於GDK字符集問題SQL
- MySQL 字符集與亂碼與collation設定的問題?MySql
- Oracle 12C 修改字符集為AL32UTF8研究Oracle
- iOS CharacterSet(字符集)簡單理解iOS