CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  高级技术

数据库字符集zhs16cgb231280,导出时用us7ascii导出,如何再导回去!

楼主logpushpin(卖女孩的小火柴)2003-08-04 10:44:31 在 Oracle / 高级技术 提问

oracle7.3.4数据库,   字符集是zhs16cgb231280,   但是在备份的时候,却用us7ascii导出.   结果:无论将导出的dmp导入到zhs16cgb231280的数据库中或者是us7ascii的数据库中,导入后中文显示的都是乱码!   如何解决?   请高手指教,谢谢!! 问题点数:100、回复次数:5Top

1 楼kerisyml(魂之利刃)回复于 2003-08-04 10:51:18 得分 30

由于业务原因,需要将一英文字符集(American_America.WE8ISO8859P1)的数据库DMP文件导入到一中文字符集(SIMPLIFIED   CHINESE_CHINA.ZHS16GBK)的数据库中。由于字符集的料,终于解决了问题不同,需要将中文字符集的数据库环境改变成英文字符集。遇到很多的麻烦,通过在网上查找资。在这个过程中,发现网友们也有同样的问题,为了,让大家在以后能够顺利的完成此类工作,现将把我导入成功的过程写出来,与大家共享。  
   
     
   
  一、系统环境:  
   
     
   
                导出环境:  
   
                 
   
                主机:Compaq   小型机    
   
                操作系统:Unix  
   
                数据库:oracle8.1.7{英文字符集(American_America.WE8ISO8859P1)}  
   
     
   
                导入环境:  
   
     
   
                主机:普通Pc   机  
   
                主频:PIII750  
   
                内存:192M  
   
                操作系统:Windows   2000   server  
   
                数据库:Oracle8.1.7中文字符集(SIMPLIFIED   CHINESE_CHINA.ZHS16GBK)  
   
                               
   
                注:导出过程省略  
   
     
   
  二、导入过程  
   
                 
   
  1、     将win2000系统中的oracle注册表  
   
     
   
  [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]中的[NLS_LANG]键值  
   
  “SIMPLIFIED   CHINESE_CHINA.ZHS16GBK”改成  
   
  “American_America.WE8ISO8859P1”  
   
     
   
  2、     用system用户的身份,在Sql-plus   下执行以下语句:  
   
     
   
  update   sys.props$   set   value$='WE8ISO8859P1'   where   name='NLS_CHARACTERSET';  
   
     
   
  update     sys.props$   set   value$='WE8ISO8859P1'   where   name='NLS_NCHAR_CHARACTERSET';  
   
     
   
  commit;  
   
     
   
  3、     重新启动oracle  
   
     
   
  4、     开始导入数据库  
   
     
   
  userid   =   用户名/密码@连结串  
   
  buffer   =   60000  
   
  log   =   c:\dmp.log  
   
  file   =   c:\导入数据文件名称.dmp  
   
  fromuser   =   用户名  
   
  touser   =   用户名  
   
     
   
                这里要注意,要确保导入的表空间和用户已经建立并与导出文件一至,还要确认用户是否拥有dba的权限,否则有可能会影响导入数据的完整。  
   
     
   
  5、     检查导入效果,在目前环境下,测试数据是否正确,是否有乱码,是否有未成功导入的表和其他触发器、过程和函数等信息。确认导入没有问题后,进入到下一步。  
   
  6、     将win2000下oracle字符集环境恢复成中文字符集。  
   
  [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]中的[NLS_LANG]键值  
   
  “American_America.WE8ISO8859P1”   改回  
   
  “SIMPLIFIED   CHINESE_CHINA.ZHS16GBK”    
   
  7、     用system用户的身份,在Sql-plus   下执行以下语句:  
   
     
   
  update   sys.props$   set   value$='   ZHS16GBK   '   where   name='NLS_CHARACTERSET';  
   
     
   
  update     sys.props$   set   value$='   ZHS16GBK   '   where   name='NLS_NCHAR_CHARACTERSET';  
   
     
   
  commit;  
   
     
   
  8、     重新启动数据库。  
   
     
   
  检查你的数据库中的数据,如果没有乱码,而且你的程序能够在这个环境下正常运行,那么恭喜你,你也成功了!!  
  Top

2 楼logpushpin(卖女孩的小火柴)回复于 2003-08-04 11:13:25 得分 0

感谢,不过我的那个dmp是在数据库字符集是zhs16cgb231280,   但是导出却用的us7ascii导出的,显然这样做dmp就有问题Top

3 楼BlueskyWide(谈趣者)回复于 2003-08-04 12:11:26 得分 30

在客户端的注册表HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中,如无系统变量NLS_LANG,则“新建”->“字符串”,重命名为“NLS_LANG”,并赋值为zhs16cgb231280,再导出时不需要重启Oracle。Top

4 楼gladness(gladness)回复于 2003-08-04 13:22:28 得分 20

打开一个cmd窗口  
  set   NLS_LANG=american_america.us7ascii  
  在此窗口中接着运行imp  
   
  看看行不行Top

5 楼LGQDUCKY(飘)回复于 2003-08-04 14:45:41 得分 20

你的操作系统是98的或2000话,  
  就得修改两个地方,修改数据库字符级和修改注册表字符信息。  
  数据库字符级是修改SYS.PROPS$注册表是修改  
  HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中NLS_LANG,  
  把他修改成你备份文件里的字符级Top

相关问题

  • OEM字符集是什么?和ASCII , Unicode字符集有什么区别?
  • Oracle的字符集
  • 字符集转换
  • 字符集问题
  • jbuilder2005的字符集?
  • 字符集,不懂
  • 字符集问题!!!
  • 关于字符集
  • ORACLE字符集的修改
  • oracle/oracle7.3的字符集问题。。。

关键词

  • win2000
  • 字符集
  • 数据库
  • 字符
  • 修改
  • 用户
  • 乱码
  • 中文
  • 文件
  • 操作系统

得分解答快速导航

  • 帖主:logpushpin
  • kerisyml
  • BlueskyWide
  • gladness
  • LGQDUCKY

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo