修改DB的原因是:因?yàn)槲业腄B不支持中文,所以每當(dāng)我向數(shù)據(jù)庫表中插入一條數(shù)據(jù)的時(shí)候,中文就都變了類似于“?(是反問號)”的亂碼,為了能順利插入成功,故做了此次修改;
系統(tǒng):windows XP 英文版
Oracle DB version: 10.2.0.1.0
獲取DB的最初的編碼: select userenv('language') from dual;
AMERICAN_AMERICA.WE8MSWIN1252
修改方法(以改成UTF8為例)
修改注冊表:
regedit--->打開注冊表:
HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/key_XE
雙擊NLS_LANG, 修改其值為UTF8
然后 運(yùn)行-->Cmd -- > sqlplus-->
以高級管理員的權(quán)限登錄進(jìn)去
sqlplus sys/oracle as sysdba
--conn as sysdba/
---username: sysdba;
password: admin(以個人電腦為主);
首先查看一下你DB的編碼 select userenv('language') from dual;
然后一句一句執(zhí)行以下代碼:
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
SQL> alter database open;
SQL> alter database character set internal_use AL32UTF8(或者是UTF8);
SQL> shutdown immediate;
SQL> startup
SQL>alter system disable restricted session;
注意: 執(zhí)行完別忘記了執(zhí)行最后一句,否則可能后續(xù)很多事情都做不了
以上如果都執(zhí)行成功后,可再次查詢DB編碼 select userenv('language') from dual;
我的查詢結(jié)果為:AMERICAN_AMERICA.AL32UTF8
證明DB的編碼已改為UTF-8了;
經(jīng)過第二次測試,不用修改注冊表似乎也可修改成功??!
修改成功!