Chinaunix首页 | 论坛 | 博客
  • 博客访问: 565585
  • 博文数量: 136
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 1343
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 23:18
文章分类

全部博文(136)

文章存档

2011年(28)

2009年(60)

2008年(48)

我的朋友

分类: Oracle

2011-04-29 10:39:49

这个问题是我曾经在使用中遇到的,在网上搜了一下,发现很多人都遇到过,并且也说明了很多解决方法。引起这个问题是有很多种可能的,现在我将在网上收集的资料结合我自己的解决经验总结一下,希望对大家有帮助。

我用的是oracle10.2

问题的出现牵涉到一个字符集的概念,先做个简要介绍,深入的知识就自己google吧

影响oracle数据库字符集最重要的参数是NLS_LANG参数。它的格式如下:
NLS_LANG = language_territory.charset
它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:
Language 指定客户端消息的语言,territory 指定客户端的日期和数字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK

查看客户端字符集参数:select * from nls_session_parameters;

在网上介绍的很多方法只能适用一次,再次登录数据库后,又需要修改。

在windows下直接修改注册表可达到一劳永逸的效果:(建议修改前请关闭数据库)

Regedit.exe--HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\NLS_LANGUAGE

如果是默认安装oracle的话,NLS_LANGUAGE这一项的值应该是SIMPLIFIED CHINESE_CHINA.ZHS16GBK(属于中文环境)
双击修改其值为:AMERICAN_ AMERICA.ZHS16GBK (英文环境)

重启数据库问题解决。

注:US7ASCII是ZHS16GBK的子集,至于选择哪个字符集,依据自身需要。

阅读(3458) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~