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

Oracle SQL*Loader 實戰教學 (1):建立測試表與控制檔準備

     編輯:關於SqlServer

SQL*Loader (`sqlldr`) 是 Oracle 高效大量載入工具,支援定界檔案、固定寬度、多表載入、條件過濾、錯誤處理。本系列以實戰範例示範**單一控制檔載入多張表**的完整流程。

環境資訊

  • Oracle 9i Enterprise Edition Release 9.2.0.6.0
  • Client: SQL*Plus / SQL*Loader 命令列
  • Schema: `eygle`

步驟 1:建立測試表

SQL> CONNECT eygle/eygle
Connected.

SQL> CREATE TABLE test1 (
  2    a1 VARCHAR2(10),
  3    a2 VARCHAR2(10),
  4    a3 VARCHAR2(10)
  5  );

Table created.

步驟 2:準備資料檔 (data.txt)

內容範例 (CSV 格式,欄位以逗號分隔):

01,KunMing,YunNan
02,ChengDu,SiChuan
03,GuangZhou,GuangDong
04,ShenZhen,GuangDong

步驟 3:編寫控制檔 (data.ctl)

控制檔定義資料檔格式、目標表、欄位對應、載入條件。

LOAD DATA
INFILE 'data.txt'
INTO TABLE test1
FIELDS TERMINATED BY ','
(a1, a2, a3)

關鍵子句說明:

  • `LOAD DATA`:啟動載入。
  • `INFILE 'data.txt'`:資料檔路徑 (相對/絕對)。
  • `INTO TABLE test1`:目標表 (可重複多次載入多表)。
  • `FIELDS TERMINATED BY ','`:欄位分隔符。
  • `(a1, a2, a3)`:欄位對應順序對應資料檔欄位。

步驟 4:執行載入

C:\> sqlldr eygle/eygle errors=20000 log=data.log control=data.ctl

SQL*Loader: Release 9.2.0.6.0 - Production
...
Commit point reached - logical record count 3
Commit point reached - logical record count 4

參數說明:

  • `errors=20000`:允許錯誤筆數上限,超過則中止。
  • `log=data.log`:記錄檔輸出路徑。
  • `control=data.ctl`:控制檔路徑。

步驟 5:驗證結果

SQL> SELECT * FROM test1;

A1         A2         A3
---------- ---------- ----------
01         KunMing    YunNan
02         ChengDu    SiChuan
03         GuangZhou  GuangDong
04         ShenZhen   GuangDong

下集預告

將示範**單一控制檔載入多張表** (`INTO TABLE ... WHEN ...`)、**條件過濾**、**日期/數字格式轉換**、**續行/實體記錄合併**、**直接路徑載入 (DIRECT=TRUE)** 效能優化、錯誤處理與壞檔 (`BADFILE`)、捨棄檔 (`DISCARDFILE`)、記錄檔分析。

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