Oracle817版本不同字符集之间的数据库导入

来源:Oracle认证    发布时间:2012-11-12    Oracle认证视频    评论

      由于业务原因,需要将一英文字符集(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 OFTWARE/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 OFTWARE/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、  重新启动数据库。

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答