首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Oracle 多表條件導出策略:建立臨時表存放篩選資料再匯出

     編輯:程式設計疑難解答

場景

需導出多張表,每表 WHERE 條件不同,exp 的 query 參數無法一次滿足。

策略:臨時表中轉

  1. 建立臨時表(同結構):
    CREATE GLOBAL TEMPORARY TABLE tmp_table1 ON COMMIT PRESERVE ROWS AS
    SELECT * FROM source_table1 WHERE condition1;
  2. 重複上述步驟針對每張表建立對應臨時表。
  3. 匯出臨時表:
    exp user/pwd@sid tables=tmp_table1,tmp_table2,... file=export.dmp
  4. 匯入端:正常 imp 導入,導入後 RENAME 臨時表還原原表名。

優點

  • 邏輯清晰,條件寫在 SQL 而非 exp 參數。
  • 可並行建立臨時表,加速大數據量導出。
  • 避免 exp query 字元長度限制與引號轉義問題。

注意

臨時表資料隨 Session/Transaction 結束自動清理,匯出前確保 Session 不中斷。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved