Oracle服務器上有,但是客戶端沒有,客戶端需要自己下載。
Sqlldr.exe在app/product/11.2/client(oracle客戶端)目錄下(默認)
sqlldr是一個數據批量寫入數據庫的工具。
使用sqlldr需要一個ctl文件以及調用該文件的命令。
ctl文件實例
調度實例
ctl常用命令:
load data
infile "d://test.txt" 外部數據文件
infile "d://test1.txt" 可指定多個數據文件
append into table test 向表中追加數據
fields terminated by "," 外部文件的數據以“,”分隔
OPTIONALLY ENCLOSED BY '"' 部分字段可以用雙引號包起來
trailing nullcols 表中的字段沒有對應的值時填充空值
(
id integer external, integer external 表示插入的數據是string,如果只保留integer,表示插入的數據是二進制
name "upper(:name)", 將插入的值轉換為大寫
con ":id||:name", 表中CON列的值是ID和NAME的組合值
dt date"yyyy-mm-dd" 插入日期型數據
)
通過oracle數據庫的sqlldr工具可將符合一定規則要求的文本文件導入(或更新)到數據數據庫中。對文本文件的入庫處理要從如下幾方面著手:
1、根據分隔符(如“|”或TAB等)提取字段內容
①數據文件格式
以“|”分隔的數據內容
②控制文件格式
控制文件
LOAD DATA
infile 'c:\myData.dat'
INSERT INTO TABLE tableA
fields terminated "|"
trailing (
column1,
column2
)
2、根據位距(位置距離)提取字段內容
①數據文件格式
字段定長(含空格),可按位置距離提取字段內容
②控制文件格式
Load data
infile 'c:\myData2.dat'
append into table tableA
(
column1 position(1: 3) "trim(:column1)",
column2 position(4: 8) "trim(:column2)",
column3 position(9: 13) "trim(:column3)"
)
注:如導入的字段中有日期格式內容,則可以用 DATE"YYYY-MM-DD"標識,如
帶日期格式的內容標識
在操作系統命令行下執行如下格式的命令(示例為windows下命令)
C:/>sqlldr userid=username/password@Sid control=c:\控制文件.ctl
默認情況下日志文件名為:控制文件.log;異常數據記錄文件為:控制文件.bad;可通過這兩個文件查看數據導入的情況。
1、log-日志文件
2、bad-異常數據文件
3、skip-忽略記錄數,從第一行開始計算要跳過的行數(默認為0)
4、errors-允許的最大錯誤數,超過則數據處理任務終止
5、bindsize-每次提交的緩沖區大小,默認為256000字節