如何将Excel或CSV文件加载到Firebird中?

时间:2010-01-22 00:29:57

标签: csv import firebird import-from-excel

我正在使用Firebird数据库,我需要将Excel文件加载到数据库表中。我需要一个能做得很好的工具。我尝试了一些我在Google上找到的,但他们都有一些错误。

由于Excel数据不是由我创建的,因此如果它可以扫描文件并发现内部的数据类型并建议在数据库中创建表格,那将是一件好事。

另外,如果我可以将文件与数据库表中已有的数据进行比较,那将是很好的,我可以选择要加载哪些数据,哪些数据不加载。

加载CSV文件的工具也很好,我可以在加载前从Excel“另存为”CSV。

7 个答案:

答案 0 :(得分:4)

好吧,如果您可以使用CSV,我猜XMLWizard是适合您的工具。它可以加载CSV文件并与数据库数据进行比较。您可以选择要对表格进行的更改。

不要让这个名字欺骗你,它确实适用于XML,但它也适用于CSV文件。它还可以估计列数据类型,并为您的文件提供CREATE TABLE语句。

答案 1 :(得分:1)

您是否尝试过FSQL

这是一款非常类似于Firebird标准ISQL的免费软件,但有一些额外功能,例如从CSV文件导入数据。

我已经将它与DBF文件一起使用,并且工作正常。

答案 2 :(得分:0)

还有针对Firebird和Interbase的EMS数据导入工具 http://www.sqlmanager.net/en/products/ibfb/dataimport

虽然不是免费的,但它接受各种格式,包括CSV和Excel。

修改

另一个类似的付费软件工具是Firebird数据向导http://www.sqlmaestro.com/products/firebird/datawizard/

答案 3 :(得分:0)

有一些在线工具可以帮助您从csv header / sample dump文件生成DDL / DML脚本,请查看:http://www.convertcsv.com/csv-to-sql.htm 然后,您可以从命令行使用sql-workbench' s Data PumperWbImport ToolOrbada具有支持导入csv文件的GUI。 DBeaver免费版也支持开箱即用导入csv。

答案 4 :(得分:0)

批量插入

另一种方法是在Excell上使用要导出的数据在新单元格中构建公式。该公式包括格式化字符串并根据您在firebird中的字段长度来选择您的字段。因此,您可以从excell复制所有这些单元格,并在txt编辑器中复制过去,因此可以在Firebird中使用BULK INSERT策略。

http://www.firebirdfaq.org/faq209/

中查看更多详细信息

问题在于是否有要导入的Blob或null数据,因此请查看您是否具有这种类型的值以及这种方式是否适合您。 如果您已将数据格式化为txt文件,则批量插入将是快速的方法。

提示:您也可以禁用与表关联的触发器和索引,以加快BULK INSERT的速度,并在启用它们之后。

Roberto Novakosky

答案 5 :(得分:0)

我将excel文件加载到lazarus电子表格,然后导出到firebird db。 Everythong很好,唯一的问题是fpspreadsheet会将带数字的字符串字段仅视为数字字段。我可以检查第一行的标题以查看excel文件是否有效。

答案 6 :(得分:0)

据我所知,到目前为止,所有答复都集中在实质上读取Excel(或CSV)文件并使用SQL插入将记录插入Firebird数据库中的工具。在此方法有效的同时,我始终发现这种方法非常缓慢。

这就是为什么我创建了一个工具,该工具可以读取Excel文件并写入一个具有适用于Firebird外部表(包括对UTF8 char列的支持)的(文本)格式的文件,以及一个DDL文件来在Firebird中创建外部表。

然后,我使用常规SQL从外部表中进行选择,根据需要进行转换,然后插入到我想要的任何普通Firebird表中。根据我的经验,这种方法的性能比从客户端应用程序插入SQL快几个数量级。

我愿意发布该工具。它是用C#编写的。让我知道是否有兴趣。