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

Oracle 外部表技巧:使用 SKIP 參數忽略 CSV 標題列

     編輯:Oracle 教學

Oracle 外部表技巧:使用 SKIP 參數忽略 CSV 標題列

建立 Oracle 外部表讀取 CSV 或文字檔時,檔案第一行通常為欄位標題,不應匯入資料。Oracle 外部表在 ACCESS PARAMETERS 中提供 SKIP n 選項,可直接跳過前 n 行,無需前置處理腳本。

語法示例

CREATE TABLE dept_external (
  deptno NUMBER(6),
  dname  VARCHAR2(20),
  loc    VARCHAR2(25)
)
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY admin
  ACCESS PARAMETERS (
    RECORDS DELIMITED BY newline
    BADFILE 'ulcase1.bad'
    DISCARDFILE 'ulcase1.dis'
    LOGFILE 'ulcase1.log'
    SKIP 20                    -- 忽略前 20 行,標題列通常設為 SKIP 1
    FIELDS TERMINATED BY ","
    OPTIONALLY ENCLOSED BY '"'
    (
      deptno INTEGER EXTERNAL(6),
      dname  CHAR(20),
      loc    CHAR(25)
    )
  )
  LOCATION ('ulcase1.ctl')
)
REJECT LIMIT UNLIMITED;

關鍵點說明

  • SKIP 20 表示忽略前 20 行;實務上若只要跳過標題列,請改為 SKIP 1。
  • SKIP 僅影響資料讀取,不影響 BADFILE/DISCARDFILE/LOGFILE 的記錄行號。
  • 搭配 FIELDS TERMINATED BY、OPTIONALLY ENCLOSED BY 可處理標準 CSV 格式(含雙引號包裹、逗號分隔)。
  • 外部表為唯讀,資料實際儲存在作業系統檔案,適合 ETL 階段暫存。

適用場景

  • 定期從 FTP/SFTP 接收含標題列的 CSV 報表,直接建立外部表查詢或 INSERT INTO target SELECT * FROM ext_table 載入正式表。
  • 避免寫 Shell/Python 前置腳本刪除標題列,簡化排程依賴。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved