ORACLE 使用sqluldr2和sqlldr進行導入導出


            當需要大數據量的導入導出的數據遷移操作時,效率變得極其重要


oracle數據導出工具sqluldr2可以將數據以csv、txt等格式導出,適用於大批量數據的導出,

導出速度非常快。導出後可以使用oracle loader工具將數據導入。

下載完sqluldr2,文件夾內容如下:
sqluldr2_linux32_10204.bin和sqluldr2_linux64_10204.bin分別適用於與linux32位和linux64位操作系統;

sqluldr2.exe用於windows平臺。


導出:在sqluldr2.exe所在的文件夾路徑打開命令行,輸入sqluldr2,回車,可查看相關參數


sqluldr2.exe USER=hh/hh@tiod QUERY="select /*+ parallel(2) */  *from hh.ent_person"

 table=ent_person head=yes FILE=C:\ent_person.txt

p.s. head=yes表示第一行爲表頭;並且query也可以寫入一個文件然後使用sql選項。

默認分隔字符爲逗號,如果列中有特殊字符,可使用field選項指定新的分隔字符。

數據已經導入到C:\ent_person.txt,幾十萬數據秒速。

使用sqlldr進行導入,首先找到$ORACLE_HOME的bin目錄生成的ctl文件,

當sqluldr2輸入了table='XXXXX 參數時會默認生成ctl文件,以用於導入。

將數據加載到數據庫中:

sqlldr jms/jms@tiod control=ent_person_sqlldr.ctl 

log=ent_person_sqlldr.log bad=ent_person_sqlldr_bad.log skip=1  

errors=5000 rows=5000 bindsize=335542

p.s. skip=1表示跳過第一行,從第二行開始導入。

注意:默認生成的ctl控制文件,數據入庫方式爲insert,要求要插入

的表裏沒有數據,如果有數據可以將ctl文件中的insert方式修改爲

append。

還有一點當數據量過大時,執行命令就不要設置rows,使用ctl自己配置的行數

(rows= 50000 指五萬條數據提交一次)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章