暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

expdp 导出全部表前100行

原创 张超 2026-02-28
35



步骤 1:获取 HIOSEDB 用户下所有表名



-- 在 SQL*Plus 或 sqlcl 中执行
SET PAGES 0 LINES 200 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON
SPOOL /home/oracle/tables.txt
SELECT table_name FROM dba_tables WHERE owner = 'HIOSEDB' AND table_name NOT LIKE 'BIN$%';
SPOOL OFF
注意:排除回收站表(BIN$...)



步骤 2:用脚本生成完整的 QUERY 字符串
创建一个 shell 脚本(如 build_query.sh):

#!/bin/bash
QUERY_STR="QUERY="
FIRST=1
while read tbl; do
if [ -n "$tbl" ]; then
if [ $FIRST -eq 1 ]; then
QUERY_STR="${QUERY_STR}HIOSEDB.$tbl:\"WHERE ROWNUM <= 100\""
FIRST=0
else
QUERY_STR="${QUERY_STR},HIOSEDB.$tbl:\"WHERE ROWNUM <= 100\""
fi
fi
done < /home/oracle/tables.txt

echo $QUERY_STR > /home/oracle/query_param.txt


运行后生成类似:




QUERY=HIOSEDB.T1:"WHERE ROWNUM <= 100",HIOSEDB.T2:"WHERE ROWNUM <= 100",...


步骤 3:使用参数文件(parfile)调用 expdp
创建 exp.par:




userid=cismon/Zyrlxjc123.
cluster=n
exclude=statistics
DIRECTORY=EXPDP_DIR
DUMPFILE=HIOSEDB_100rows.dmp
LOGFILE=HIOSEDB_100rows.log
SCHEMAS=HIOSEDB
QUERY=HIOSEDB.T1:"WHERE ROWNUM <= 100",HIOSEDB.T2:"WHERE ROWNUM <= 100",...



执行命令
expdp cismon/Zyrlxjc123. \
cluster=n \
exclude=statistics \
DIRECTORY=EXPDP_DIR \
DUMPFILE=HIOSEDB_100rows.dmp \
LOGFILE=HIOSEDB_100rows.log \
SCHEMAS=HIOSEDB \
QUERY='HIOSEDB.*:"WHERE ROWNUM <= 100"'






「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论