标签:语句 NLS plsql 乱码 sql select 问号
问题描述:
1、打开 plsql,执行 sql 语句,中文显示乱码:
---查询表中记录
select * from person;
解决办法:
1)查看服务器端编码
输入 sql 语句: select userenv('language') from dual -- 查看数据库字符集
我实际查到的结果为:AMERICAN_AMERICA.ZHS16GBK
2)执行 sql 语句 :select * from V$NLS_PARAMETERS -- 查看本地字符集
查看第一行中PARAMETER项中为NLS_LANGUAGE 对应的VALUE项中是否和第一步得到的值一样。如果不是,需要设置环境变量,否则PLSQL客户端使用的编码和服务器端编码不一致,插入中文时就会出现乱码.
我实际查到的为AMERICAN
3)设置环境变量
计算机->属性->高级系统设置->环境变量->新建
设置变量名:NLS_LANG,变量值:第1步查到的值,(这里的变量值需要与数据库服务器相同) 我的是 AMERICAN_AMERICA.ZHS16GBK
4)重新打开 plsql,执行 sql 语句,问题解决
过程中遇到的问题:
注:当完成以上4个步骤时,查询原来的记录还是问号????,只有新插入的记录才会正常显示。不知道这个怎么解决?
标签:语句,NLS,plsql,乱码,sql,select,问号 来源: https://www.cnblogs.com/ivint/p/15405105.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。