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

    技术2022-05-11  119

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

     

           由于业务原因,需要将一英文字符集(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、  win2000oracle字符集环境恢复成中文字符集。

    [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、  重新启动数据库。

     

    检查你的数据库中的数据,如果没有乱码,而且你的程序能够在这个环境下正常运行,那么恭喜你,你也成功了!!

     

           以上是我导入的整个过程,如有纰漏之处,还希望大家指点,您可以通过Email:hawk_flying@sina.com和我取得联系。

     

     


    最新回复(0)