动态文件夹命名 SSIS

3

在SSIS执行期间,是否有一种方法可以动态创建目标文件夹而不使用脚本任务呢?比如我有代码123、133、143,如果不存在这样的文件夹位置,我想要在下面创建一个文件夹位置。

您可以使用“文件系统任务”来实现这一点。首先,您需要添加“变量”以存储文件夹路径。然后,在文件系统任务中,选择“新建文件夹”操作并设置文件夹路径为该变量。接下来,将“文件系统任务”与其他任务连接起来,例如数据流任务或控制流任务。

D:\Outbox\ACI\123
D:\Outbox\ACI\133
D:\Outbox\ACI\143

D:\Outbox\ACI是静态的,而123、133、143只是由于执行SQL查询组件而出现了。

有人可以帮忙吗?

1个回答

6
您需要编写表达式以获取文件夹名称的动态值。比如您有一个如下所示的包:
第1个组件是一个“执行SQL任务”,它从表中检索ID,例如123、133、143。
ForEach组件枚举这些值,并将单个ID传递给“文件系统任务”(创建文件夹)以创建具有动态名称的文件夹。
步骤1:在SSIS中创建3个变量。
Name        DataType  Expression
ID           Int32
FolderPath   String   "D:\\Outbox\\ACI\\" + (DT_WSTR, 10) @[User::ID] 
FileID       Object  

对于变量FolderPath,请设置为True

步骤2:配置Execute SQL Task以从表中获取ID

enter image description here

步骤3:将ID存储到FileID变量中

enter image description here

步骤4:配置ForEach组件

enter image description here

enter image description here

步骤5:配置文件系统任务以创建directory

enter image description here


我尝试了你的建议,但是出现了一个“路径中有非法字符”的错误,但我无法确定它在哪里。 - mirageservo
@paulpolo:路径中缺少一个反斜杠,请尝试这样写 "D:\\Outbox\\ACI\\" + (DT_WSTR, 10) @[User::ID] - praveen
很抱歉,在尝试了您的建议后,错误仍然存在。 - mirageservo
你能发布一下你在表达式中使用的确切查询吗? - praveen
非常好的答案,正是我所需要的。 - Simon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接