登陆plsql执行sql语句时,输出的内容有中文的显示成????,其原因是PLSQL没有设置中文字符集
输入sql语句select * from V$NLS_PARAMETERS查看字符集,可以查看第一行value值是否为简体中文,一般出现问题肯定不是,不过这里并不能直接更改,先不用管它,修改了系统环境变量之后,它自然就变了
![PLSQL中文乱码解决方法 - 东哥 - 东哥的博客 PLSQL中文乱码解决方法 - 东哥 - 东哥的博客](http://img1.ph.126.net/RQPxrMqRyx4QrSsz9kIxgw==/6632169476350647142.png)
修改环境变量的设置,计算机 —>属性 —>高级系统设置—>环境变量—>系统变量 查看是否有变量NLS_LANG,没有则新建该变量
变量名 :NLS_LANG
变量值 :SIMPLIFIED CHINESE_CHINA.ZHS16GBK
![PLSQL中文乱码解决方法 - 东哥 - 东哥的博客 PLSQL中文乱码解决方法 - 东哥 - 东哥的博客](http://img2.ph.126.net/BCIc8cYvLVNaWoBHXM2lew==/6631897896978588896.png)
修改注册表,依次单击HKEY_LOCAL_MACHINE --->SOFTWARE ---> ORACLE--->home (根据安装版本不同显示有差异我的是KEY_OraDb12home1),找到NLS_LANG,查看数值数据是否为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,不是就改过来
![PLSQL中文乱码解决方法 - 东哥 - 东哥的博客 PLSQL中文乱码解决方法 - 东哥 - 东哥的博客](http://img2.ph.126.net/P21MYzjMesd-aeDvTxHVBA==/6632033136908802845.png)
退出plsql,重新登陆plsql。输入sql语句,执行,中文恢复正常,不过如果插入数据在未修复之前,则插入的数据已经被损坏,就必须删除重新插入了