方法一:SQL*Loader 命令列模式(最常用、效能最佳)
前置條件
- 目標表結構已在資料庫建立。
- 備妥資料檔(例:Tab 分隔的
model.txt)。
- 編寫控制檔
input.ctl 定義欄位對應、載入模式。
控制檔關鍵字說明
INSERT(預設):表必須為空。
APPEND:追加資料,保留既有資料。
REPLACE / TRUNCATE:先清空表再載入。
執行指令
C:\> sqlldr userid=system/manager@serviceName control=input.ctl
預設產生 input.log(執行日誌)、input.bad(錯誤資料)、input.dsc(捨棄資料)。
方法二:SQL Server 匯入/匯出精靈(異構遷移)
- 資料來源選 SQL Server,指定伺服器/資料庫/認證。
- 目的地選 Oracle Provider for OLE DB 或 Oracle ODBC Driver,填入連線資訊。
- 注意:登入 Oracle 的使用者名稱即為目標 Schema 名,匯入後物件擁有者為
username.表名。
- 可選「複製資料表/檢視」或「編寫查詢」自訂欄位與列。
方法三:Oracle Enterprise Manager 載入精靈(GUI 操作)
登入 EM Console,針對單一表使用「資料載入」工具,流程與 SQL*Loader 一致,需指定控制檔、資料檔、對應關係,適合不習慣命令列的使用者。
建議選擇
- 大量資料、追求效能 → SQL*Loader 直路徑模式(
DIRECT=TRUE)。
- 異構資料庫一次性遷移 → 匯入/匯出精靈。
- 少量資料、偏好圖形介面 → EM 載入精靈。