方法一:SQL*Loader (sqlldr) 命令列導入
前置條件
- Listener 服務已啟動:
sqlplus user/pwd@service_name 測試連通。
- 目標表結構已創建。
- 數據文件:如
model.txt (Tab 分隔,Excel 導出)。
- 控制文件
input.ctl:
LOAD DATA
INFILE 'model.txt'
APPEND INTO TABLE system.塔位屬性表
FIELDS TERMINATED BY X'09'
(編號, 名稱, 大小)
APPEND:追加模式(其他:INSERT 要求表空、REPLACE/TRUNCATE 先清空)。
X'09':十六進制 Tab 分隔符。
執行命令
sqlldr userid=system/manager@service_name control=input.ctl
- 日志
input.log、壞記錄 input.bad、丟棄記錄 input.dsc 自動生成。
方法二:SQL Server 導入導出向導跨庫遷移
- 數據源選「SQL Server」,指定實例/認證。
- 目標選「Oracle Provider for OLE DB」或「Microsoft OLE DB Provider for Oracle」,配置服務器/用戶/密碼。登錄用戶即為目標方案名(導入後表為
username.表名)。
- 選擇「複製表/視圖」或「編寫查詢指定行列」。
- 按向導完成,可一次性遷移多表結構與數據。
方法三:企業管理器 (EM) 圖形化數據載入
- 登錄 EM Console → 目標表 → 右鍵「載入數據」。
- 嚮導界面指定控制文件、數據文件、映射規則,本質調用
sqlldr,適合單表小批量操作。
控制文件關鍵字速查
| 關鍵字 | 含義 |
| LOAD DATA | 控制文件標識 |
| INFILE | 輸入數據文件名 |
| APPEND / INSERT / REPLACE / TRUNCATE | 裝載模式 |
| FIELDS TERMINATED BY | 字段分隔符 |
| OPTIONALLY ENCLOSED BY | 字段可選包圍字符 (如雙引號) |
| TRAILING NULLCOLS | 末尾空列視為 NULL |