Centos8 Linux Oracle 19c显式乱码,简单好用的解决方法
解决显式乱码的一点体会,一招鲜,吃遍天
只要保证以下三者编码一致,就能解决中文,英文时间、特殊符号等乱码问题:
Oracle 服务端
Oracle 客户端
客户端所在的系统环境(会话环境)
1、查询 Oracle 服务端编码
select * from nls_database_parameters;
结果:
2、查询 Oracle 客户端编码
select userenv('language') from dual;
结果:
3、查询客户端所在的系统环境(会话环境)
1)、登录 Centos 8 Linux 上的 Oracle 账户,在终端执行如下指令
locale
结果:
4、修改
修改原则:以服务端编码为准,修改客户端和会话环境编码。
原因:不建议修改服务端的编码,一是麻烦容易出错,甚至都不如重装省事,二是,即使修改成功也有可能发生一些莫名其妙的错误。
修改步骤:
1)、修改配置文件
在 oracle 账户终端编辑 .bash_profile ,添加如下内容(根据你查到的服务端编码作修改):
指令:
vim ~/.bash_profile
添加以下内容:
NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_LANG
:wq 保存退出
重新解析配置文件:
source ~/.bash_profile
2)、修改终端编码
至此,基本可以解决大部分的显式乱码问题。