这里简单介绍一下如何使用ORACLE数据库的datapump工具导出、导入表结构定义。由于业务场景可能非常简单,你不会遇到任何问题,也有可能业务场景非常复杂,你就会遇到一些杂七杂八的问题。下面我简单介绍一下个人遇到的需求。一批表准备归档,归档的策略为将UserA下面的一批表T1、T2、、、、Tn,归档到UserB下面(UserB.T1, UserB.T2.....),那么必须在UserB下面创建这样一批表,不想手工创建。手工创建的话,费时又费力,想利用datapump工具批量导出这批表的定义,然后批量导入。

正确的做法:

1:先导出表结构定义

expdp xxxx/xxxx tables=xxx,xxx,xxx..... directory=dumpdir  content=metadata_only dumpfile=test.dmp logfile=exp_test_20200527.log;

2:导入表结构定义时,要做好几件事情。

2.1  原始表与目标表位于不同的SCHEMA,那么导入的时候,就必须完成这种转换,可以使用REMAP_SCHEMA参数将表和数据从一个SCHEMA转移到另外一个SCHEMA,其作用类似于老的imp工具中的fromuser和touser参数,impdp中将fromuser和touser参数合并成了REMAP_SCHEMA参数。该参数的使用方法REMAP_SCHEMA=source_schema:target_schema.

注意事项:即使你指定的对应SCHEMA不存在,只要导入时连接的用户有足够的权限,就会使用DUMP文件中的CREATE USER的metadata来创建一个对应的用户。

2.2  一般而言,对应SCHEMA(User)有默认的表空间,有可能不同SCHEMA默认的表空间不同,那么就必须用参数REMAP_TABLESPACE来解决导入数据更改表空间,否则就会遇到ORA-01950: no privileges on tablespace 'xxxxx' 这种错误。

注意事项:有可能原始表的数据和索引位于不同的表空间,所以可能需要匹配多个表空间,具体操作为REMAP_TABLESPACE=src1:dst1 REMAP_TABLESPACE=src2:dst2

2.3 逻辑冲突,这个无关工具的关系,而是由于逻辑关系缘故。

如下案例所示,例如原表"TEST"."INV_CARTONS"跟"TEST"."INV_STORE_CODES"有主外键关系。但是我们没有导出、导入"TEST"."INV_STORE_CODES",那么此时不存在"TEST_ARCH"."INV_STORE_CODES",所以抛出一个错误。

