oracle字符集乱码问题解决方法

oracle字符集乱码问题解决方法

ID:32821102

大小:90.33 KB

页数:4页

时间:2019-02-16

oracle字符集乱码问题解决方法_第1页
oracle字符集乱码问题解决方法_第2页
oracle字符集乱码问题解决方法_第3页
oracle字符集乱码问题解决方法_第4页
资源描述:

《oracle字符集乱码问题解决方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Oracle汉字乱码问题原因及解决方法目录问题现象1问题原因1解决办法3问题现象在开发项目中一直使用的是PostgreSQL,&装方便使用与oracle类似,但是由于性能相比较Oracle还是会差不少,所以一些数据最比较大的项目还是会用到Oracle数据库,但是在安装数据库以后发现中文数据在数据库中会产牛•乱码,使用PISql查询依然也是乱码。如下图所示:S3——计裘问题原因Oracle屮出现屮文乱码的主要原因是字符集不同。Oracle屮对于字符集來说我们关心三个地方的字符集:•Oracle服务器内部的字符集•NLS_LANG变量里保存的字符集•客户端应用的字符集Oracle服务器内

2、部的字符集Oracle服务器内部的字符集是Oracle数据库存储数据使用的字符集,可以使用如下的查询语句査询Selectuserenv(*language1)fromdual;或者:Selectname,value$fromprops$;NLS_LANG变量里保存的字符集NLS_LANG这个是Oracle设置的一个变虽,在Windows屮,这个变量保存在注册表屮:HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOMEO保存着NLS_LANG变量。在Unix/Linux中,则需要自己进行设置了。可以在.profile里面加上NLS_LANG=AMERICAN_A

3、MERICA.ZHS16GBKexportNLS_LANG客户端应用的字符集Oracle客户端使用比较多的是PLSQLDeveloper当然目前plsql客户端还不能很好的支持64为的Oracle当然可以下载Oracle官方的客户端再通过关联可以使用plsql连接上64位的Oracle数据库,这与本文主题略有偏离便不详细描述了。如果Oracle服务器内部的字符集和NLSJANG变量里保存的字符集相同,在进行Oracle査询时,就会将Oracle中的数据直接査出来,返回给査询用户。进彳亍Oracle的插入操作,就会直接将插入的数据保存进数据库中。但是如果不同的话,Oracle查询时,会

4、根据这两个字符集的一个映射,将数据库中的数据作一个转换,再返回给查询川户。进行插入操作时,也会根据映射,将插入的数据作一个转换,再插入数据库。这也是产生乱码的原因,这一层转换,把数据都给转乱了。解决办法通过上述分析,我们只需要将数据库的字符集和NLS.LANG字符集设置的—•样,就可以避免乱码的出现了,当然在Orac1e中支持中文盂要将数据库字符集修改成:ZHS16GBK即可。修改数据库字符集的步骤如下:1、拥有修改权限(用管理用户登录)。SQL>connsys/sysassysdba;2、关闭数据库。SQL>shutdownimmediate;3、启动数据库到Mount状态下。SQ

5、L〉STARTUPMOUNT;ORACLEinstancestarted•TotalSystemGlobalArea76619308bytesFixedSizeVariableSizeDatabaseBuffersRedoBuffers454188bytes58720256bytes16777216bytes667648bytesDatabasemounted.SQL〉ALTERSESSIONSETSQL_TRACE=TRUE;Sessionaltered.SQL>ALTERSYSTEMENABLERESTRICTEDSESSION;Systemaltered.SQL>ALTERSY

6、STEMSETJOB_QUEUE_PROCESSES=0;Systemaltered.SQL>ALTERSYSTEMSETAQ_TM_PROCESSES=0;Systemaltered.4、启动数据库SQL>Alterdatabaseopen;5、修改字符集SQL>ALTERDATABASECHARACTERSETZHS16GBK;注:(如果修改失败,则可能是如下原因引起的)1.如果数据库表中有CLOB类型的列,是不允许修改字符集的,解决方法为,先导出这个表的内容,然后删除这个表,修改完后,再导入这个表的内容就可以了。2.旧的字符集必须是新的字符集的子集,否则不能修改。修改完后,可以

7、查看一下修改是否成功。6、关闭数据库SQL>Shutdownimmediate;7、重新启动数据库SQL>startup;经过设宜完Oracle字符集后,一般的乱码问题应该解决掉了。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。