当前位置: 代码网 > it编程>数据库>Oracle > Oracle数据泵导入导出数据的实现

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

2026年03月03日 Oracle 我要评论
一、导出/导入指定用户下的表带条件的数据1.先通过oracle视图生成可执行的sqlselect 'iss_a.' || table_name || ':"where data_date in (''

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

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数据泵导入导出内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com