【轉】修改Oracle字符集(character set)
本方法適用於Oracle9i, 10g以及XE. 在10.2.0.1.0下測試無錯. 需要注意的是, 使用此方法會破壞資料庫中的原有雙位元組字元. 一種辦法是先將資料庫匯出, 修改完字符集後再匯入; 另一種辦法就是不管他, 就那樣使用. 一般如果是一個測試環境, 像方法二那樣就可以了, 但是可能某些表無法讀取, 需要注意.
sql> shutdown immediate
sql> startup mount
sql> alter system enable restricted session;
sql> alter system set job_queue_processes=0;
sql> alter system set aq_tm_processes=0;
sql> alter database open;
sql> alter database character set AL32UTF8;
sql> shutdown immediate
sql> startup
這裡的INTERNAL_USE可選,譬如用於不能從父集轉到子集的場合,但是這樣做會產生亂碼,或者表中的資料不能讀取。
如果資料庫中存在CLOB欄位,那麼就不允許對字符集進行轉換,此時可以檢視alert.log檔案,把含有CLOB的表trancate.
sql> trancate table [table_name];
轉換後的資料庫字符集可以通過以下命令察看.
sql> select name, value$ from props$ where name like '%NLS%';
匯入匯出是我們常用的一個資料遷移及轉化工具,因其匯出檔案具有平臺無關性,所以在跨平臺遷移中,最為常用。
在匯出操作時,非常重要的是客戶端的字符集設定,也就是客戶端的NLS_LANG設定。
NLS_LANG引數由以下部分組成:
NLS_LANG=_.
NLS_LANG各部分含義如下:
Language
-Oracle訊息使用的語言
-日期中月份和日顯示
-Oracle訊息使用的語言
-日期中月份和日顯示
Territory
-貨幣和數字格式
-地區和計算星期及日期的習慣
-貨幣和數字格式
-地區和計算星期及日期的習慣
Clients Characterset
-控制客戶端應用程式使用的字符集
-控制客戶端應用程式使用的字符集
例如
E:\>set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
E:\>sqlplus "/ as sysdba"
E:\>sqlplus "/ as sysdba"
或者
E:\>set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
E:\>sqlplus "/ as sysdba"
E:\>sqlplus "/ as sysdba"
Windows客戶端設定,可以在登錄檔中更改NLS_LANG,具體鍵值位於:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
xx指存在多個ORACLE_HOME時系統編號。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14184018/viewspace-694495/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 10中修改字符集(character set)Oracle
- mysql關於字符集character set的總結MySql
- rhel4 mysql5.5 字符集_character setMySql
- MYSQL5.5修改字符集報錯:unknown variable 'default-character-set=utf8'MySql
- MySQL字符集和校對規則(character set & collation)MySql
- rhel5_oracle10g_10.2.0.4_字符集character set_nls_valid_valueOracle
- Qt #pragma execution_character_set("utf-8") 執行字符集QT
- Oracle 字符集修改Oracle
- 修改oracle字符集Oracle
- oracle修改字符集Oracle
- oracle字符集修改Oracle
- oracle 修改字符集Oracle
- (轉)Oracle 字符集的檢視和修改Oracle
- Oracle 字符集的檢視和修改(轉)Oracle
- oracle之修改字符集Oracle
- Unknown initial character set index ‘255‘ received from server. Initial client character set can beIndexServerclient
- Oracle修改資料字符集Oracle
- 修改oracle client 的字符集Oracleclient
- Indexing Mixed-Character Set ColumnsIndex
- character_set_database的意義Database
- 【Mysql】character-set-server引數MySqlServer
- 【nls_character】中文字元亂碼問題與字符集的修改字元
- 怎樣修改檢視Oracle字符集及怎樣修改字符集 ztOracle
- 修改Oracle資料庫字符集Oracle資料庫
- oracle 字符集檢視與修改Oracle
- 檢視和修改Oracle字符集Oracle
- Linux下修改Oracle字符集LinuxOracle
- ORACLE學習之九 Oracle 字符集的檢視和修改 (轉帖)Oracle
- 修改資料庫字符集(轉)資料庫
- oracle 字符集 (轉)Oracle
- 修改oracle9i資料庫字符集的方法(轉)Oracle資料庫
- MySQL環境變數裡關於字符集character_set相關引數的解釋MySql變數
- 檢視、修改oracle字符集,檢視oracle版本Oracle
- 修改Oracle資料庫字符集(zt)Oracle資料庫
- Oracle字符集的檢視和修改Oracle
- oracle 11g rac 修改字符集Oracle
- Oracle 字符集的檢視和修改Oracle
- 修改oracle 10g的字符集Oracle 10g