如何从ssis中的脚本任务获取变量的值

how to get a variable's value from Script Task in 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 包中。

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

据我所知,您是从文件名中检索 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. Select文件名为只读,EmployerID为读写
  2. 获取文件名值
  3. 使用正则表达式获取 EmployeID
  4. 设置 EmployerID 变量