gpt4 book ai didi

文件夹中所有文件的 SSIS 行计数

转载 作者:行者123 更新时间:2023-12-03 16:57:13 24 4
gpt4 key购买 nike

我有一个文件夹,其中包含每天更换的多个 Excel 文件。我需要一个总行数,它为我提供文件夹中每个单独 Excel 文件的行数总和(即,如果有 3 个文件,每个文件有 10 条记录,我需要 30 个结果计数)。然后,我需要每天运行此程序包以将单个记录添加到日志表中,该日志表将为我提供文件夹中的每日记录计数。我一直在尝试 Foreach 循环容器和 ADO 枚举器,但似乎无法找到解决方案。

最佳答案

有一个很好的解决方案,您无需使用任何脚本任务即可应用。您只需要使用一个“Foreach 循环容器”、一个“数据流任务”和一个“执行 SQL 任务”

定义变量:

  • V_FilesPath-> (String) 将保存文件所在的路径
  • V_FileName-> (String) 将填充 Foreach 容器中的文件名
  • V_RowCount (Int)
  • V_FileRowCount (int)
  • V_TotalRecords (int)

  • 定义 Foreach:

    Package Mock up

    Foreach Definition

    将源文件映射到 RowCount 组件并选择变量: V_FileRowCount
    Source Definition

    “执行 SQL 任务”将结果集更改为 《单排》
    SQL Task Definition

    将 ResultSet 映射到以下变量:
    enter image description here

    表达式 的一部分“执行 SQL 任务”选择以下属性表达式:
    enter image description here

    在表达式 Pane 中发出以下问题:

    " SELECT " + (DT_STR,10,1252)@[User::V_TotalRecords] + " + " + (DT_STR,10,1252) @[User::V_FileRowCount] + ", 1 + " +(DT_STR,10,1252) @[User::V_RowCount]



    一旦你完成了上述你就完成了!

    如果您希望查看结果,请添加一个脚本任务(只是为了显示结果)

    Script task definition

    并粘贴以下脚本代码 而不是 开头的部分《公虚主线》
            public void Main()
    {

    try
    {

    string Variables = "Loop Counter: " + Dts.Variables["User::V_RowCount"].Value.ToString() + " Total Records in all files: " + Dts.Variables["User::V_TotalRecords"].Value.ToString();
    MessageBox.Show(Variables).ToString();

    }



    catch (Exception Ex)
    {

    MessageBox.Show(Ex.Message);

    }
    }

    关于文件夹中所有文件的 SSIS 行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34771616/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com