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

时间:2018-07-12 19:21:20

标签: ssis script-task

我的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包中。

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

1 个答案:

答案 0 :(得分:0)

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

更新

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

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

在控制流中:

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

在脚本任务中:

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