PLSQL中⽂插⼊乱码问题解决⽅法
1.查看服务器端编码
plsql developer导入数据PLSQL输⼊以下代码
userenv('language') from dual;
我实际查到的结果为:AMERICAN_AMERICA.AL32UTF8
2.
执⾏语句 select * from V$NLS_PARAMETERS
查看第⼀⾏中PARAMETER项中为NLS_LANGUAGE 对应的VALUE项中是否和第⼀步得到的值⼀样。
如果不是,需要设置环境变量.
否则PLSQL客户端使⽤的编码和服务器端编码不⼀致,插⼊中⽂时就会出现乱码.
3.
设置环境变量(⼀定要设置)
计算机->属性->⾼级系统设置->环境变量->新建
设置变量名:NLS_LANG,变量值:第1步查到的值(我的是AMERICAN_AMERICA.AL32UTF8).
4.
重新启动PLSQL,插⼊数据正常
补充:PL/SQL导⼊数据到另⼀数据库乱码
导⼊数据库为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK;
导出数据库为: AMERICAN_AMERICA.AL32UTF8
为了⽅便解决此问题,所以就修改了导⼊数据库所使⽤的语⾔跟字符集.
开始菜单打开运⾏对话框,使⽤”regedit“命令进⼊注册表,到我的电脑下的:HKEY_LOCAL_MACHINE/SOFTWARE
/ORACLE/KEY_OraDb11g_home1(此路径为oracle在注册表中的配置信息),
查看名称为NLS_LANG的值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,修改成AMERICAN_AMERICA.AL32UTF8,
5.
再重启下PLsql就好了