在我的 SSIS 包中,我有一个脚本组件,它在包运行时创建一个 +1 新客户 ID。
我想将 ID 的数值分配给变量。该变量将在文件系统任务中用于创建以客户 ID 作为文件夹名称的目录。
Example - C:\Customer Orders\<CO_ID>
我在名为 (CO_ID) 的数据流中创建了一个派生列(序列)转换。但是,我坚持使用变量表达式的正确语法。
任何建议表示赞赏。
在我的 SSIS 包中,我有一个脚本组件,它在包运行时创建一个 +1 新客户 ID。
我想将 ID 的数值分配给变量。该变量将在文件系统任务中用于创建以客户 ID 作为文件夹名称的目录。
Example - C:\Customer Orders\<CO_ID>
我在名为 (CO_ID) 的数据流中创建了一个派生列(序列)转换。但是,我坚持使用变量表达式的正确语法。
任何建议表示赞赏。
Derived column Transformation
在 a 中使用Dataflow task
,并且Execute System Task
在关卡上,因此在执行完成之前,关卡Control Flow
不会看到任何变量更新。所以它只会为最后一个.Control Flow
Dataflow Task
CO_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]
没有错误消息和更多细节,很难说出了什么问题。但我认为您正在尝试将数字转换为字符串,然后将其连接到另一个字符串(路径)。如果是这种情况,您的派生列表达式应该类似于:
"c:\Customer Orders\" + (DT_STR, 10,1252) CO_ID
如果反斜杠给您带来问题(不记得是否需要转义),请尝试将它们加倍:
"c:\\Customer Orders\\" + (DT_STR, 10,1252) CO_ID