1、修改数据库字符集,如果登录的客户端与服务器不在同一服务器,则建议两边字符集保持一致。
查看客户端字符集:
select * from v$nls_parameters
NLS_LANGUAGE #字体
NLS_TERRITORY #地区
NLS_CHARACTERSET #字符集
环境变量nls_lang便是由这三部分组成格式:字体 地区.字符集
比如:
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
查看服务器字符集:
select sys_context('userenv', 'language') from dual
2、修改客户端字符集
修改注册表,win+R,输入regedit,进入注册表;找到以下路径HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ORACLE\KEY_OraDb11g_home2
(注意:KEY_OraDb11g_home2与自己要修改的数据库对应)
找到NLS_LANG,
右键,修改数值数据,修改为客户端/服务器对应的字符集(用第一步方法查询);保存,关闭。
3、改服务器端字符集
进入oracle的sqlplus窗口,登录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 internal_use utf8; #强制转换编码格式,有可能会导致数据库中的中文变成乱码
shutdown immediate;
>startup; #重启oracle
————————————————————————————————————
参考:
https://blog.csdn.net/laukicn/article/details/60962052
https://blog.csdn.net/chenwang2018/article/details/75051482