1. 程式人生 > >修改oracle字符集

修改oracle字符集

命令 lose mac registry ase lte shu sql utf

最近在做項目中 遇到了oracle數據庫中查出來漢字全是亂碼,因為字符集不一致,所以要修改自己oracle的字符集,具體步驟如下:

通過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;

執行上面這行可能會報錯:
ALTER DATABASE CHARACTER SET ZHS16GBK ERROR at line 1:

ORA-12712: new character set must be a superset of old character set
解決辦法:
>ALTER DATABASE character set INTERNAL_USE utf8;

>shutdown immediate;

>startup; (重開正常oracle)

最後在註冊表找到:
HKEY_LOCAL_MACHINE -> SOFTWARE ->Oracle->KEY_XE-> 右邊窗體點擊 NLS_LANG -> 將目標字符集寫在裏面即可 "AMERICAN_AMERICA.UTF8" ->OK ->CLOSE REGISTRY
重啟監聽和服務

修改oracle字符集