oracle 输出中文乱码问题解决方案

在plsql中使用DBMS_OUTPUT.PUT_LINE输出时,如果有中文,会出现乱码。

原因:客户端和服务器端数据库编码不一致造成的.

解决办法:修改客户端的编码的变量(NLS_LANG)
1. 查看服务器端编码
select tab1.aa || '_' || tab2.bb || '.' || tab3.cc
  from (select VALUE$ aa from sys.props$ where name = 'NLS_LANGUAGE') tab1,
       (select VALUE$ bb from sys.props$ where name = 'NLS_ISO_CURRENCY') tab2,
       (select VALUE$ cc from sys.props$ where name = 'NLS_CHARACTERSET') tab3;

2. 查看windows中oracle客户端的编码
使用windows命令:regedit.exe,到下面指定路径查找客户端编码
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraDb11g_home1
找到NLS_LANG变量,替换为第一步查询服务器端编码。

3. 重新启动客户端,再次使用DBMS_OUTPUT.PUT_LINE输出中文时不会出现中文乱码。
请使用浏览器的分享功能分享到微信等