本人在工作中需要把開發上的庫恢復到自己的虛擬機里面,然而搗鼓了許久建立好數據庫之后,在使用建表語句初始化表的時候,發現注釋都是?????
然后一臉懵逼不知何解,網上一大堆是說修改環境變量
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
然而我瞅了一眼我的環境變量,有這個玩意兒,我就納悶了。
后來看到一位攻城獅的一篇文章,彩筆才恍然明白。
查看oracle數據庫字符集:
select userenv('language') from dual;
查看oracle數據庫的編碼
select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';
查詢結果:
SIMPLIFIED CHINESE_CHINA.AL32UTF8
解決方法如下:
修改oracle數據庫字符集:(在shell命令下SQL Plus中)
1.打開dos窗口,以sysdba的身份登錄上去
[oracle@localhost ~]$ sqlplus / as sysdba;
sql> connect / as sysdba;
2.關閉數據庫
sql> shutdown immediate;
3.以mount打開數據庫
sql> startup mount;
4.設置session
sql> alter system enable restricted session;
system altered.
sql> alter system set job_queue_processes=0;
system altered.
sql> alter system set aq_tm_processes=0;
5.啟動數據庫
sql> alter database open;
6.修改字符集
sql> alter database character set internal_use UTF8;
7.關閉,重新啟動
sql> shutdown immediate;
sql> startup;