2013-12-20 98 views
0

我想知道是否有其他方式從文本文件加載數據而不是使用外部表。從文本文件加載數據Informix

文本文件看起來像

101 fname1 lname1 D01.. 
102 fname2 lname2 D02.. 

我希望將其加載到與列的表emp_id爲,FNAME,LNAME,部門等

謝謝!

+1

嗨,只是我的意見...我看到加載數據的工作,從客戶端或服務器兩種方式。從服務器/數據庫中,這是DBA/Admin應該參與的事情,因爲您「困擾」了系統的基礎架構,並且爲了獲得良好的性能和實施,最好使用DBA/Admin應該支持的數據庫工具Informix的選項有:** HPL,dbload,dbaccess + load,外部表**)。從客戶端,你可以使用任何工具,或者只是寫你自己的工具,並根據你的意願使用它 – ceinmart

+0

[如何在Informix中打開和讀取文件]的可能重複(http://stackoverflow.com/questions/20663446 /如何對開放式和讀取一個文件 - 在-的Informix) – ceinmart

回答

0

正如ceinmart在評論中提出的,您可以從服務器端或從客戶端進行。從服務器端可以使用DB-Access和LOAD command。從客戶端,你可以使用任何你喜歡的工具。對於這樣的任務,我經常使用Jython,它可以使用Python字符串和CSV庫以及JDBC數據庫驅動程序。使用Jython,您可以使用csv模塊從文件和PreparedStatement中讀取數據以將其插入到數據庫中。在我的其他答案:Substring in Informix你會看到這樣的PreparedStatement。

0

有三個工具Informix中從平面文件加載數據到數據庫中:

Load SQL命令。使用非常簡單,但不是很靈活。我會爲少量的記錄(少於10k)推薦這個方法

Dbload,這是一個命令行工具,比load sql命令稍微複雜一點。這將允許您更好地控制記錄的加載方式:提交時間間隔,平面文件中的起點,退出前的錯誤數量等。我建議將此實用程序用於中小型數據加載(> 10k < 100k)。

HPL或高性能加載程序,它是一個相當複雜的實用程序,可以以非常高的速度加載數據,但會帶來很多開銷。建議用於大型到大型的數據加載。