本人在工作中需要把开发上的库恢复到自己的虚拟机里面,然而捣鼓了许久建立好数据库之后,在使用建表语句初始化表的时候,发现注释都是?????
然后一脸懵逼不知何解,网上一大堆是说修改环境变量
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;