1. 程式人生 > >Oracle 設定字符集

Oracle 設定字符集

AL32UTF8字符集不是一種可(顯示/輸入)的語言字符集,是一種用於儲存的字符集,支援全世界主要的文字語言編碼。
AL32UTF8為ZHS16GBK的超集。


NLS_LANG應該設定成系統本身所使用的語言字符集,與資料庫語言字符集進行轉換。
1. 從AL32UTF8伺服器將資料匯出,匯出前先設定 NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"。
2. 從ZHS16GBK伺服器將資料匯入,匯入前先設定 NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"。


檢視資料庫字符集
SQL> select * from v$nls_parameters;
SQL> select userenv('language') from dual;


檢視系統字符集
Windows:
cmd -> echo %NLS_LANG%
Linux:
$ locale


設定資料庫字符集
SQL> conn /as sysdba;
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 internal_use ZHS16GBK;
SQL> alter system set nls_language = 'AMERICAN' scope = spfile;
SQL> alter system set nls_territory = 'AMERICA' scope = spfile;
SQL> shutdown immediate;
SQL> startup;


設定系統字符集
Windows:
我的電腦 -> 屬性 -> 高階 -> 環境變數
NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
Linux:
$ export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"