sqlldr用法

sql*loader

使用的文件有﹕
input datafile: 要上載到數據庫的數據源
controlfile: 指示sql*loader如何解釋input datafile的內容及如何利用從input datafile中抽取的記錄
logfile:  
bad file:  被sql*loader丟棄的記錄(原因可能是這些記錄與controlfile所期望的格式不一致)或被數據庫丟棄 

 的記錄(如﹕insert操作違反完整性約束) 會寫入到bad file
rejectfile:  如果成功的從inputfile中抽取出記錄﹐但由于不匹配記錄選擇標准而被丟棄的記錄會寫入到 

  rejectfile

sql*loader能夠理解的格式包括﹕定長記錄格式﹑可變記錄格式﹑流記錄格式﹐使用那種格式有controlfile指定﹕

Sample:
1.定長格式﹕
load data
infile 'fixed.dat' "fix 15"
into table names
fields terminated by ','
(first,last)

fixed.dat內容﹕
John,Watsonaaa
Damir,Bersinic
McGraw,Hillaaa

即把數據解析為長度為15個字節的記錄(其中一個字節必須用于記錄的回車終止符)
2.變長格式
load data
infile 'names.dat' "var 3"
into table names
fields terminated by ','
(first,last)

names.dat內容﹕

012John,Watson
015Damir,Bersinic
012McGraw,Hill
前邊三個數字標識記錄長度。

3.流記錄格式﹐該格式最為靈活﹐速度也最慢﹐因為sql*loader必須掃描每條記錄的記錄終止符。

load data
infile 'names.dat'  "str '\n' "
into table names
fields terminated by ','
(first,last)

names.dat內容﹕
load data
infile 'fixed.dat' "fix 15"
into table names
fields terminated by ','
(first,last)


常規加載為直觀的insert option,而對于直接加載(direct=y)來說﹐支持sql*loader會話的server process在內存中匯集數據塊﹐并且在避開數據庫高速緩存區的同時將這些數據塊直接寫入數據文件。

常規路徑加載與直接路徑加載比較

常規路徑加載

直接路徑加載

Commit使插入的數據永久

使用數據保存在指定表中包含新數據塊

生成撤消與重做

不生成撤消﹐但可以選擇是否生成重做

實施所有約束

實施pkuniquenot null約束

觸發插入trigger

不觸發插入trigger

適用與所有表

只適用于堆表

不對表進行鎖定

加載過程中為DML鎖定表

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13790829/viewspace-462707/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13790829/viewspace-462707/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值