如何将多个文件扩展名添加到文件: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)