linux下的远程数据库(Oracle)中文乱码问题

时间:2021-01-22 20:24:54

适用于本地客户端(PLSQL Developer )访问远程数据库时,查询结果出现的乱码,当在远程数据库上查询结果时显示正常。

1.查询远程数据库的编码:

   select userenv('language') from dual;

若查询结果为:

userenv('language')
AMERICAN_AMERICA.AL32UTF8
或是SIMPLIFIED CHINESE_CHINA.ZHS16GBK

 

2.复制编码内容,在数据库服务器上执行如下代码(注意/home/运行oracle数据库的账户/.bash_profile):

vim /home/oracle/.bash_profile 

3.添加红色背景内容(注意“NLS_LANG”后为数据库字符编码):

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH 
ORACLE_SID=dwdb; export ORACLE_SID
ORACLE_UNQNAME=zjswkjhs; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; export NLS_DATE_FORMAT
PATH=${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

4.客户端本地新建环境变量:

linux下的远程数据库(Oracle)中文乱码问题

重启服务器,及PLSQL Developer客户端即可。