我需要把一个.CSV文件抽象成什么,这样我就可以在上面运行SQL语句了



问题:

我一般认为,我需要抽象一个.CSV文件来"运行SQL语句"到底是什么

我想我可以为下面的"问题"的步骤1编写迭代循环,但我根本不知道如何执行步骤2。

问题:

我在大学办公室工作,那里有一个通宵脚本(我没有写(,它会梳理大学的数据库,并为我第二天需要通过"邮件合并"发送的信件生成.csv文件。它将这些.csv文件保存到我可以访问的服务器文件夹中。

这样做的技术是有限的,它为每个录取学期生成不同的.csv文件(这似乎与自动化软件在梳理大学数据库时如何知道应该注意哪些录取条件有关。(

但是,我的MS Word Mail Merge文档不需要对.csv文件进行这种分离,因为"准入条款"也是.csv文件本身中的一个字段。我需要的任何变化都可以通过条件逻辑和字段插入来完成。

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

不幸的是,我无法更改过夜脚本的输出,所以我只能使用.csv文件。

我想做的是写一个程序,生活在我的台式电脑或我们的服务器上:

  1. 循环浏览适用服务器文件夹中的每个文件,确定该文件是否符合特定的文件名条件并且具有非空内容
  2. 将与步骤1匹配的.csv文件抽象为可以执行SQL的抽象
  3. 对每个匹配的.csv文件的"SELECT*FROM[.csv文件的抽象]"执行SQL"UNION ALL"语句
  4. 将步骤3的结果作为一个新的"合并".csv文件写入我们的服务器(我将把邮件合并文件指向该服务器(。
    • (另外,我想让我的程序在特定的时间表上自动执行,这样会影响我的工具选择。(

到目前为止,我已经使用MS Access完成了步骤3&4(当打开邮件合并文件时,我会直接从.mdb文件中读取Word(。

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

每6个月,我会花几个小时将特定的新.csv文件导入新的"链接表",重新导入联合,清理我不再需要的旧"链接表,等等。

我宁愿用电脑来完成这项任务,即使它必须每天都这样做

您可以使用SSIS实现此目的

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

执行需要的数据转换

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

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

现在我了解了更多关于计算机的信息,希望能帮助以下用户:

1(我试图用极其简单的语言回答自己的问题:SQL是一个"普通"概念,说明一系列编程语言的实现应该是什么。最常见的包括理解SQL命令功能的软件类型被称为"关系数据库"。"关系数据库"是指它自己的数据微型文件系统。因此,您可能希望将数据从您自己计算机文件系统中的".CSV"文件中复制出来,并将其粘贴到"关系数据库"的文件系统中

2( 也就是说,世界上有一些软件使用自己计算机文件系统上的".CSV"文件作为"他们的"文件系统(他们没有自己的文件系统(,并且可以像命令一样"理解"SQL-。这些很好,因为。"CSV"文件通常是类似于SQL命令所针对的"关系数据库"中"表"的抽象概念的数据结构。其中一个适用于Windows的软件是Microsoft日志分析器。(不过,请注意,它并不能理解所有"普通"SQL命令。(

3( 为了解决我在写这个问题时想到的问题,我在我们的Windows服务器上安装了Microsoft Log Parser,并编写了Windows shell脚本来执行我希望它在Windows服务器上运行的各种".CSV"文件上执行的类似SQL的命令。

我同事的部分日常工作依赖于我原来帖子的数据转换。我只是在他的指令中写了"双击'____.cmd'…"。这是一个拼凑,但它奏效了!

4( SQL并不是唯一一组适合处理类表数据的编程命令。例如,Python有一个"csv"包。与日志解析器的命令相比,它不像SQL,但它可以完成日志解析器无法完成的一些任务,例如右填充字段内容。

Python有一个"Portable Python"产品,你可以把它放在Windows文件系统(无论是你的电脑还是一些Windows服务器空间(上,它允许你编写Python程序,并在该Windows文件系统上运行".CSV"文件。这个无安装环境(如LogParser(可以帮助您根据".CSV"文件"拼凑"数据处理任务("Kludges"写起来很有趣,通常在短期内很有用,但不建议用于安全性、可维护性、规模等有问题的项目-您已经收到警告了!(

相关内容

最新更新