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

[size=small]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
[/size]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值