當將 Oracle 資料庫遷移至新環境時,常會遇到源端與目標端表結構不一致的情況:目標資料庫的客戶表比來源資料庫多出數個欄位。若直接使用傳統的匯出/匯入工具,無法在保留目標表原有額外欄位的同時,只導入來源資料。本文提供兩種實用的替代方案,幫助您順利完成跨環境的資料轉移。
在源資料庫與目標資料庫之間建立 Database Link,然後使用 INSERT ... SELECT 語法,明確指定僅插入所需的欄位與資料列。這種方式能完全控制寫入的欄位,避免影響目標表原有的額外欄位(這些欄位將自動填入預設值或 NULL)。
INSERT INTO emp (empid, ename, email)
SELECT empid, ename, email
FROM emp@remote_db
WHERE ... ;
優點:操作直觀、效能佳、無需中間檔案。適用於網路連通、資料量中等的場景。
先將來源表的指定欄位匯出為 SQL*Loader 可讀取的格式(如 CSV),再使用控制檔定義欄位對應關係,載入目標資料庫。若目標表資料已存在,可採用 APPEND 模式追加;若需覆蓋,可用 REPLACE 或 TRUNCATE 模式。
此法適合異構環境、大量資料、或需離線傳輸檔案的情境。