Oracle数据泵导入导出数据的实现

 更新时间:2026年03月03日 09:37:19   作者:雷神乐乐  
本文主要介绍了Oracle数据泵导入导出数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、导出/导入指定用户下的表带条件的数据

1.先通过Oracle视图生成可执行的SQL

SELECT 'ISS_A.' || table_name || ':"WHERE DATA_DATE IN (''20250630'',''20250731'')",'
FROM ALL_TABLES WHERE OWNER='ISS_A' AND TABLE_NAME LIKE 'ISS_A%';

2.新建一个par文件

注意:脚本里面如果不写TABLES,写SCHEMAS=ISS_A,就会导出ISS_A用户下所有表过滤后的数据

vim exp-20250630.par

USERID=ISS_A/123456@127.0.0.1:1521/testdb
DUMPFILE=ISS_A_data_20250630.dmp
LOGFILE=ISS_A_data_20250630.log
TABLES=(
ISS_A.ISS_A_ACCT_INFO,
ISS_A.ISS_A_ACCT_INFO_BAK,
ISS_A.ISS_A_BD_BS_SM_DUTY_INFO,
ISS_A.ISS_A_BD_BS_SM_DUTY_INFO_BAK,
ISS_A.ISS_A_BD_BS_SM_PUNISH_INFO,
ISS_A.ISS_A_BD_BS_SM_PUNISH_INFO_BAK
)
CONTENT=DATA_ONLY
QUERY=(
ISS_A_ACCT_INFO:"WHERE DATA_DATE IN ('20250630','20250731')",
ISS_A_ACCT_INFO_BAK:"WHERE DATA_DATE IN ('20250630','20250731')",
ISS_A_BD_BS_SM_DUTY_INFO:"WHERE DATA_DATE IN ('20250630','20250731')",
ISS_A_BD_BS_SM_DUTY_INFO_BAK:"WHERE DATA_DATE IN ('20250630','20250731')",
ISS_A_BD_BS_SM_PUNISH_INFO:"WHERE DATA_DATE IN ('20250630','20250731')",
ISS_A_BD_BS_SM_PUNISH_INFO_BAK:"WHERE DATA_DATE IN ('20250630','20250731')"
)

3.使用数据泵执行该par文件

[oracle@t-zt-db ~]$ expdp PARFILE=exp-20250630.par

4.查询导出的行数与数据库中的行数是否一致

SELECT * FROM ISS_A.ISS_A_ACCT_INFO WHERE DATA_DATE IN ('20250630','20250731');

是33行,说明无误

5.使用数据泵导入dmp文件

清空原表指定日期的数据

DELETE FROM ISS_A.ISS_A_ACCT_INFO WHERE DATA_DATE IN ('20250630','20250731');
DELETE FROM ISS_A.ISS_A_ACCT_INFO_BAK WHERE DATA_DATE IN ('20250630','20250731');
DELETE FROM ISS_A.ISS_A_BD_BS_SM_DUTY_INFO WHERE DATA_DATE IN ('20250630','20250731');
DELETE FROM ISS_A.ISS_A_BD_BS_SM_DUTY_INFO_BAK WHERE DATA_DATE IN ('20250630','20250731');
DELETE FROM ISS_A.ISS_A_BD_BS_SM_PUNISH_INFO WHERE DATA_DATE IN ('20250630','20250731');
DELETE FROM ISS_A.ISS_A_BD_BS_SM_PUNISH_INFO_BAK WHERE DATA_DATE IN ('20250630','20250731');

注意:必须加上CONTENT=DATA_ONLY,否则表结构和数据都会导入执行

impdp ISS_A/123456@127.0.0.1:1521/testdb DUMPFILE=ISS_A_data_20250630.dmp LOGFILE=imp_ISS_A_data_20250630.log CONTENT=DATA_ONLY

6.导入后查看数据量是否一致

SELECT 'SELECT * FROM ISS_A.' || table_name || ' WHERE DATA_DATE IN (''20250630'',''20250731'');,'
FROM ALL_TABLES WHERE OWNER='ISS_A' AND TABLE_NAME LIKE 'ISS_A%';

