如何将多个文件扩展名添加到文件:Foreach 循环容器 SSIS 中的输入字段

Posted

技术标签:

【中文标题】如何将多个文件扩展名添加到文件:Foreach 循环容器 SSIS 中的输入字段【英文标题】:How to add multiple file extensions to the Files: input field in the Foreach loop container SSIS 【发布时间】:2017-04-03 22:10:59 【问题描述】:

如何在 SSIS 2008 的 Foreach 循环容器中的 Files: 输入字段中添加多个文件扩展名。

我目前输入为*.zip.csv 参见图片...但只有当我有一个像*.zip 这样的值时它才有效

【问题讨论】:

我认为您可能必须使用两个循环或使用一个循环和*.*,然后在循环内的约束上使用表达式来过滤为仅压缩和 CSV。 【参考方案1】:

我认为您不能在 For each Loop container 中指定两个文件类型扩展名,您应该使用 *.* 并且可以使用以下步骤过滤特定扩展名:

    添加布尔类型的变量(例如:User::Flag) 在容器内添加script task,并将Filename变量标记为只读,Flag变量标记为ReadWrite

    在脚本里面写如下脚本

    Public Sub Main()
    
        Dim strFile As String = Dts.Variables.Item("Filename").Value.ToString
    
        Select Case IO.Path.GetExtension(strFile).ToLower
            Case ".csv", ".zip"
                Dts.Variables.Item("Flag").Value = True
    
    
            Case Else
                Dts.Variables.Item("Flag").Value = False
        End Select
    
    
        Dts.TaskResult = ScriptResults.Success
    End Sub
    

    将表达式添加到Script task 输出连接器,如下所示

或者您可以通过使用第三方组件来实现它,例如Foreach File Enumerator with regex

【讨论】:

步骤 1) 创建一个变量来存储带有 i 扩展名的文件名【参考方案2】:

第 1 步)创建一个变量来存储带有扩展名的文件名。第 2 步)在 foreach 循环容器下映射我们在第 1 步中创建的变量。 第 3 步)创建一个执行 sql 任务在foreach循环容器内,添加连接并在sql语句下输入代码插入表名(文件名)值(?)。步骤4)在参数映射下选择我们在变量名下创建的变量,将数据类型更改为nvarchar 并将参数更改为 0。 第 5 步)在字符串函数的帮助下,您可以在字符串函数的帮助下创建表达式,如 right

【讨论】:

以上是关于如何将多个文件扩展名添加到文件:Foreach 循环容器 SSIS 中的输入字段的主要内容,如果未能解决你的问题,请参考以下文章

如何将具有特定扩展名的文件添加到化石存储库中?

尝试使用 servlet + jsp + mysql 将多个文件(带有任何扩展名)上传到 mysql 数据库中

当包含特定文件扩展名时,如何将类添加到超链接?

如何将多个(不同)文件上传到 Cloud Storage Firebase?

如何读取扩展文件属性/文件元数据

如何将多个文件夹添加到一个 zip 文件中(将文件夹 1、文件夹 2 添加到包含少量文件的 myzip.zip filr)