1

在我的 SSIS 包中,我有一个脚本组件,它在包运行时创建一个 +1 新客户 ID。

我想将 ID 的数值分配给变量。该变量将在文件系统任务中用于创建以客户 ID 作为文件夹名称的目录。

Example - C:\Customer Orders\<CO_ID>

我在名为 (CO_ID) 的数据流中创建了一个派生列(序列)转换。但是,我坚持使用变量表达式的正确语法。

任何建议表示赞赏。

4

2 回答 2

0

Derived column Transformation在 a 中使用Dataflow task,并且Execute System Task在关卡上,因此在执行完成之前,关卡Control Flow不会看到任何变量更新。所以它只会为最后一个.Control FlowDataflow TaskCO_ID

如果您需要为每个客户创建一个目录,并假设您在脚本组件中创建 ID。只需使用以下代码(Vb.Net)从中创建目录

If Not Io.Directory.Exists("c:\Customer Orders\" & COID.ToString()) Then

   IO.Directory.CreateDirectory(c:\Customer Orders\" & COID.ToString())

End If

否则,如果您只需要创建列并稍后循环它们,我认为您只需要将CO_ID列转换为DT_WSTR

"C:\\Customer Orders\\" + (DT_WSTR, 50) [CO_ID]
于 2017-12-12T21:38:49.757 回答
0

没有错误消息和更多细节,很难说出了什么问题。但我认为您正在尝试将数字转换为字符串,然后将其连接到另一个字符串(路径)。如果是这种情况,您的派生列表达式应该类似于:

"c:\Customer Orders\" + (DT_STR, 10,1252) CO_ID

如果反斜杠给您带来问题(不记得是否需要转义),请尝试将它们加倍:

"c:\\Customer Orders\\" + (DT_STR, 10,1252) CO_ID
于 2017-12-12T21:33:44.087 回答