SQLServer輔導:SQLLDR的使用方法
將格式化後的文本數據上傳到表格
以表格emp爲例
首先寫一個控制命令的腳本文件,通常以ctl結尾。內容如下:
EMP . CTL
load data
append
into table EMP
字段終止於“
(
no floating external,
name char (20),
age integer external,
duty char (1),
salary float external,
upd _ ts date(14)' yymmdd hh24 miss '[/br[/br
然後將上傳的數據組織成一個數據文件,通常以dat結尾。內容如下:
EMP . dat
1000000000001 Tom 000000020020010000000002 Jerry 000000252000000000000000008000000020002002010分隔符應與ctl中由終止的字段指定的分隔符一致命令:
sqlldrduser/Oracle control = EMP . ctl data = EMP . dat
還可以將dat文件郃竝到CTL文件中。ctl重寫爲:
EMP 2 . CTL
load data
infile *
append
into table EMP
字段以“
結尾。無外部浮動,
name char(20),
age integer external,
duty char(1),
salary float external,
upd _ ts date(14)' yyyymmdd hh 24 miss '
)
begin data
1000000000000003 Mulder 000002010005000202002020202010如果您使用infile *,這意味著數據位於此控制文件中以begin data開頭的區域。
該命令變成:
sqlldrduser/Oracle control = EMP 2 . CTL
常槼路逕
通過正常通道上傳。
rows:每次提交的記錄數
bindsize:每次提交的記錄的緩沖區
readsize:與bindsize成對使用,其中較小的一個自動調整爲較大的一個
sqlldr首先計算單個記錄的長度,然後乘以行數。如果它小於bindsize,它不會嘗試擴展行來填充bindsize;如果是這樣,以bindsize爲準。
命令是:
sqlldrduser/Oracle control = EMP . CTL log = EMP . log rows = 10000 bindsize = 8192000
direct path
通過傳遞方法上傳,不需要SQL解析。
命令爲:
sqlldrduser/Oracle control = EMP . CTL log = EMP . log direct = true
例如:
sqlldr userid = % s control = % s log = % s readsize = 6553600 bindsize = 6553600 rows = 5000 silent = header,feedback direct = true
0條評論