我需要抽象一个.CSV文件,以便在其上运行SQL语句?

时间:2013-04-25 19:59:56

标签: sql csv automation

问题:

我是一般意义上的,到了什么我需要将.CSV文件抽象为“运行SQL语句”?

我想我可以为下面的“问题”的第1步编写迭代循环,但我对如何执行第2步没有任何想法。

问题:

我在大学办公室工作过夜剧本(我没写过)梳理大学的数据库并生成.csv文件,用于我需要在第二天通过“邮件合并”发送的信件。它将这些.csv文件保存到我有权访问的服务器文件夹中。

执行此操作的技术是有限的,它为每个录取术语生成不同的.csv文件。 (这似乎与自动化软件如何知道在梳理大学数据库时要注意哪些录取条款有关。)

但是,我的MS Word邮件合并文档不需要将.csv文件分开,因为“允许条款”也是.csv文件本身中的一个字段。我需要的任何变化都可以通过条件逻辑和字段插入来完成。

.csv文件的分离让我为相同的一般想法维护多个冗余的Word文档,每个术语只有一个。每次我们过渡到专注于一套新的学期时都要保持头痛。我使用Access解决方案解决了这个问题(见下文),但现在 IT 很难维护。

不幸的是,我没有权限更改隔夜脚本的输出,所以我坚持使用.csv文件。

我想做的是编写一个存在于我的台式PC或服务器上的程序,并且:

  1. 遍历适用的服务器文件夹中的每个文件,确定它是否符合某些文件名标准并且具有非空内容
  2. 将与步骤1匹配的.csv文件抽象为可以执行SQL的抽象
  3. 对每个匹配的.csv文件执行“SELECT * FROM [.csv文件的抽象]”的SQL“UNION ALL”语句
  4. 将步骤3的结果写为新的“合并”.csv文件到我们的服务器(我将指向邮件合并文件)。
    • (另外我想让我的程序按照特定的时间表自动执行,这样会影响我的工具选择。)
  5. 到目前为止,我已经使用MS Access执行第3步和第3步。 4(当打开邮件合并文件时,我直接从.mdb文件中读取Word)。

    然而,当我们想要专注于一组不同的术语时,这真的很头疼。我必须手动更改.mdb查看的.csv文件,因为我得到的.csv文件在其文件名中内置了入口条件。

    每隔6个月,我花几个小时将特定的新.csv文件导入到新的“链接表”中,重新命名工会,清理我不再需要的旧“链接表”等。

    我宁愿把计算机放在这项任务上,即使每天必须这样做。 : - )

2 个答案:

答案 0 :(得分:0)

您可以将SSIS用于此目的

创建一个扫描文件的包,并将它们导入SQL数据库

执行您需要的数据转换

将转换后的数据导出到另一个CSV文件

您可以将此程序包作为手动触发的作业运行,也可以按计划运行

答案 1 :(得分:0)

现在我已经了解了有关计算机的更多信息,希望能帮助那些人:

1)我试图用非常简单的语言回答我自己的问题: SQL是一个" vanilla"一系列编程语言应该是什么实现的概念。包含理解SQL命令功能的最常见类型的软件称为"关系数据库。" A"关系数据库"意味着它是您自己的数据微型文件系统。因此,您可能希望将数据复制到" .CSV"存放在您自己的计算机文件系统中的文件,并将其粘贴到关系数据库的文件系统中。" (由于这两个文件系统是如此不同,最典型的方式是#34;粘贴"是通过SQL命令。)

2)也就是说,世界上有一些软件使用" .CSV"文件系统位于您自己的计算机文件系统中的文件系统"他们的"文件系统(他们没有自己的文件系统)并且能够理解" SQL- 喜欢 命令。这些很好,因为。" CSV"文件通常是与"表"的抽象概念类似的数据结构。在"关系数据库中#34; SQL命令旨在对其进行操作。 Windows的一个这样的软件是Microsoft Log Parser。 (但请注意,它并不了解所有" vanilla" SQL命令。)

3)为了解决我在编写这个问题时遇到的问题,我将Microsoft Log Parser放在我们的Windows服务器上并编写了Windows shell脚本来执行我希望它在各种&#34上执行的类似SQL的命令; .CSV"也存在于我们的Windows服务器上的文件。

我同事的部分日常工作取决于原始帖子的数据转换。我刚刚写了"双击' ____。cmd'现在..."进入他的指示。这是一个kludge,但它的确有效!

4)SQL不是唯一一组适合处理类表数据的编程命令。例如,Python有一个" csv"包。它不像SQL而是Log Parser的命令,但是它可以执行Log Parser无法完成的一些任务,例如右边填充字段内容。

Python有一个" Portable Python"您可以放在Windows文件系统(无论是您的PC还是某些Windows服务器空间)上的产品,它允许您编写Python程序并针对" .CSV"该Windows文件系统上的文件。这种免安装环境(如LogParser)可以帮助您克服#34; kludge"针对" .CSV"的数据处理任务文件。 (" Kludges"写作很有趣,短期通常很有用但不建议用于安全性,可维护性,规模等问题的项目 - 您已被警告过!)