一、改客戶端字符集:經過WINDOWS的運行菜單運行Regedit,修改註冊表mysql
Start -> Run -> Rededit <-|sql
Under registry Editor - > HKEY_LOCAL_MACHINE -> SOFTWARE ->Oracle->KEY_XE->RIGHT WINDOW DOUBLE CLICK NLS_LANG -> CHANGE VALUE TO "AMERICAN_AMERICA.UTF8" ->OK ->CLOSE REGISTRY數據庫
正確設置oracle客戶端字符集的方法:服務器
oracle客戶端字符集設置須要和服務器端一致,不然會出現亂碼問題。session
首先鏈接服務器,查詢服務器端設置:oracle
select * from v$nls_parameters;編碼
找到:.net
NLS_LANGUAGErest
NLS_TERRITORYget
NLS_CHARACTERSET
環境變量nls_lang即是由這三部分組成
NLS_LANG = language_territory.charset
好比:
NLS_LANG = American_Japan.JA16SJIS
二、改服務器端字符集,經過ORACLE的SQL PLUS命令窗口改
在SQL*PLUS 中,以DBA登陸
conn 用戶名 as sysdba
而後執行如下命令
>shutdown immediate; (把database停了)
>startup mount; (把database重開去可更改情況)
>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 utf8;
OR
>alter database character set internal_use utf8;(這條命令是強制轉換編碼格式,有可能會致使數據庫中的中文變成亂碼)
>shutdown immediate;
>startup; (重開正常oracle)
ORACLE數據庫字符集修改完成!
數據庫服務器字符集select * from nls_database_parameters,其來源於props$,是表示數據庫的字符集。
客戶端字符集環境select * from nls_instance_parameters,其來源於v$parameter,