2014-01-06 43 views

回答

4

是的,它會在文件末尾提交。這將是相當不適合的目的,如果沒有,真的

從技術上講,既然你有direct=y那麼你就直接路徑負載,所以ROWS command line parameter影響多久使用SQL * Loader沒有數據保存,而不是在大負載下提交。但唯一真正的區別在於索引可用性。

ROWS參數標識要數據保存之前,從數據文件中讀取的行數。缺省值是讀取所有行並在加載結束時保存一次數據。

如果您的文件中有10008行,它會在第一個10000行之後執行數據保存,然後在最後8行之後再次執行數據保存,並且只會在索引達到文件。

使ROWS高於數據文件中實際的行數不會導致數據被忽略。

您還可以檢查exit status code,這將有望告訴您所有行都已成功加載,並且日誌文件將顯示插入行的數量。

+0

我在我的bash腳本中有兩個連續的命令:sqlldr,後面跟着sqlplus命令來運行存儲過程。看起來,sqlldr並沒有完全完成對錶的提交,而存儲過程試圖訪問該表。任何想法可能會出錯? – mauryat

+0

@ user640378 - 我假設你沒有在後臺運行'sqlldr'。您看不到部分提交,並且您所描述的場景只會有一個提交。過程中是否遺漏了一些數據,但以後可以看到?你需要更詳細地解釋你所看到的內容。 'sqlldr'可能會退出而不處理整個文件,可能是因爲達到了拒絕限制? –

+0

我用所有細節創建了一個新問題:http://stackoverflow.com/q/21027330/640378 – mauryat