从平面文件加载SQL表

时间:2020-03-06 14:52:11  来源:igfitidea点击:

我正在尝试从平面文件加载SQL表。我正在谈论的单位是一个用逗号分隔的文件。这具有填充表所需的所有数据,每列将以逗号","分隔。我需要一些方法可以更快地将此内容加载到表中。

解决方案

如果我们使用的是SQL Server,则使用BULK INSERT

如果我们使用的是Oracle,请在此处查看我的答案

无论使用哪种数据库管理系统,都可以使用脚本语言(例如perl或者php)来建立与数据库的连接,解析文件,然后将数据插入数据库。当然,我们必须知道一种脚本语言。

使用mysqldump?

mysqldump -u username -p database_name < sql_file.sql

这听起来有些过时,但是我使用的编辑器具有录制和重放此类作品的宏的功能。

我为此使用Textpad(www.textpad.com)(是的,我购买了许可证),我们也可以使用UltraEdit(www.ultraedit.com)或者类似的东西。就像启动maro记录器,编辑第一行以使其与SQL兼容,转到下一行并停止记录器一样简单。然后,让编辑器将宏重复到文件末尾。

主要优点是:处理文件后,我们可以将其存储并放入版本控制中。如果操作正确,它将适用于每个可执行文件(包括SQL命令)的数据库(或者工具)。

查看这些速度比较并确定最适合速度:
http://weblogs.sqlteam.com/mladenp/archive/2006/07/22/10742.aspx

对于SQL Server 2005,另一种选择是Integration Services(SSIS)。使用SSIS,我们将能够在导入过程中对数据做更多的工作(例如,在其他表中查找值,过滤出行,导入多个表等)。