首先说一下乱码可能会导致的问题:
使用insert、update语句修改表数据,create、alter语句创建修改表格备注会乱码
使用decode、nvl等函数时含有中文返参会乱码
存储过程、Function中有中文编译时都会乱码,甚至备注都会乱码
导致乱码的原因:
PLSQL客户端和ORACLE服务器端编码不一致
解决办法:
步骤1:查询oracle服务端编码格式
select userenv('language') from dual;
步骤2:执行语句 select * from V$NLS_PARAMETERS
如果不是一样的需要设置环境变量
步骤3:设置环境变量
此电脑 => 属性 => 高级系统设置 => 环境变量
在系统变量中设置一个变量,变量名:NSL_LANG,变量值:和步骤1查出来的一样
步骤4:设置完之后重启PLSQL,重新插入数据、编译正常,但是已经造成乱码的只能手动修改