12
返回列表 发新帖
楼主: risepp

安装Oracle 10.2时,选择字符集为简体中文时出现乱码!!

[复制链接]
论坛徽章:
19
授权会员
日期:2005-10-30 17:05:33马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:52
11#
发表于 2005-10-26 16:33 | 只看该作者
数据库字符集一旦确定,就最好不要更改,除非是
子类->超类, 例如 US7ASCII -> UTF8

为什么要重装数据库?  用dbca创建一个字符集为
zhs16gbk的数据库就可以了.

NLS_LANG: 是个环境变量, NT 平台保存在注册表 ,或者
直接在控制台指定; UNIX平台根据不同的shell,用
export  NLS_LANG=  ...  或 setenv  NLS_LANG  ...

关于NLS_LANG具体的解释请参考官方文档
"Globalization Support Guide".

最初由 risepp 发布
[B]我安装的时候选的是简体中文,就是在装数据库的时候。
但是安装客户端时没有叫我选择语言啊。
数据库字符集和NLS_LANG 这两个参数是在什么地方控制的啊?
如何进行修改呢?
我以前看过一些帖子说过这个问题,也用他们的方法试了试,可是不行。
重装可是一件很麻烦的事情啊  :(

麻烦再帮帮忙 谢谢拉! [/B]

使用道具 举报

回复
论坛徽章:
7
会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010新春纪念徽章
日期:2010-03-01 11:06:132011新春纪念徽章
日期:2011-01-04 10:37:342011新春纪念徽章
日期:2011-02-18 11:43:342012新春纪念徽章
日期:2012-01-04 11:50:44
12#
 楼主| 发表于 2005-10-26 17:41 | 只看该作者
NLS_CHARACTERSET US7ASCII
NLS_LANGUAGE SIMPLIFIED CHINESE
最本质的原因就是这两个值不匹配是吧,可以修改这两个值使其一致么??
字符集是在安装数据库的时候指定的,NLS_LANGUAGE是受什么控制啊?客户端本身么?

使用道具 举报

回复
论坛徽章:
7
会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010新春纪念徽章
日期:2010-03-01 11:06:132011新春纪念徽章
日期:2011-01-04 10:37:342011新春纪念徽章
日期:2011-02-18 11:43:342012新春纪念徽章
日期:2012-01-04 11:50:44
13#
 楼主| 发表于 2005-10-26 17:45 | 只看该作者
我直接在控制台下设置
C:\Documents and Settings\sgw0203>set nls_lang=simplified chinese_china.zhs16gbk
;
还是不行啊。 我现在就是想不重新建库。

使用道具 举报

回复
论坛徽章:
19
授权会员
日期:2005-10-30 17:05:33马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:52
14#
发表于 2005-10-26 18:53 | 只看该作者

Explain

为什么不去看文档?  或者去数据库管理版的精华区搜索一下?

NLS_LANGUAGE这个参数是由 NLS_LANG这个环境变量继承
而来的,另外一个参数nls_territory也是继承NLS_LANG的.

你的问题在于数据库的字符集有问题,你可以用下面的方法
转换一下字符集, 因为US7ASCII这个字符集是很多字符集的
子集,例如al32utf8

SQL> shutdown immediate;
startup mount;
alter system enable restricted session;
alter system set job_queue_processes=0 scope=memory;
alter system set aq_tm_processes=0 scope=memory;
alter database open;
alter system enable restricted session;
alter database character set internal_use internal_convert AL32UTF8;
shutdown immediate;
startup;
col parameter form a30
col value form a30
select parameter,value from nls_database_parameters;

上面的脚本会转换US7ASCII 到AL32utf8, 运行前需要关闭所有
其它的进程,例如em,agent等等.

字符集转换完毕后,你将 NLS_LANG设置成
"simplified chinese_china.zhs16gbk",然后登陆sqlplus,
做个查询,就不会有乱码了.

最初由 risepp 发布
[B]NLS_CHARACTERSET US7ASCII
NLS_LANGUAGE SIMPLIFIED CHINESE
最本质的原因就是这两个值不匹配是吧,可以修改这两个值使其一致么??
字符集是在安装数据库的时候指定的,NLS_LANGUAGE是受什么控制啊?客户端本身么? [/B]

使用道具 举报

回复
论坛徽章:
7
会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010新春纪念徽章
日期:2010-03-01 11:06:132011新春纪念徽章
日期:2011-01-04 10:37:342011新春纪念徽章
日期:2011-02-18 11:43:342012新春纪念徽章
日期:2012-01-04 11:50:44
15#
 楼主| 发表于 2005-10-26 19:50 | 只看该作者
恩 ,自己确实有点懒了  :)
这是个学习方法的问题,不过再次感谢。
以后一定先研究研究再来问 ,我先去试试。

使用道具 举报

回复
论坛徽章:
7
会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010新春纪念徽章
日期:2010-03-01 11:06:132011新春纪念徽章
日期:2011-01-04 10:37:342011新春纪念徽章
日期:2011-02-18 11:43:342012新春纪念徽章
日期:2012-01-04 11:50:44
16#
 楼主| 发表于 2005-10-27 14:32 | 只看该作者
成功,谢谢!! 非常感谢!!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表