2.1 基本知識
Oracle 的 SQL* LOADER 可以將外部格式化的文本數據加載到數據庫表中。通常 與 SPOOL導出文本數據方法配合使用。
1.命令格式
SQLLDR keyword=value [,keyword=value,……]
例:$ sqlldr user/pwd control=emp.ctl data=emp.dat bad=emp.bad log=emp.log
2.控制文件
SQL*LOADER 根據控制文件可以找到需要加載的數據。並且分析和解釋這些數據。
控制文件由三個部分組成,具體參數參考幫助文檔:1. 全局選件,行,跳過的記錄數等;2. INFILE 子句指定的輸入數據;3. 數據特性說明。
comment: ——注釋
例:
load data infile *
append ——除了 append外,還有 insert、replace、truncate等方式
into table emp fields terminated b y ‘|’
(
no float external, name char(20),
age integer external,
duty char(1),salary float external,
upd_ts date(14) ‘YYYYMMDDHH24MISS’)
begindata
100000000003|Mulder|000020|1|000000005000|20020101000000
100000000004|Scully|000025|2|000000008000|20020101235959
控制文件中infile選項跟sqlldr 命令行中data 選項含義相同,如使用infile *則表明數據在本控制文件以 begin data 開頭的區域內。 一些選項:FIELDS TERMINATED BY WHITESPACE FIELDS TERMINATED BY x'09' FILLER_1 FILLER, // 指定某一列將不會被裝載
DEPTNO position(1:2), DNAME position(*:16), // 指定列的位置SEQNO RECNUM //載入每行的行號
SKIP n // 指定導入時可以跳過多少行數據