plsql往oracle数据库插入中文后变为问号 和 启动plsql时提示nls_lang在客户端不能确定的解决办法.doc

plsql往oracle数据库插入中文后变为问号 和 启动plsql时提示nls_lang在客户端不能确定的解决办法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
plsql往oracle数据库插入中文后变为问号 和 启动plsql时提示nls_lang在客户端不能确定的解决办法

PL/SQL向Oracle数据库输入中文后变为问号 和 启动PL/SQL时提示NLS_LANG在客户端不能确定的解决办法 工作需要,最近在VM虚拟机里安装了Redhat Linux系统,并在Redhat里安装了Oracle10.5,接着在本地Win7系统里,通过安装Oracle Instant Client客户端和PL/SQL Developer工具,来访问Oracle进行SQL操作。但一直遇到一个很奇怪的问题,通过PL/SQL Developer工具,不管是通过Insert into 插入的,或者通过菜单:工具-ODBC导入器导入的数据,只要包含中文的值,查询时都显示其变为“?”问号了(图1)。 图 1 上网了解到这跟字符集有关,Oracle安装和导入数据时,需要Oracle的Server服务器、Client客户端以及安装环境三者的字符集编码一致,否则就会出现乱码问题。如下图2所示,Oracle数据库的区域语言、字符集和安装环境的区域语言、字符集设置不一致,导致Oracle中文提示变为乱码: 图 2 通过语句: Select * from V$NLS_PARAMETERS where PARAMETER=NLS_CHARACTERSET; Select USERENV(LANGUAGE) from DUAL; 可以查询到Oracle服务器正在使用是什么字符集; 通过查找注册表:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\里,NLS_LANG的具体键值即可知道客户端使用的字符集(图3)。 图 3 一开始检查到Oracle服务端和客户端使用的字符集不一,于是将服务端的字符集改成ZHS16GBK以保持跟客户端的一致,但输入中文以后测试发现问题还是没解决。 继续上网寻找解决办法,了解到PL/SQL Developer可以设置使用的字符集,在菜单:工具-首选项里,可能因为版本问题找了一遍没发现,倒是发现在菜单:首选项-Oracle里有一项:检查客户及与服务器字符集是否匹配(图4),马上将其勾选,确定保存后退出PL/SQL Developer,再重新打开。 这时又提示:“NLS_LANG在客户端不能确定,字符集转变将造成不可预期的后果”(图5)。 图 4 图 5 根据网上提示,打PL/SQL Developer工具的:帮助-支持信息-信息 选项卡里进行检查,在“Character Sets”下面,有一项是:“NLS_LANG”,其值为空(图6),但上面已经检查过注册表NLS_LANG项的键值是正确的,这说明PL/SQL Developer工具没加载到注册表的信息。 图 6 看来得添加环境变量了,如下图SIMPLIFIED CHINESE_CHINA.ZHS16GBK)填进去即可,然后退出PL/SQL Developer再重新打开登陆进Oracle。 图 7 使用echo命令能看到环境变量设置成功(图8),加载成功的结果也可以在PL/SQL Developer的帮助中看到(图9): 图 8 图 9 重新向Oracle数据库中插入中文再查询,应该不会再变为问号了! 此时,如果本地PL/SQL Developer操作远程数据库的话,提示是中文的: 10 如果提示是英文的话,就得看看远程数据库系统变量是什么的了 图 11 关于,涉及到了几个表:V$NLS_PARAMETERSV$NLS_VALID_VALUES(可用的字符集),NLS_DATABASE_PARAMETERS,NLS_INSTANCE_PARAMETERS 图 12

文档评论(0)

gshshxx + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档