原因: PLSQL乱码问题皆是ORACLE服务端字符集编码与PLSQL端字符集编码不一致引起。类似乱码问题都可以从编码是否一致上面去考虑。
解决:
-
查询Oracle服务端字符集编码,获取NLS_CHARACTERSET字段值: 执行 sql代码
select * from v$nls_parameters 保存查询到的值,如:NLS_CHARACTERSET = ZHS16GBK -
查询Oracle服务端语言信息: 执行 sql代码
SELECT 'AMERICAN_AMERICA.' || PROPERTY_VALUE FROM DATABASE_PROPERTIES 保存查询到的值,如:AMERICAN_AMERICA.ZHS16GBK -
设置本地环境变量。(PLSQL优先从环境变量中获取属性) 右击 我的电脑 -> 属性 -> 高级系统设置 -> 高级 -> 环境变量 -> 系统变量-> 新建系统变量 新增如下两条记录: NLS_CHARACTERSET = ZHS16GBK NLS_LANG = AMERICAN_AMERICA.ZHS16GBK