$ impdp xxx/xxx tables=test.inv_cartons,test.inv_month_end_aging directory=dumpdir  remap_schema=test:test_arch REMAP_TABLESPACE=TEST_DATA:TEST_DATA_ARCH REMAP_TABLESPACE=TEST_IDX:TEST_DATA_ARCH dumpfile=test.dmp logfile=imp_test_20200527.logImport: Release 10.2.0.5.0 - 64bit Production on Wednesday, 27 May, 2020 13:57:10Copyright (c) 2003, 2007, Oracle.  All rights reserved.Connected to: Oracle Database 10g Release 10.2.0.5.0 - 64bit ProductionMaster table "SYSTEM"."SYS_IMPORT_TABLE_01" successfully loaded/unloadedStarting "SYSTEM"."SYS_IMPORT_TABLE_01":  system/******** tables=test.inv_cartons,test.inv_month_end_aging directory=dumpdir remap_schema=test:test_arch REMAP_TABLESPACE=TEST_DATA:TEST_DATA_ARCH REMAP_TABLESPACE=TEST_IDX:TEST_DATA_ARCH dumpfile=test.dmp logfile=imp_test_20200527.logProcessing object type TABLE_EXPORT/TABLE/TABLEProcessing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANTProcessing object type TABLE_EXPORT/TABLE/INDEX/INDEXProcessing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINTProcessing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICSProcessing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTORA-39083: Object type REF_CONSTRAINT failed to create with error:ORA-00942: table or view does not existFailing sql is:ALTER TABLE "TEST_ARCH"."INV_CARTONS" ADD CONSTRAINT "FK_INV_CART_FK_INV_CA_INV_STOR" FOREIGN KEY ("STORE_CD") REFERENCES "TEST_ARCH"."INV_STORE_CODES" ("STORE_CD") ENABLE NOVALIDATEProcessing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICSJob "SYSTEM"."SYS_IMPORT_TABLE_01" completed with 1 error(s) at 13:57:11

常见的datapump工具导入脚本例子

impdp xxx/xxx tables=xxxxxx directory=dumpdir  remap_schema=xxxxx:xxxxx REMAP_TABLESPACE=xxxx:xxxx REMAP_TABLESPACE=xxxx:xxxx dumpfile=test_20200527.dmp logfile=imp_test_20200527.log

标签:导入到,REMAP,test,TABLESPACE,TEST,datapump,ORACLE,TABLE,SCHEMA

来源: https://www.cnblogs.com/kerrycode/p/12978269.html

impdp导入表结构和表数据_ORACLE数据库如何用datapump工具导出表结构然后导入到其它Schema下面...相关推荐

  1. 枚举中文转数字并easyexcel导入(读取Read)数据至数据库,用监听器解决导入关联多表的问题

    以下内容皆为本人学习过程中的所学的知识,全根据自己所学思路来写的. 大致流程如下: 一.创建实体类,注意有一个是导入的模板实体模型类(CustomManageAndCustomerInformatio ...

  2. oracle 两表去除重复的数据,Oracle数据库删除两表中相同数据的方法

    在Oracle数据库中删除两表中相同数据的方法是用到in语句,本文通过实例来讲解删除两表中相同数据的方法. 软件环境: 1.Windows NT4.0+ORACLE 8.0.4. 2.Oracle安装 ...

  3. mysql修改表名几种方式_Oracle数据库中修改表名的几种方式

    Oracle数据库中修改表名的几种方式如下:answer1: ALTER TABLE old_table_name RENAME TO new_table_name;(大写为系统命令)answer2: ...

  4. oracle 没有索引删除一行数据_Oracle数据库之索引

    1 索引简介 索引是与表相关的一个可选结构 用以提高 SQL 语句执行的性能 减少磁盘I/O 使用 CREATE INDEX 语句创建索引 在逻辑上和物理上都独立于表的数据 Oracle 自动维护索引 ...

  5. node-xlsx - 简单几行代码处理导入、导出 excel 表格数据,免费开源的 javascript 工具库

    最近开发的项目上需要把数据导出为 xlsx 文档,找了一圈,发现 node-xlsx 简单好用,分享给各位. 关于 node-xlsx 在 web 开发中,管理后台生成 excel 报表并且下载,一个 ...

  6. impdp导入表结构和表数据_EXP COMPRESS以及EXP/IMP EXPDP/IMPDP导入表结构注意-阿里云开发者社区...

    EXP COMPRESS以及EXP/IMP EXPDP/IMPDP导入表结构注意 重庆八怪 2014-09-10 987浏览量 简介: 关于EXP COMPRESS参数 一直对这个参数有些疑惑.当然此 ...

  7. oracle如何导出表结构及数据,PLSQL怎样导出oracle表结构和数据

    1.导出表结构和数据 方式1.tools->export user objects是导出表结构 tools ->export user object 选择选项,导出.sql文件 说明:导出 ...

  8. SQL数据库不用SQL语句能显示全表的内容_100道MySQL数据库经典面试题解析

    1. MySQL索引使用有哪些注意事项呢? 可以从三个维度回答这个问题:索引哪些情况会失效,索引不适合哪些场景,索引规则 索引哪些情况会失效 查询条件包含or,可能导致索引失效 如何字段类型是字符串, ...

  9. 通过表单设计器动态生成数据库表以及动态查询的功能实现

    表单设计器动态生成数据库表以及动态查询的功能实现 前言 1. 功能实现 1.1 效果说明 1.2 功能流程图 1.3 具体后端实现 1.4 实现效果 2. 尾声 前言 前两天安排了作为Java小码农的 ...

最新文章

  1. LoadRunner的参数化功能分享
  2. 容器数据卷网络基本配置
  3. 承载千万级并发的分布式系统架构设计思想
  4. mysql登陆三小时平均值图片_Mysql每小时平均值,间隔从半小时开始
  5. go url 参数编码和解码
  6. 【ASP.NET学习笔记一】ASP.NET页面传参总结
  7. Head First Design Pattern: 策略模式
  8. python如何实现数据可视化,如何用python做可视化
  9. 最近在建模,顺便汉化一个软件玩玩
  10. 纯前端实现—点一个小圆圈变四个动画效果
  11. 一文搞定 | Linux 网络子系统
  12. 新一轮涨价潮来袭!英飞凌、安森美、ST、安世等交期长达52周
  13. 离散实验sdut3805双射
  14. 小程序画布合成二维码海报图,并保存到相册
  15. 一台服务器,启动多个redis
  16. 无极性电容和有极性电容的爆炸
  17. MySQL练习(学生表,课程表,选课表)超详解
  18. Bigemap中批量添加第三方在线地图教程
  19. 读书笔记:《SEO教程:搜索引擎优化入门与进阶》(1)——搜索引擎收录及排序的基础知识
  20. linux7挂载光盘,redhat7挂载光盘

热门文章

  1. 安全方向比路由交换难吗_「网工进阶」路由交换:链路聚合的配置,你都会吗...
  2. php 正则特殊字符转义,php 正则特殊字符转义的方法
  3. osg-3D世界到屏幕
  4. java thread setname_Java Thread setName()方法
  5. c语言在文本每一行末尾追加字符串,c语言在末尾添加 C语言 在链表尾部添加节点...
  6. java 正则表达式 中文数字和字母_Java中过滤出字母、数字和中文的正则表达式 | 学步园...
  7. C#设计模式之十五迭代器模式(Iterator Pattern)【行为型】
  8. 博鳌直击 | 大数据开发的最大障碍是什么?
  9. WWDC 2014 Session笔记 - 可视化开发,IB 的新时代
  10. python画五角星代码_008-python绘制五个五角星