2

我想知道如何使用 SSIS 从以下给定路径中提取文件名:

路径:

O:\SourceFiles\Primary\care\ALC121.csv
O:\SourceFiles\Primary\care\COPL119.csv

我想将名称和完整路径插入到表中,如下所示:

表数据:

QueryName  FileName 
---------  ---------------------------------------
ALC121     O:\SourceFiles\Primary\care\ALC121.csv
COPL119    O:\SourceFiles\Primary\care\COPL119.csv
4

3 回答 3

4

我假设完整的文件名来自文件的 ForEach 枚举器。似乎请求是将该字符串减少为仅基本文件名。有些人会使用表达式来让你到达那里,但我发现这是一种丑陋的方法。相反,我会使用脚本任务并利用 .NET 库中的功能。

System.IO.Path.GetFileNameWithoutExtension

返回指定路径字符串的文件名,不带扩展名。

创建第二个变量,QueryName使用 String 类型调用它,并将其设置为脚本中的读/写变量。根据带有该值的那个 metchod 调用的结果来分配它的FileName值。

然后使用执行 SQL 任务将它们插入到您的表中。使用 a?作为参数。

于 2013-02-14T17:26:23.423 回答
1

在派生列中,您可以使用TOKEN()TOKENCOUNT()函数来执行此操作:

TOKEN(
     TOKEN(@[User::Filepath],"\\", TOKENCOUNT(@[User::Filepath],"\\"))
, ".", 1)
于 2019-05-08T15:23:07.507 回答
0

不带扩展名的文件名:

select substring(?,len(?)+1,(charindex('.',?)-1)-LEN(?))

对于 4 参数映射
0 - FullPath
1 - FilePath
2 - FullPath
3 - FilePath

于 2018-03-21T17:23:05.360 回答