ORACLE字符集簡介
ORACLE字符集設定,分為資料庫字符集和客戶端字符集環境設定。
在資料庫端,字符集在建立資料庫的時候設定,並儲存在資料庫props$表中。
對於8i以上產品,已經可以採用“Alter database character set 字符集”來修改資料庫的字符集,但也僅僅是從子集到超集.
注意:
不要透過update props$來修改字符集,如果是不支援的轉換,可能會失去所有與字符集有關的資料,就是支援的轉換,也可能導致資料庫的不正常工作。
在客戶端的字符集環境比較簡單,主要就是環境變數或登錄檔項NLS_LANG。
注意:
NLS_LANG的優先順序別為:引數檔案、登錄檔、環境變數、alter session。
NLS_LANG的組成為“國家語言設定.字符集”,如nls_lang=simplified chinese_china.zhs16gbk。
建議:
客戶端的字符集最好與資料庫端一樣(國家語言設定可以不一樣,如zhs16gbk的字符集,客戶端可以是nls_lang =simplified
chinese_china.zhs16gbk或Ameircan_America.zhs16gbk,都不影響資料庫字元的正常顯示),
如果字符集不一樣,而且字符集的轉換也不相容,那麼客戶端的資料顯示與匯出/匯入的與字符集有關的資料將都是亂碼。
資料庫端字符集的檢查方法
以sys使用者登陸資料庫,檢查props$表,使用語句如下:
SELECT * FROM PROPS$ WHERE NAME='NLS_CHARACTERSET';
示例:
SQL> COLUMN NAME FORMAT A20
SQL> COLUMN VALUE$ FORMAT A20
SQL> COLUMN COMMENT$ FORMAT A20
SQL> SELECT * FROM PROPS$ WHERE NAME='NLS_CHARACTERSET';
NAME VALUE$ COMMENT$
-------------------- -------------------- --------------------
NLS_CHARACTERSET AL32UTF8 Character set
字符集修改方法
如果資料庫字符集不是AL32UTF8,需要修改,否則影響很多應用程式的正常使用。
修改方法如下:
一、使用Alter database character set修改資料庫字符集
這個語句僅僅用於ORACLE8i以上版本,並且是子集到超集的修改。
如utf8修改到al32utf8.
示例:Alter database character set AL32UTF8;
具體步驟如下:
1、關閉資料庫。
可以使用shutdown immediate語句。
2、資料庫全備份。
由於the ALTER DATABASE CHARACTER SET 語句不可以回滾,如果出錯,資料庫就廢掉了。
3、修改字符集
以sys使用者登陸資料庫,在sqlplus中執行下列語句:
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET new_character_set;
SHUTDOWN IMMEDIATE;
STARTUP;
alter system SET JOB_QUEUE_PROCESSES=10;
ALTER SYSTEM SET AQ_TM_PROCESSES=1;
二、重新建庫
如果不能使用語句修改字符集,則只有重新建立資料庫了。
使用exp匯出所有的已經建立的使用者,再重新建立一個資料庫,其字符集需要定義為AL32UTF8。
使用imp匯入各個使用者。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22403494/viewspace-1029982/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle字符集介紹Oracle
- Oracle資料庫字符集介紹Oracle資料庫
- 教妹學Java(十):Unicode字符集簡介JavaUnicode
- Oracle Text簡介Oracle
- Oracle:srvctl 簡介Oracle
- Oracle:PGA 簡介Oracle
- Oracle程式簡介Oracle
- Oracle MTS簡介Oracle
- oracle9,10修改字符集--簡單方法Oracle
- Oracle PSU 簡介Oracle
- Oracle Data Guard簡介Oracle
- Oracle:RAC 程式簡介Oracle
- ORACLE監聽簡介Oracle
- Oracle約束簡介Oracle
- Oracle NOSQL DATABASE簡介OracleSQLDatabase
- oracle“SQL Trace”簡介OracleSQL
- 簡介oracle檢視Oracle
- Oracle字符集Oracle
- Oracle 字符集Oracle
- Oracle PL/SQL塊簡介OracleSQL
- 2.5.1. Oracle net簡介Oracle
- Oracle的service功能簡介Oracle
- oracle驗證方式簡介Oracle
- ORACLE temp表的簡介Oracle
- oracle lob 簡單介紹Oracle
- oracle ovm deploycluster工具簡介Oracle
- OFS(Oracle Fail Safe)簡介OracleAI
- 轉載:Oracle RAC簡介Oracle
- oracle資料字典簡介Oracle
- Oracle基礎工具簡介Oracle
- oracle Export and Import 簡介(轉)OracleExportImport
- Oracle鎖簡單介紹Oracle
- ORACLE 鎖簡單介紹Oracle
- Oracle Scheduler(1)用法簡介Oracle
- oracle 字符集錯誤情況處理簡單方法Oracle
- linux 字符集和oracle 字符集LinuxOracle
- Oracle字符集和國家字符集Oracle
- Oracle 字符集修改Oracle