2013-12-20 193 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或高性能加载程序,它是一个相当复杂的实用程序,可以以非常高的速度加载数据,但会带来很多开销。建议用于大型到大型的数据加载。