SSIS - 如何在控制流或数据流中读取数据的修改日期?

问题描述 投票:0回答:1

我正在创建 SSIS 包。

我需要获取数据文件的修改日期。

到目前为止,在数据流中。我有“派生列转换”,我需要输入数据文件的“修改日期”。所以我想初始化名为“User::modifiedDate”的变量,然后从文件中提取修改日期,然后将该值分配给变量“User::modifiedDate”。这是正确的做法吗?

由于我没有SSIS经验,我想知道如何获取修改日期然后分配...

例如,第一个文件在 Windows 资源管理器中显示“修改日期”为“2024-02-22 17:05”,我希望在我的数据流中可以将其存储在 OLE DB 目标中

Data files

Data flow

ssis script-component
1个回答
1
投票

最好根据您的场景在控制流中使用“Foreach 循环容器”。

enter image description here


要实现此目的,您可以按照以下步骤操作:

  1. 初始化变量:创建一个名为

    User::ModifiedDate
    (日期时间)的变量和一个名为
    User::FilePath
    (字符串)的变量。

  2. 循环文件夹:使用 Foreach Loop Contain,您可以循环访问所选文件夹中的所有文件。

enter image description here

  1. 将 FilePath 分配给变量:在“变量映射”下分配 FilePath 变量以检索正在循环的当前文件路径。

enter image description here

  1. 脚本任务:如下图所示分配变量,然后继续“编辑脚本”。

enter image description here

  1. 编辑脚本:以下脚本参考@SteveFord的answer
public void Main()
{
    System.IO.FileInfo file =
          new System.IO.FileInfo(Dts.Variables["User::FilePath"].Value.ToString());

    if (file.Exists)
    {
        Dts.Variables["User::ModifiedDate"].Value = file.LastWriteTime;
    }
    Dts.TaskResult = (int)ScriptResults.Success;
}
  1. 利用您的 ModifiedDate:您现在可以在数据流中利用您的 ModifiedDate 变量进行任何必要的处理。
© www.soinside.com 2019 - 2024. All rights reserved.