- 浏览: 244033 次
最新评论
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
下面这个是一个简单例子:
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
发表评论
-
ETL工具--kettle简介
2016-02-24 11:21 0oracle ETL工具---数据迁移 常用的有:OWB(o ... -
oracle 游标实例
2015-12-31 17:23 1228oracle游标 游标-----内存 ... -
10053事件分析
2015-12-25 17:37 8201)10053介绍: 10053 事件是oracle 提供的用 ... -
oracle绑定变量学习
2015-12-25 17:01 1623绑定变量(binding variable) ... -
oracle 绑定变量
2015-12-24 17:26 0关键词: 绑定变量(binding variable),共享池 ... -
oracle插入大量数据
2015-12-23 17:35 1444oracle插入大量数据 1.生 ... -
ORA-03113:end-of-file on communication channel
2015-12-23 14:32 1182测试上面的一个库 plsql报错:shared memory ... -
oracle分区表【转】
2015-12-23 14:20 466oracle分区表 1.表空间及 ... -
迁移数据文件到ASM【转】
2015-12-23 11:53 8041.迁移数据文件到ASM 1) ... -
adrci命令
2015-12-23 11:46 3119一、adrci说明 在oracle11g中,dump ... -
用户+角色+权限
2015-12-21 17:58 928角色与用户权限的学习 ... -
oracle database link
2015-12-21 17:08 912目前我的数据库里只有tinadb一个实例,要创建db link ... -
oracle回收站
2015-12-21 14:22 463oracle回收站 1.drop table books; ... -
使用nid修改sid和dbname
2015-12-21 15:29 815如非必要,不建议在生产库上对dbid进行修改 1、修改dbi ... -
rman模拟故障恢复实验
2015-12-18 16:08 1195补充1:restore database和recover da ... -
rman命令学习-tina(下)
2015-12-18 16:07 1197五、rman删除 delete命令 删除相关的 ... -
rman命令学习-tina(上)
2015-12-18 16:06 924RMAN学习-tina rman的功能非常强大,下面我们来一 ... -
oracle profile介绍
2015-12-16 17:34 656profile文件的介绍: Oracle系统中的profi ... -
oracle缩小表空间
2015-12-18 16:59 1796oracle缩小表空间: oracle常用的此类命令Alte ... -
oracle数据库的启动和关闭【转】
2015-12-16 15:02 1181数据库的启动和关闭 Or ...
相关推荐
- **字符集转换**:如果源和目标数据库的字符集不一致,可以使用`expdp`和`impdp`的`CHARSET`参数进行转换。例如,将数据从AL32UTF8导出到一个新的数据库,其字符集为WE8ISO8859P1,可以这样操作: ``` expdp ...
本篇将深入探讨Oracle字符集的查看、修改、导入导出以及转换原理。 一、Oracle字符集的查看 在Oracle中,可以通过以下SQL查询来查看当前数据库的字符集设置: ```sql SELECT * FROM NLS_DATABASE_PARAMETERS ...
最后,"Oracle字符集(5).txt"可能涉及数据导入导出与字符集的关联,如使用SQL*Loader、EXPDP/IMPDP时的字符集设置,以及如何确保导出的数据在导入到不同字符集的环境中时仍能正确显示。 总的来说,这个Oracle字符...
4. 导入时,注意数据的兼容性问题,如字符集、版本差异等。 5. 导出和导入过程中,为避免数据丢失,建议在非业务高峰期进行。 ### 四、实际应用 DMP工具广泛应用于数据库迁移、数据复制、数据测试环境的搭建等多个...
- **转换字符集**:在导入数据之前,可以使用 `convertdbcs` 工具进行字符集转换。 #### 三、总结 Oracle 数据库的导入导出是数据库管理中的基础操作之一。通过本文介绍的方法和技巧,可以有效地进行数据的备份和...
修改Oracle字符集支持中文 1. **关闭数据库**: 输入`shutdown immediate`。 2. **启动到挂载模式**: 输入`startup mount`。 3. **启用受限会话**: 输入`ALTER SYSTEM ENABLE RESTRICTED SESSION;`。 4. **禁用作业...
### Oracle 数据库中不同字符集DMP文件的导入方法与技巧 #### 1. 引言 在Oracle数据库管理过程中,经常会遇到需要将一个数据库的备份文件(通常为.dmp格式)导入到另一个数据库的情况。这涉及到源数据库与目标...
导入数据通常使用 `imp` 或 `impdp`(Data Pump Import)。例子包括: 1. 完全数据库导入: ``` imp system/manager@TEST file=d:\daochu.dmp ignore=y ``` `ignore=y` 参数表示即使目标数据库中存在同名对象,...
在处理这些文件时,确保字符集的正确性至关重要,因为字符集不匹配可能导致数据导入后的乱码问题。"查看oracle dmp字符集的小工具"就是针对这一需求开发的实用程序。 该工具的特色在于它的绿色小巧,无需安装即可...
Oracle字符集是数据库管理系统Oracle中的一个关键概念,用于定义数据的编码方式,使得数据库能够存储和处理各种语言的字符。本文主要探讨了在不同字符集的Oracle数据库间如何有效地进行数据存取。Oracle的全球化支持...
Oracle字符集转换是一个重要的主题,尤其在处理多语言数据或者跨不同版本的Oracle数据库交互时。Oracle数据库系统支持多种字符集,以满足全球化的数据存储需求。字符集定义了数据库如何存储和显示字符,不同的字符集...
案例:从Linux导出的数据导入到windows环境中发现字符集安装时候忘了修改为zhs16gbk(是原来的al32utf8)。
- 它支持数据转换,例如,可以将导出的字符集与目标数据库的字符集不匹配的数据进行转换。 - 通过使用数据泵的`REMAP_SCHEMA`选项,可以在导入时重定向数据到不同的目标模式,这对于测试环境非常有用。 - impdp还...
本篇文章将重点讨论如何将从一个使用US7ASCII字符集的数据库导出的数据成功导入到一个使用ZHS16GBK字符集的数据库中。 首先,我们需要理解US7ASCII和ZHS16GBK字符集的基本概念。US7ASCII是一种基于ASCII的字符集,...
在上述案例中,从10G环境导出的数据导入11G数据库时,由于字符集不兼容导致了问题。可以通过以下步骤更改Oracle 11G数据库的字符集: - 首先,通过`SELECT * FROM V$NLS_PARAMETERS`查询当前的字符集。 - 然后,...
Oracle字符集的更改是一个复杂的过程,涉及到数据库的底层结构和数据的编码方式。在Oracle数据库中,字符集用于定义字符的表示方式,不同的字符集对不同语言的支持程度和存储效率也不同。在本文中,我们将讨论如何...
### Oracle11g 字符集 AL32UTF8 修改为 ZHS16GBK 的步骤与注意事项 #### 一、背景介绍 在Oracle11g环境下,可能会遇到需要更改数据库字符集的情况,例如从AL32UTF8修改为ZHS16GBK。这种变更通常发生在需要支持特定...
本文将深入探讨如何解决OracleXE导入系统时缺少的包问题以及如何更改数据库的字符集。 首先,"导入系统缺少的包"可能指的是在执行数据泵导入(如`expdp`和`impdp`)或使用SQL*Loader等工具进行数据迁移时,发现某些...
Oracle 10g 的数据泵技术为 DBA 和开发人员提供了一个强大的工具集,使得数据的导入导出变得更加灵活和高效。通过使用`expdp`和`impdp`命令,不仅可以提高数据迁移的速度,还能更好地控制数据的迁移范围和细节。此外...
- 在导入过程中可能会遇到兼容性问题,比如字符集不匹配等。 - 需要根据具体的错误日志(如`IMP-00010:无效的文件`)来定位问题并进行相应的调整。 #### 五、总结 通过上述步骤和注意事项的详细介绍,我们可以...