在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输出中文时不会出现中文乱码。
原因:客户端和服务器端数据库编码不一致造成的.
解决办法:修改客户端的编码的变量(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输出中文时不会出现中文乱码。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29196873/viewspace-1068107/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29196873/viewspace-1068107/