导入导出与字符集ITeye - 凯发娱乐

导入导出与字符集ITeye

2019-01-10 11:29:49 | 作者: 旭东 | 标签: 字符集,导入,导出 | 浏览: 2170

转载:

 

在日常工作中,咱们经常会遇到字符集的问题。Export 和 Import 是一对读写Oracle数据的东西。Export 将 Oracle 数据库中的数据输出到操作系统文件中, Import 把这些文件中的数据读到Oracle 数据库中,因为运用exp/imp进行数据迁移时,数据从源数据库到方针数据库的进程中有四个环节涉及到字符集,假如这四个环节的字符集不共同,将会发作字符集转化。

四个字符集是:
   (1)源数据库字符集 
   (2)Export进程中用户会话字符集(经过NLS_LANG设定)
   (3)Import进程中用户会话字符集(经过NLS_LANG设定)
   (4)方针数据库字符集 
一、导出的转化进程
    在Export进程中,假如源数据库字符集与Export用户会话字符集不共同,会发作字符集转化,并在导出文件的头部几个字节中存储Export用户会话字符集的ID号。在这个转化进程中可能发作数据的丢掉。

    例:假如源数据库运用ZHS16GBK,而Export用户会话字符集运用US7ASCII,因为ZHS16GBK是16位字符集,而US7ASCII是7位字符集,这个转化进程中,中文字符在US7ASCII中不能够找到对等的字符,所以一切中文字符都会丢掉而变成“?? ”方式,这样转化后生成的Dmp文件现已发作了数据丢掉。
    因而,假如想正确导出源数据库数据,则Export进程中用户会话字符集应等于源数据库字符集或是源数据库字符集的超集。

二、导入的转化进程
    (1)确认导出数据库字符集环境
             经过读取导出文件头,能够获得导出文件的字符集设置
    (2)确认导入session的字符集,即导入Session运用的NLS_LANG环境变量
    (3)IMP读取导出文件
             读取导出文件字符集ID,和导入进程的NLS_LANG进行比较
    (4)假如导出文件字符集和导入Session字符集相同,那么在这一进程内就不需求转化,假如不同,就需求把数据转化为导入Session运用的字符集。能够看出,导入数据到数据库进程中发作两次字符集转化。
    第一次:导入文件字符集与导入Session运用的字符集之间的转化,假如这个转化进程不能正确完结,Import向方针数据库的导入进程也就不能完结。
    第2次:导入Session字符集与数据库字符集之间的转化。

 在做数据导入的时分,需求这三个字符集都共同:一是oracel server端的字符集,二是oracle client端的字符集;三是dmp文件的字符集

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    游标笔记ITeye

    游标,数据,读取
  • 2

    SQLSERVER分页查询ITeye

    查询,代码,计划
  • 3
  • 4

    oracle暗码修正办法ITeye

    暗码,修正,用户
  • 5
  • 6
  • 7
  • 8

    oracle 树查询ITeye

    节点,相关,条件
  • 9

    Oracle衔接相关ITeye

    检查,最大,连接数
  • 10