傳統 exp 工具的 TABLES 參數支援**類 SQL 正則語法**,可靈活匹配表名模式,避免手工列出大量表名。
exp userid=username/password@tns_alias
file=export.dmp
log=export.log
TABLES=(table_pattern)
| 模式 | 說明 | 範例匹配表名 |
|---|---|---|
| 精確名稱 | 完全匹配 | TABLES=(EMP, DEPT) |
LIKE 'PREFIX%' | 前綴匹配 (大小寫不敏感) | TABLES=(TABLE_NAME LIKE 'SYS%') → SYS_USERS, SYS_LOGS, SYS_CONFIG... |
LIKE '%SUFFIX' | 後綴匹配 | TABLES=(TABLE_NAME LIKE '%_HIST') → SALES_HIST, LOG_HIST... |
LIKE '%MIDDLE%' | 包含匹配 | TABLES=(TABLE_NAME LIKE '%TEMP%') → TEMP_DATA, USER_TEMP_LOG... |
LIKE 'T_ _' | 單字元萬用符 _ | TABLES=(TABLE_NAME LIKE 'T_ _') → TAB, TMP, T01... |
| 多條件組合 | 用逗號分隔 (邏輯 OR) | TABLES=(TABLE_NAME LIKE 'A%', TABLE_NAME LIKE '%_LOG') |
# 1. 匯出所有以 ORD_ 開頭的訂單相關表
exp scott/tiger@orcl file=ord_tables.dmp log=ord_exp.log \
"TABLES=(TABLE_NAME LIKE 'ORD_%')"
# 2. 匯出所有以 _HIST 結尾的歷史表
exp system/password@prod file=hist_tables.dmp \
"TABLES=(TABLE_NAME LIKE '%_HIST')"
# 3. 匯出特定 Schema 下符合模式的表 (需指定 OWNER)
exp scott/tiger@orcl file=scott_emp.dmp \
"TABLES=(SCOTT.TABLE_NAME LIKE 'EMP%')"
# 4. 排除特定表 (exp 不支援 NOT LIKE,需改用 Data Pump expdp EXCLUDE 參數)
# expdp system/pwd directory=DP_DIR dumpfile=all.dmp schemas=SCOTT exclude=TABLE:\"LIKE 'TEMP_%'\"
LIKE 模式匹配預設**大小寫不敏感** (取決於 NLS_SORT/NLS_COMP),建議模式寫大寫。"TABLES=(...)")。DBA_TABLES/USER_TABLES),表極多 (數萬) 時解析階段稍慢,可接受。NOT LIKE、複雜正則 (如 REGEXP_LIKE)、跨 Schema 混合模式 (需分別指定)。
expdp system/password@tns_alias \
directory=DP_DIR \
dumpfile=pattern_%U.dmp \
logfile=pattern_exp.log \
schemas=SCOTT \
include=TABLE:\"LIKE 'ORD_%'\" \
parallel=4 \
compression=ALL
INCLUDE/EXCLUDE 支援完整 LIKE 語法,功能更強、效能更高 (並行)、支援壓縮/加密/網路匯入。exp 僅用於舊版本相容或極簡單場景。