【问题标题】:Delete files based on variable SSIS Script根据变量 SSIS Script 删除文件
【发布时间】:2016-09-08 16:11:23
【问题描述】:

我在 ssis 中有一个删除文件的脚本,我需要通过添加变量来修改脚本,以便可以动态执行进程。如果有人可以通过展示如何在下面的脚本中添加变量来帮助我,我将不胜感激:-

enter public void Main()
    {
        int RetentionPeriod = 0;
        string directoryPath = @"\\ABCD\EFG\HIJ";--need to add location variable
        string[] oldFiles = System.IO.Directory.GetFiles(directoryPath, "*.csv");
        foreach (string currFile in oldFiles)
        {
            FileInfo currFileInfo = new FileInfo(currFile);
            if (currFileInfo.LastWriteTime < (DateTime.Now.AddDays(-RetentionPeriod)))---need to add date variable here
            {
                currFileInfo.Delete();
            }
        }
        // TODO: Add your code here
        Dts.TaskResult = (int)ScriptResults.Success;
    }
}

}

如脚本所示,我需要添加两个变量,即位置变量和日期变量。这两个变量都有字符串数据类型

我知道这个问题很傻但是我没有写 SSIS 脚本的经验

【问题讨论】:

    标签: c# ssis ssis-2008


    【解决方案1】:
    string directoryPath = Dts.Variables["User::NameOfStringVariable"].Value
    

    您还必须将变量添加到脚本任务配置的只读列表中。这是另一个问题的屏幕截图,向您展示了在哪里使脚本可以访问该变量:

    如果您不知道在哪里/如何将变量添加到包中。一种简单的方法是右键单击控制流的灰色区域并选择变量,这将打开变量窗口,然后只需添加具有您想要的适当数据类型的变量。

    【讨论】:

      【解决方案2】:

      这是过度编码:试试这个: 设置一个如上所述的变量以包含文件路径 设置 System.IO 后将其添加到 main ;参考

      public void Main()
      {
          string FilePath = Dts.Variables["UserControl::File"].Value.ToString();
          if (File.Exists(FilePath))
          {
              File.Delete(FilePath);
          }
          Dts.TaskResult = (int)ScriptResults.Success;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-21
        • 1970-01-01
        • 1970-01-01
        • 2016-09-16
        • 1970-01-01
        相关资源
        最近更新 更多