首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle exp 使用正則表達式匯出指定表 (tables 參數進階用法)

     編輯:Oracle 教學

Oracle exp 使用正則表達式匯出指定表 (tables 參數進階用法)

傳統 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_%'\"

注意事項與限制

  • 大小寫:Oracle 表名儲存為大寫,LIKE 模式匹配預設**大小寫不敏感** (取決於 NLS_SORT/NLS_COMP),建議模式寫大寫。
  • 引號:Shell 下傳遞含括號/逗號/空格的參數需雙層引號轉義 (如上範例 "TABLES=(...)")。
  • 效能:正則匹配需查詢字典視圖 (DBA_TABLES/USER_TABLES),表極多 (數萬) 時解析階段稍慢,可接受。
  • 不支援:NOT LIKE、複雜正則 (如 REGEXP_LIKE)、跨 Schema 混合模式 (需分別指定)。
  • 版本:10g+ 完整支援;9i 僅支援精確列表。

進階替代方案:Data Pump expdp (推薦)


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 語法,功能更強、效能更高 (並行)、支援壓縮/加密/網路匯入。
  • 新專案**優先使用 Data Pump**,exp 僅用於舊版本相容或極簡單場景。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved