【问题标题】:How to search folder in the file system and move it to the destination file system using ssis?如何在文件系统中搜索文件夹并使用 ssis 将其移动到目标文件系统?
【发布时间】:2017-08-30 21:01:37
【问题描述】:

我在 SQL Server 数据库中有一些表,在每个表中都有一个包含 ID 号的列。对于某些特定的ID号,我们的系统应用程序在源文件系统中创建一个文件夹,文件夹名称与ID号相同,文件夹包含许多子文件夹和不同名称的文件。我必须从表中选择 ID 号,并且需要在源文件系统中搜索该 ID 号作为文件夹名称,如果任何 ID 号与文件夹名称匹配,那么我需要复制文件夹及其所有包含并需要如果目标中不存在该文件夹,请将其粘贴到目标文件系统。我可能需要您的帮助才能使用 ssis 完成此操作。

【问题讨论】:

  • 你试过什么?是否需要在 SSIS 中完成?
  • 我认为 SSIS 是最好的,我不知道有没有最好的解决方案,请告诉我如何解决这个问题。
  • 您可以在 Powershell、VBScript、C# 控制台应用程序等中执行此操作。您需要操作数据库和文件系统。 SSIS擅长数据库,擅长文件系统。

标签: c# sql sql-server ssis


【解决方案1】:

基本模式是:

  1. 使用 Execute SQL Task,将所需的 ID 存储在对象变量中。
  2. 使用Foreach Loop Container 处理存储在对象变量中的每一行。
  3. 在循环中,使用Script TaskFile System Task 为当前行创建目录。

脚本任务比文件系统任务更灵活,但需要了解 VB 或 C#。

如果您更习惯使用批处理/PowerShell 脚本,可以使用Execute Process Task

【讨论】:

  • 感谢您的帮助,在您提到的第3点中,我不需要创建文件夹,文件夹已经在源文件系统中,我需要检查文件夹名称,如果文件夹名称是与 ID 号匹配,然后我需要复制其所有内容并将其粘贴到目标文件系统。请帮助并给我解决问题的基本模式。
  • 文件夹是否总是位于同一个地方。示例:对于 ID 100110021003,文件夹将是:C:\MyFolder\1001C:\MyFolder\1002C:\MyFolder\1003?
  • 是的,这些文件夹总是位于同一个地方。你做了正确的例子。
  • 然后我会按照上面的模式。第一步应该将所有源和目标插入到一个对象变量中。第二步提取当前源和目标。第三步将源复制到目标。如果源始终存在使用文件系统任务,那就更容易了。如果没有,请使用脚本任务。这可以检查文件夹是否存在using .Net
  • 感谢您的 cmets。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 2019-07-03
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多