之前处理过一次Oracle数据库的乱码问题,后来系统升级成微服务,数据库管理员那边做的新库,由于测试环境录入的都是非生僻字,最近才由测试发现,在测试环境又出现了生僻字乱码问题。

处理方案:

1.查询当前数据库的编码格式

select userenv('language') from dual;

2.修改当前server的编码格式为ZHS32GB18030

在数据库服务器上,以dba权限进入数据库
sqlplus / as sysdba 
关闭数据库
SHUTDOWN IMMEDIATE;
以独占方式启动实例
STARTUP MOUNT EXCLUSIVE;
 限制外部链接
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 INTERNAL_USE CHINESE_CHINA.ZHS32GB18030;
再次关闭数据库
SHUTDOWN IMMEDIATE;
 启动数据库
STARTUP;

3.数据库更新一个生僻字

正常显示,问题解决

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