oracle服务器和客户端字符集的查看和修改
一、什么是oracle字符集
Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。
影响oracle数据库字符集最重要的参数是NLS_LANG参数。
它的格式如下: NLS_LANG = language_territory.charset
它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。
其中:
Language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK
从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。
本文对修改Oracle数据库字符集为UTF8的语句操作讲解:查看字符集selectuserenv('language')fromdual;1.conn/assysdba2.执行下面代码:SHUTDOWNIMMEDIATE;STARTUPMOUNTEXCLUSIVE;ALTERSYSTEMENABLERESTRICTEDSESSION;ALTERSYSTEMSETJOB_QUEUE_PROCESSES=0;ALTERSYSTEMSETAQ_TM_PROCESSES=0;ALTERDATABASEOPEN;(------------如果有问题请在此插入下面语句--------------)ALTERDATABASENATIONALCHARACTERSETUTF8;ALTERDATABASECHARACTERSETUTF8;SHUTDOWNimmediate;STARTUP;如果修改出现问题时请调用下面语句再执行一次就可以了ALTERDATABASENATIONALCHARACTERSETINTERNAL_USEUTF8;
总结如下:
1.数据库的查询出来的数据,是Oracle数据库字符集,Oracle客户端字符集,操作系统字符集共同作用的结果。
2.Oracle存数据和查询数据都是通过Oracle数据库的字符集和Oracle客服端的字符集进行转换的,显示数据又是根据操作系统的字符集来确定的。
3.为了避免出现乱码必须要把Oracle客户端的字符集和操作系统的字符集设置成一样的。
以DBA身份进入SQLPLUSSQLsqlplussys/sysassysdba;……SQLshutdownimmediate;SQLstartupmount;SQLaltersystemenablerestrictedsession;SQLaltersystemsetjob_queue_processes=0;SQLaltersystemsetaq_tm_processes=0;SQLalterdatabaseopen;SQLalterdatabasecharactersetinternal_useAL32UTF8;(ZHS16GBK)SQLshutdownimmediate;SQLstartup;这样就可以讲ORACLE的字符集修改为UTF8,如果需要修改为GBK只需将alterdatabasecharactersetinternal_useAL32UTF8;(ZHS16GBK)这句最后的AL32UTF8修改为ZHS16GBK即可
到此,以上就是小编对于oracle字符集不匹配是什么原因导致的的问题就介绍到这了,希望这4点解答对大家有用。
新闻标题:深入Oracle字符集的查看与修改详解?(oracle字符集不匹配如何解决)
标题链接:http://www.csdahua.cn/qtweb/news34/336634.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网