`
LJ你是唯一LT
  • 浏览: 244033 次
社区版块
存档分类
最新评论

oracle 字符集不同时数据的导入导出impdp

阅读更多
impdp数据导入时,如果字符集不同,是无法正常导入的,这时候有一个办法是:在要导入的新库里手动创建表,然后只导入数据

下面这个是一个简单例子:
1.直接手动创建表
2.然后修改字段长
3.,最后导入数据
由于原字符集是NLS_CHARACTERSET---ZHS16GBK,而生产是UTF-8

要知道
GBK  一个汉字占用两个字节
UTF8 一个汉字占用三个字节
所以当字符集变成了UTF8的时候,原先指定的长度可能就会不够用
我这里是将所有varchar2类型的都变长,至少1.5倍

所以我们需要修改字段长度,不然会报错:
ORA-02374: conversion error loading table "NEWCCS"."SRVTRACEHIST"
ORA-12899: value too large for column ABOUT (actual: 2075, maximum: 2000)

ORA-02372: data for row: ABOUT : 0X'B5DAC8FDB7BD20BACED0A1BDE320363638353831383920C0B4'

先只导结构(metadata_only)
SQL> desc newccs.SRVTRACEHIST
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
ID                                        NOT NULL VARCHAR2(20)
CALLNO                                             VARCHAR2(20)
CALLTIME                                           DATE
SRVTYPE                                            VARCHAR2(100)
SUBITEM                                            VARCHAR2(100)
ACTION                                             VARCHAR2(100)
ABOUT                                              VARCHAR2(2000)
CUSTID                                             VARCHAR2(12)
CARRYID                                            VARCHAR2(12)
SRCFLOW                                            VARCHAR2(20)
OPID                                               VARCHAR2(10)
OPNAME                                             VARCHAR2(10)
CALLCENTER                                         VARCHAR2(20)
CREATETIME                                         VARCHAR2(19)

修改长度
SQL> alter table newccs.SRVTRACEHIST modify (SRVTYPE  VARCHAR2(200),SUBITEM VARCHAR2(200), ACTION VARCHAR2(200), ABOUT VARCHAR2(3000), OPNAME VARCHAR2(30), CALLCENTER VARCHAR2(30), CREATETIME VARCHAR2(30));

全都要改
SQL> desc newccs.SRVTRACEHIST
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
ID                                        NOT NULL VARCHAR2(30)
CALLNO                                             VARCHAR2(30)
CALLTIME                                           DATE
SRVTYPE                                            VARCHAR2(200)
SUBITEM                                            VARCHAR2(200)
ACTION                                             VARCHAR2(200)
ABOUT                                              VARCHAR2(3000)
CUSTID                                             VARCHAR2(30)
CARRYID                                            VARCHAR2(30)
SRCFLOW                                            VARCHAR2(30)
OPID                                               VARCHAR2(30)
OPNAME                                             VARCHAR2(30)
CALLCENTER                                         VARCHAR2(30)
CREATETIME                                         VARCHAR2(30)


再导数据(data_only)
Import: Release 11.2.0.3.0 - Production on Mon Mar 24 18:26:23 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
Master table "SYSTEM"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_TABLE_01":  system/******** parfile=SRVTRACEHIST_imp_data.par
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "NEWCCS"."SRVTRACEHIST"                     495.7 MB 4172381 rows
Job "SYSTEM"."SYS_IMPORT_TABLE_01" successfully completed at 18:28:21


SQL> desc newccs.SRVTRACE
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
ID                                        NOT NULL VARCHAR2(20)
CALLNO                                             VARCHAR2(20)
CALLTIME                                           DATE
SRVTYPE                                            VARCHAR2(100)
SUBITEM                                            VARCHAR2(100)
ACTION                                             VARCHAR2(100)
ABOUT                                              VARCHAR2(2000)
CUSTID                                             VARCHAR2(12)
CARRYID                                            VARCHAR2(12)
SRCFLOW                                            VARCHAR2(20)
OPID                                               VARCHAR2(10)
OPNAME                                             VARCHAR2(10)
CALLCENTER                                         VARCHAR2(20)
CREATETIME                                         VARCHAR2(19)
alter table newccs.SRVTRACE modify (CUSTID VARCHAR2(30), CARRYID VARCHAR2(30), SRCFLOW VARCHAR2(30), OPID VARCHAR2(30),  OPNAME VARCHAR2(30),  CALLCENTER VARCHAR2(30), CREATETIME VARCHAR2(30));

SQL> desc newccs.SRVTRACE
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
ID                                        NOT NULL VARCHAR2(30)
CALLNO                                             VARCHAR2(30)
CALLTIME                                           DATE
SRVTYPE                                            VARCHAR2(200)
SUBITEM                                            VARCHAR2(200)
ACTION                                             VARCHAR2(200)
ABOUT                                              VARCHAR2(3000)
CUSTID                                             VARCHAR2(30)
CARRYID                                            VARCHAR2(30)
SRCFLOW                                            VARCHAR2(30)
OPID                                               VARCHAR2(30)
OPNAME                                             VARCHAR2(30)
CALLCENTER                                         VARCHAR2(30)
CREATETIME                                         VARCHAR2(30)


SQL> desc NEWCCS.RECORDINFO
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
AGENTID                                            VARCHAR2(10)
BEGINTIME                                          VARCHAR2(20)
TIMELEN                                            NUMBER(38)
FILENAME                                           VARCHAR2(41)
CALLTYPE                                           NUMBER(3)
CALLNO                                             VARCHAR2(25)
TIMEZONE                                           VARCHAR2(10)


alter table NEWCCS.RECORDINFO modify (AGENTID VARCHAR2(30) ,BEGINTIME VARCHAR2(30) , FILENAME VARCHAR2(60),  CALLNO VARCHAR2(40) ,TIMEZONE VARCHAR2(30));


导数时,字符集不同,需要手动创建表,不要导入表结构,经常有触发器失败,数据没办法导入
直接手动创建表,然后修改字段长度,最后导入数据
Import: Release 11.2.0.3.0 - Production on Fri Apr 4 11:47:44 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
Master table "SYSTEM"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_TABLE_01":  system/******** parfile=custphone_imp_data.par
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "NEWCCS"."CUSTPHONE"                        399.8 MB 8079759 rows
Job "SYSTEM"."SYS_IMPORT_TABLE_01" successfully completed at 11:49:54
分享到:
评论

相关推荐

    oracle数据库导入导出命令! 更改字符集

    - **字符集转换**:如果源和目标数据库的字符集不一致,可以使用`expdp`和`impdp`的`CHARSET`参数进行转换。例如,将数据从AL32UTF8导出到一个新的数据库,其字符集为WE8ISO8859P1,可以这样操作: ``` expdp ...

    Oracle 字符集详解

    本篇将深入探讨Oracle字符集的查看、修改、导入导出以及转换原理。 一、Oracle字符集的查看 在Oracle中,可以通过以下SQL查询来查看当前数据库的字符集设置: ```sql SELECT * FROM NLS_DATABASE_PARAMETERS ...

    Oracle字符集专题

    最后,"Oracle字符集(5).txt"可能涉及数据导入导出与字符集的关联,如使用SQL*Loader、EXPDP/IMPDP时的字符集设置,以及如何确保导出的数据在导入到不同字符集的环境中时仍能正确显示。 总的来说,这个Oracle字符...

    Oracle DMP备份文件导入(impdp)导出(expdp)方法

    4. 导入时,注意数据的兼容性问题,如字符集、版本差异等。 5. 导出和导入过程中,为避免数据丢失,建议在非业务高峰期进行。 ### 四、实际应用 DMP工具广泛应用于数据库迁移、数据复制、数据测试环境的搭建等多个...

    Oralce数据导入导出及常见问题

    - **转换字符集**:在导入数据之前,可以使用 `convertdbcs` 工具进行字符集转换。 #### 三、总结 Oracle 数据库的导入导出是数据库管理中的基础操作之一。通过本文介绍的方法和技巧,可以有效地进行数据的备份和...

    oracle安装卸载和导入导出数据

    修改Oracle字符集支持中文 1. **关闭数据库**: 输入`shutdown immediate`。 2. **启动到挂载模式**: 输入`startup mount`。 3. **启用受限会话**: 输入`ALTER SYSTEM ENABLE RESTRICTED SESSION;`。 4. **禁用作业...

    BLOG_Oracle_lhr_将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中.pdf

    ### Oracle 数据库中不同字符集DMP文件的导入方法与技巧 #### 1. 引言 在Oracle数据库管理过程中,经常会遇到需要将一个数据库的备份文件(通常为.dmp格式)导入到另一个数据库的情况。这涉及到源数据库与目标...

    oracle数据导入导出

    导入数据通常使用 `imp` 或 `impdp`(Data Pump Import)。例子包括: 1. 完全数据库导入: ``` imp system/manager@TEST file=d:\daochu.dmp ignore=y ``` `ignore=y` 参数表示即使目标数据库中存在同名对象,...

    查看oracle dmp字符集的小工具

    在处理这些文件时,确保字符集的正确性至关重要,因为字符集不匹配可能导致数据导入后的乱码问题。"查看oracle dmp字符集的小工具"就是针对这一需求开发的实用程序。 该工具的特色在于它的绿色小巧,无需安装即可...

    ORACLE字符集浅析——异种字符集数据库间的数据存取方法探讨.pdf

    Oracle字符集是数据库管理系统Oracle中的一个关键概念,用于定义数据的编码方式,使得数据库能够存储和处理各种语言的字符。本文主要探讨了在不同字符集的Oracle数据库间如何有效地进行数据存取。Oracle的全球化支持...

    oracle字符集转换

    Oracle字符集转换是一个重要的主题,尤其在处理多语言数据或者跨不同版本的Oracle数据库交互时。Oracle数据库系统支持多种字符集,以满足全球化的数据存储需求。字符集定义了数据库如何存储和显示字符,不同的字符集...

    修改oracle字符集 将原al32utf8修改为zhs16gbk

    案例:从Linux导出的数据导入到windows环境中发现字符集安装时候忘了修改为zhs16gbk(是原来的al32utf8)。

    数据库导入导出工具(可以导出ORACLE)

    - 它支持数据转换,例如,可以将导出的字符集与目标数据库的字符集不匹配的数据进行转换。 - 通过使用数据泵的`REMAP_SCHEMA`选项,可以在导入时重定向数据到不同的目标模式,这对于测试环境非常有用。 - impdp还...

    在不同字符集数据库间导入数据的方法

    本篇文章将重点讨论如何将从一个使用US7ASCII字符集的数据库导出的数据成功导入到一个使用ZHS16GBK字符集的数据库中。 首先,我们需要理解US7ASCII和ZHS16GBK字符集的基本概念。US7ASCII是一种基于ASCII的字符集,...

    oracle导入备份DMP报实际值最大值错误

    在上述案例中,从10G环境导出的数据导入11G数据库时,由于字符集不兼容导致了问题。可以通过以下步骤更改Oracle 11G数据库的字符集: - 首先,通过`SELECT * FROM V$NLS_PARAMETERS`查询当前的字符集。 - 然后,...

    如何更改Oracle字符集.doc

    Oracle字符集的更改是一个复杂的过程,涉及到数据库的底层结构和数据的编码方式。在Oracle数据库中,字符集用于定义字符的表示方式,不同的字符集对不同语言的支持程度和存储效率也不同。在本文中,我们将讨论如何...

    Oracle11g 字符集 AL32UTF8 修改为ZHS16GBK

    ### Oracle11g 字符集 AL32UTF8 修改为 ZHS16GBK 的步骤与注意事项 #### 一、背景介绍 在Oracle11g环境下,可能会遇到需要更改数据库字符集的情况,例如从AL32UTF8修改为ZHS16GBK。这种变更通常发生在需要支持特定...

    OracleXE 导入系统缺少的包 更改字符集sql命令

    本文将深入探讨如何解决OracleXE导入系统时缺少的包问题以及如何更改数据库的字符集。 首先,"导入系统缺少的包"可能指的是在执行数据泵导入(如`expdp`和`impdp`)或使用SQL*Loader等工具进行数据迁移时,发现某些...

    Oracle10g导入导出

    Oracle 10g 的数据泵技术为 DBA 和开发人员提供了一个强大的工具集,使得数据的导入导出变得更加灵活和高效。通过使用`expdp`和`impdp`命令,不仅可以提高数据迁移的速度,还能更好地控制数据的迁移范围和细节。此外...

    用Oracle导入导出工具实现Oracle数据库移植

    - 在导入过程中可能会遇到兼容性问题,比如字符集不匹配等。 - 需要根据具体的错误日志(如`IMP-00010:无效的文件`)来定位问题并进行相应的调整。 #### 五、总结 通过上述步骤和注意事项的详细介绍,我们可以...

Global site tag (gtag.js) - Google Analytics