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

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

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

【问题讨论】:

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

标签: sql sql-server ssis bids


【解决方案1】:

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

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

  1. 在脚本里面写如下脚本

    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
    
  2. 将表达式添加到Script task 输出连接器,如下所示

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

【讨论】:

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

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

【讨论】:

    猜你喜欢
    • 2020-07-28
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多