如何捕获循环内生成的变量的子字符串并将其传递给以下任务?

时间:2015-10-15 20:54:26

标签: sql ssis

我有以下情况:

我正在循环浏览目录中的文件。

对于每个文件,我必须捕获部分文件名,我必须将其用作“更新例外”任务的参数。

如何保存部分文件名(循环循环),然后将其作为“更新例外?”中存储过程的参数传递

我已经有了从文件名中提取字符串的功能,我只需要知道把它放在哪里。

同样,我想从循环所在的文件名中获取字符串X,然后将此变量传递给“Update Exceptions”任务中的存储过程。

有人可以帮我一把吗?

2 个答案:

答案 0 :(得分:1)

创建Object类型的变量。注意变量的(容器)范围。 Variables panel in Visual Studio

将任务的输出映射到变量。 Properties window of an SQL task

在ForEach循环中使用它。 Properties windows of a Foreach loop task

答案 1 :(得分:0)

这是一个选项:

  1. 创建两个名为StringCurrentFile
  2. CurrentFileSubstring变量
  3. 在您的FELC任务中,将User::CurrentFile映射到0 FELC mapping
  4. 在将文件移动到已处理文件夹和更新例外之间创建脚本任务
  5. 授予您的脚本任务对CurrentFile的读取权限以及对CurrentFileSubstring的ReadWrite访问权限 Var access
  6. 将您的函数放入脚本任务代码中。从CurrentFile读取值,并将函数中的子字符串值写入CurrentFileSubstring Dts.Variables[User::CurrentFileSubstring].Value = MySubstringFunction(CurrentFile);
  7. 您的更新例外任务现在可以使用CurrentFileSubstring值。
  8. For more information on looping over files, see this link