SELECT * FROM ISS_A.ISS_A_ACCT_INFO WHERE DATA_DATE IN ('20250630','20250731');
SELECT * FROM ISS_A.ISS_A_ACCT_INFO_BAK WHERE DATA_DATE IN ('20250630','20250731');
SELECT * FROM ISS_A.ISS_A_BD_BS_SM_DUTY_INFO WHERE DATA_DATE IN ('20250630','20250731');
SELECT * FROM ISS_A.ISS_A_BD_BS_SM_DUTY_INFO_BAK WHERE DATA_DATE IN ('20250630','20250731');
SELECT * FROM ISS_A.ISS_A_BD_BS_SM_PUNISH_INFO WHERE DATA_DATE IN ('20250630','20250731');
SELECT * FROM ISS_A.ISS_A_BD_BS_SM_PUNISH_INFO_BAK WHERE DATA_DATE IN ('20250630','20250731');

到此这篇关于Oracle数据泵导入导出数据的文章就介绍到这了,更多相关Oracle数据泵导入导出内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • oracle中如何查询所有用户表的表名、主键名称、索引及外键等

    oracle中如何查询所有用户表的表名、主键名称、索引及外键等

    在与Oracle进行数据库操作时,往往会需要查询数据库表列表,以便对其进行操作,这篇文章主要给大家介绍了关于oracle中如何查询所有用户表的表名、主键名称、索引及外键等的相关资料,需要的朋友可以参考下
    2023-12-12
  • 使用 Oracle 数据库进行基于 JSON 的应用程序开发

    使用 Oracle 数据库进行基于 JSON 的应用程序开发

    本文档概述了 Oracle Database 19c 和 21c 版本中包含的功能和增强功能以​​及相关的 Oracle 技术,以及为什么 Oracle Database 中的 JSON 功能非常适合满足当今开发人员寻求文档存储来持久化、查询和处理应用程序数据的需求,感兴趣的朋友一起看看吧
    2025-04-04
  • 新Orcas语言特性-查询句法

    新Orcas语言特性-查询句法

    新Orcas语言特性-查询句法...
    2007-04-04
  • Oracle之关于各类连接超时相关参数学习

    Oracle之关于各类连接超时相关参数学习

    这篇文章主要介绍了Oracle之关于各类连接超时相关参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • oracle 数据库数据迁移解决方案

    oracle 数据库数据迁移解决方案

    大部分系统由于平台和版本的原因,做的是逻辑迁移,少部分做的是物理迁移,接下来把心得与大家分享一下
    2012-12-12
  • oracle数据库在客户端建立dblink语法

    oracle数据库在客户端建立dblink语法

    oracle服务器没有建立目标数据库的TNS时,在客户端(有权限的情况下)建立dblink语法如下,有需求的朋友可以参考下哈
    2013-05-05
  • Oracle数据库中SQL语句的优化技巧

    Oracle数据库中SQL语句的优化技巧

    这篇文章主要介绍了Oracle数据库中SQL语句的优化技巧的相关资料,需要的朋友可以参考下
    2016-07-07
  • Oracle中PL/SQL复合数据类型

    Oracle中PL/SQL复合数据类型

    这篇文章介绍了Oracle中PL/SQL的复合数据类型,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Oracle中转义字符的详细介绍

    Oracle中转义字符的详细介绍

    在ORACLE中,单引号有两个作用: 字符串是由单引号引用和转义。最近就遇到了转义的问题,下面这篇文章就给大家主要介绍了关于Oracle中转义字符的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • Oracle SQL Developer脚本输出中文显示乱码的解决方法

    Oracle SQL Developer脚本输出中文显示乱码的解决方法

    我们在测试Oracle Select AI(自然语言查询数据库)时,发现Run Statement中文显示正常,而Run Script中文显示乱码,所以本文给大家介绍了Oracle SQL Developer脚本输出中文显示乱码的解决方法,需要的朋友可以参考下
    2024-05-05

最新评论