Oracle 10g 中文乱码问题

『 更新时间:2008-4-13 』『 字体:变小 变大 』『 作者:佚名 | 来源:互联网

  (2)按照服务器端字符集对客户端进行配置

  配置方法有两种:

  安装ORACLE的客户端软件时指定

  在安装ORACLE的客户端产品软件时,选择与ORACLE服务端一致的字符集(本例为US7ASCII)即可。

  修改注册信息的方法

  根据ORACLE 客户端所选sql*net 的版本分为下列两种情况:

  a. 客户端为 sql*net 2.0 以下版本

  进入Windows的系统目录,编辑oracle.ini文件,用US7ASCII替换原字符集,重新启动计算机,设置生效。

  b. 客户端为 sql*net 2.0 以上版本

  在WIN98 下 运 行REGEDIT,第一步选HKEY_LOCAL_MACHINE,第二步选择SOFTWARE, 第三步选择 ORACLE, 第四步选择 NLS_LANG, 键 入 与服 务 器 端 相 同 的 字 符 集(本例为:AMERICAN_AMERICAN.US7ASCII)。

  强制加载数据字符集与服务器端字符集一致

  假设要加载数据从原ORACLE数据库卸出时的字符集为US7ASCII,当前ORACLE服务器字符集为WE8ISO8859P1。

  下面提供三种解决方法:

  (1) 服务器端重新安装ORACLE

  在重新安装ORACLE 时选择与原卸出数据一致的字符集(本例为US7ASCII)。

  加载原卸出的数据。

  这种情况仅仅使用于空库和具有同一种字符集的数据。

  (2)强行修改服务器端ORACLE当前字符集

  在用imp命令加载数据前,先在客户端用sql*plus登录system DBA用户,执行下列SQL语句进行当前ORACLE数据库字符集修改:

  SQL > create database character set US7ASCII
  * create database character set US7ASCII
  ERROR at line 1:
  ORA-01031: insufficient privileges

  你会发现语句执行过程中,出现上述错误提示信息,此时不用理会,实际上ORACLE数据库的字符集已被强行修改为US7ASCII,接着用imp命令装载数据。等数据装载完成以后,shutdown 数据库,再startup 数据库,用合法用户登录ORACLE数据库,在sql >命令提示符下,运行select * from V$NLS_PARAMETERS,可以看到ORACLE数据库字符集已复原,这时再查看有汉字字符数据的表时,汉字已能被正确显示。

  (3)利用数据格式转储,避开字符集限制

  这种方法主要用于加载外来ORACLE数据库的不同字符集数据。其方法如下:

  先将数据加载到具有相同字符集的服务器上,然后用转换工具卸出为foxbase 格式或access格式数据库,再用转换工具转入到不同字符集的ORACLE数据库中,这样就避免了ORACLE字符集的困扰。目前数据库格式转换的工具很多,象power builder5.0以上版本提供的pipeline,Microsoft Access数据库提供的数据导入/导出功能等。转换方法参见有关资料说明。

  匹配字符集替换汉字

  对于刚才提到的情况,没有很好的办法,只能先把客户端与服务器端字符集匹配一致后,根据原输入汉字的特征码替换汉字字符部分。

上一页  [1] [2] 

【点击数:】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

关文章

您的姓名:
评分等级:
1分 2分 3分 4分 5分
评论内容:
1、严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
2、用户需对自己在使用金石网服务过程中的行为承担法律责任。
3、本站管理员有权保留或删除评论内容。
4、评论内容只代表网友个人观点,与本网站立场无关。
  • 金石网
  • | 设为首页 | 加入收藏 | 联系我们 | 版权申明 | 友情链接 | 站点地图 | 网站帮助 | 网站留言 | 广告服务 |
  • Copyright © 2001-2008 KingsNet.biz All Rights Reserved. 闽ICP备05026663号
  • 返回网站顶部