我有了一个Foreach循环容器装在一个静态文件夹中的所有.txt文件的SSIS包。 我传递完全合格的文件名,因为我使用连接字符串中的变量。
我现在只是需要将文件名传递给一个变量用来执行存储过程,麻烦的是,如果我改变的foreach循环收集只是检索它阻止其余则来自工作的文件名。
有没有办法通过双方的完全合格的名称仅文件名在SSIS一个变量?
我有了一个Foreach循环容器装在一个静态文件夹中的所有.txt文件的SSIS包。 我传递完全合格的文件名,因为我使用连接字符串中的变量。
我现在只是需要将文件名传递给一个变量用来执行存储过程,麻烦的是,如果我改变的foreach循环收集只是检索它阻止其余则来自工作的文件名。
有没有办法通过双方的完全合格的名称仅文件名在SSIS一个变量?
不,你挑一个:要么完全合格的或仅文件名。 就个人而言,如果只是存储过程的一切希望完全合格的名字,我会创建第二个变量FileNameOnly
并且用类似的表达来填充它
RIGHT(@[User::CurrentFileName], FINDSTRING(REVERSE(@[User::CurrentFileName]), "\\", 1 )-1)
(这里假设你已经存储在一个名为变量的值CurrentFileName
)
或者你也可以使用脚本任务分配价值FileNameOnly并充分利用.NET System.IO.Path.GetFileName方法。
可以添加另一个变量@[User::Filename]
和Foreach循环容器内添加表达式任务用下面的表达式:
@[User::Filename] = TOKEN(@[User::FilePath],"\\", TOKENCOUNT(@[User::FilePath],"\\"))