sqluldr是什麼:是乙個oracle資料匯出小工具。
sqluldr作用介紹:sqluldr可以快速匯出
oracle
資料庫中的資料。該小工具可以將資料庫中的資料,匯出多種不同的格式(如
.txt
、.csv
等等,可按需選擇)。
sqluldr的使用背景:鑑於專案組經常會有遇到需要將資料庫中的資料匯出到excel中的情況,但是,
pl/sql developer
下,匯出
.csv
格式的檔案(這裡指的就是將資料庫中的資料匯出,格式為
excel
的格式)的功能,在遇到大資料量的情況(如幾十萬,上百萬),匯出資料所花費的時間較長。而使用
sqluldr
,導數速度大大提公升,測試結果:每分鐘約可以匯出
1g的資料。
配置工具包:
那麼,該如何在windows系統下配置
sqluldr
這個小工具呢?
詳情如下:
1、將1中藍色圈圈中的檔案
copy
到$oracle_home
的bin
目錄中:
如何查詢「$oracle_home
的bin
目錄」,有個快捷的方法,直接到
直接將1中藍色圈圈中的檔案
copy
到以上紅色線的
bin目錄中:
到這裡,配置結束。(配置過程簡單)
正式使用sqluldr:
配置好了,接下來,就直接使用,那麼該如何使用呢?
詳情如下:
1、開啟cmd,輸入
sqluldr2.exe
,若出現以下介面,則上述的配置過程,成功。
2、接下來,直接輸入匯出資料的命令即可:
sqluldr2.exe user=dim/hqyg_dw@oracle66 query="select /*+ parallel(2) */ * from dim.dim_stocks" table=dim_stocks head=yes file=d:\sqluldr\test.csv
cmd執行結果:
匯出成功。
下面為一些小細節的補充介紹:
細節補充:
1、匯出語句小剖析:匯出語句比較簡單,一般可以自己猜測出其中的意思,若不清楚,可以直接使用命令sqluldr2.exe,會有相關引數的介紹。
--(sqluldr2.exe user=dim/hqyg_dw@oracle66 query="select /*+ parallel(2) */ * from dim.dim_stocks" table=dim_stocks head=yes file=d:\sqluldr\test.csv
)2、匯出語句中,「
table=dim_stocks
」該部分可以省略。
--(sqluldr2.exe user=dim/hqyg_dw@oracle66 query="select /*+ parallel(2) */ * from dim.dim_stocks" table=dim_stocks head=yes file=d:\sqluldr\test.csv
)3、由於cmd不識別換行的語句,所以,匯出語句不要有換**況。
4、sql的查詢語句過長時,可以先將
sql語句寫到
.txt
的檔案,然後再在匯出語句中引用,詳細如下:
sqluldr2.exe user=dim/hqyg_dw@oracle66 sql=d:\sqluldr\ss.txt head=yes file=d:\sqluldr\test.csv (標紅處為修改的地方)。
截圖為寫好的.txt的檔案
sqluldr2.exe user=fintest/asdfasdf@finace_db sql=f:\test.txt head=yes file=f:\sqluldr\test.csv
參考**:
大資料匯出2
經過幾天的折騰,終於把這個頑固的工程做完了,現在60萬資料40秒匯出到本地。嘗試了很多的辦法,現在放上最優秀的做法供參考。第一,優化資料表,加上相應的索引,分割槽。第二,讀庫操作。分多執行緒,採用threadpool。第三,匯出操作,1 採用aspose.cells 2 採用多檔案方式,要麼以記錄行...
POI 大資料匯出
gradle 匯入 org.apache.poi poi ooxml 3.14 poi對excel的匯出操作,一般只使用hssfworkbook以及sxssfworkbook hssfworkbook用來處理較少的資料量,sxssfworkbook用來處理超大資料量的匯出,20w資料沒什麼問題。注意...
php mysql匯出大資料
開發中經常遇到這樣的場景 產品汪 我要在後台做乙個功能,可以匯出自定義時間範圍的訂單資訊。開發小哥二話不說,半天就把功能做完並上線了。結果,第二天一上班產品汪過來就是拍桌子 md,我想把去年一整年的訂單都匯出來,結果後台直接就掛了!開發小哥一查,原來是記憶體溢位了,一年下來的的訂單量足足有1000w...