我希望 SSIS 使用部分文件名作为foreach循环中的变量。
在Foreach Loop Container
内,我想取一个文件名,即 7788-Trailer Park Boys ,并在“ - ”标记处拆分,并设置 7788 作为变量。
然后我想使用该变量来更新Foreach Loop Container
中引用的表。因此,将一个表中的所有列更改为 7788 。这可以在没有自定义脚本的 SSIS 中轻松完成吗?
如果可以,我需要使用哪些 SSIS 组件?
提前谢谢。
修改
我使用此链接开始工作:
此链接帮助我实现了目标:http://sqlage.blogspot.com/2013/11/ssis-use-variable-in-execute-sql-task.html。
以下是我在执行SQL任务中使用的代码:
declare @promoid varchar(255);
set @promoid = ?
update hr_sandbox.dbo.tbu_tracking_block
set PromoID = substring(@promoid,charindex('blocks\', @promoid)+7, len(@promoid)-charindex('.xlsx', @promoid))
我的代码唯一的问题是我的变量是完整的路径名,所以我不得不将其切片以获取文件名。有没有更简单的方法来提取完全限定文件路径的文件名?
答案 0 :(得分:1)
是的,您可以使用执行SQL任务。您必须将查询参数映射到update语句中的变量。
您可以在此处查找如何操作: https://www.simple-talk.com/sql/ssis/passing-variables-to-and-from-an-ssis-task/