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