我正在开展一个项目,该项目基本上需要将 CSV 文件导入 SQL Server 2008 R2 数据库。CSV 文件是从 Excel 文件生成的,该文件由“经理”及其员工的 PR 时间填充。这还包括一些附加信息,例如员工正在从事的工作和阶段,还包括设备的小时数(如果使用)。
一旦为此生成了 CSV 文件,它就不是通常的基于“列”的 CSV 文件了。它更像是一个基于“行”的 CSV 文件,每一行都是独一无二的。由于涉及到这个警告,我不能直接转储(使用 BULK 插入或 OPENROWSET)到 SQL,这将必须创建一个包含适当列填充数据的(临时)表。
我希望根据行中该字段的“位置”来使用 CSV 文件中的字段。
因此,基本上数据的位置将保持不变,因为每个 CSV 都基于一个 TEMPLATE 文件 - 所以我所要做的就是使用 SQL 代码浏览 CSV 文件,以根据它在 ROW 中的位置找到正确的字段. 我希望这能让你们更好地理解我在这里想要实现的目标。对不起,文字的长墙。
我进行了一些研究,这是迄今为止我想出的:
通过自定义 SQL 函数将 CSV 文件读入临时表(从文件中读取行) https://www.simple-talk.com/sql/t-sql-programming/reading-and-writing-files-in-sql -服务器-使用-t-sql/
这个很有趣。将整个文件转储为 BLOB,然后您可以筛选数据。 http://www.mssqltips.com/sqlservertip/1643/using-openrowset-to-read-large-files-into-sql-server/
最后,这一点很重要,它会拆分行并为每行创建单独的记录。有趣.. http://ask.sqlservercentral.com/questions/17408/how-to-read-a-text-file.html
如果有人有任何我可以遵循的建议或步骤来解决这个问题,我将不胜感激。
致模组:如果我发布了不应该出现在此处的内容(尤其是链接),请随时将其删除。如果我这样做了,我很抱歉。
非常感谢..希望听到一些积极的回应!:)
热烈的问候,普拉纳夫