最近在学习Oracle,PLSQL Developer进行简单查询时,发现输出的查询结果,显示问号。
我的查询语句是(学习使用的oracle自带的emp表):
select
'雇员编号是:'||empno||'的雇员姓名是:'||ename as emp_info
from
emp;
如下图所示:
首先,我们说下产生中文乱码,也就是问号的原因,Oracle服务器端字符编码和Oracle客户端字符编码不一致,就会导致PL/SQL中文乱码问题。在这种情况下,服务器端和客户端之间传输的数据可能无法正确地转换为正确的字符编码,从而导致中文乱码。为了解决这个问题,需要确保服务器端和客户端使用相同的字符编码。可以在Oracle服务器端和客户端中设置相同的字符编码,或者使用一些工具来转换数据的字符编码,以确保数据能够正确地传输和显示。
解决plsql 中文乱码步骤如下:
1、添加系统变量 “NLS_LANG”,设置其值为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
2、重新启动 plsql developer。
需要注意的是:操作之前的乱码就是乱码了,无法改变,这个操作之后,重新插入的值,才会正确显示,也就是该操作只针对以后的插入中文字符有效,之前的依然会乱码,所以对于之前的操作可以重新插入执行下。