首页 > 解决方案 > 如何从 ssis 中的脚本任务中获取变量的值

问题描述

我在 SSIS 中的一个脚本任务中有以下代码:

       public void Main()
        {
           string filename;


        filename = Dts.Variables["User::FileName"].Value.ToString();

         string getEmployerId = filename.Split('_')[0];

   int employerId = Int32.Parse(Regex.Match(getEmployerId, 
        @"\d+").Value);
          int fail = 1; 

我需要employerId从此代码中获取值并将其作为变量存储在我的 SSIS 包中。

有谁知道这样做的最好方法是什么?

标签: ssisscript-task

解决方案


据我所知,您正在从文件名中检索 EmployerId,对吗?如果是,则不需要使用脚本任务。只需创建一个新变量并设置一个表达式来解析 EmployerId。如果你能提供文件名,我可以帮助表达。

更新

基于可变字符长度和无法更改文件名以包含另一个分隔符,您将需要使用正则表达式在脚本任务中处理此问题。请参阅下面的网络链接:

https://social.technet.microsoft.com/wiki/contents/articles/22194.use-ssis-variables-and-parameters-in-a-script-task.aspx

在控制流中:

  1. 创建由 for each 循环枚举器设置的字符串类型的文件名变量
  2. 创建一个 int32 类型的 EmployerID 变量

在脚本任务中:

  1. 选择文件名为只读,EmployerID 为读写
  2. 获取文件名值
  3. 使用您的正则表达式获取 EmployeID
  4. 设置 EmployerID 变量

推荐阅读