问题原因:
Arguments
“控制流”选项卡上可用的“执行流程任务”中的属性需要数据类型的值,而不是。DT_WSTR
DT_STR
SSIS 2008 R2 包说明了问题和修复:
在Business Intelligence Development Studio (BIDS) 2008 R2中创建一个 SSIS 包,并将其命名为SO_13177007.dtsx
. 使用以下信息创建一个包变量。
Name Scope Data Type Value
------ ------------ ---------- -----
IdVar SO_13177007 Int32 123
将Execute Process Task拖放到Control Flow选项卡上,并将其命名为Pass arguments
双击执行流程任务以打开Execute Process Task Editor
. 单击表达式页面,然后单击表达式属性上的省略号按钮以查看.Property Expression Editor
在属性表达式编辑器上,选择属性Arguments
并单击属性上的省略号按钮以打开Expression Builder
.
在表达式生成器上,输入以下表达式并单击Evaluate Expression
。此表达式尝试将变量中的整数值转换IdVar
为字符串数据类型。
(DT_STR, 10, 1252) @[User::IdVar]
单击Evaluate Expression将显示以下错误消息,因为Execute Process Task上的 Arguments 属性需要一个 data type 的值DT_WSTR
。
要解决此问题,请更新如下所示的表达式以将整数值转换为数据类型DT_WSTR
。单击Evaluate Expression将在Evaluated value文本区域中显示该值。
(DT_WSTR, 10) @[User::IdVar]
参考:
DT_STR
要了解数据类型和DT_WSTR
SSIS 中的差异,请阅读 MSDN 上的文档集成服务数据类型。以下是文档中关于这两种字符串数据类型的引用。
DT_STR
一个以 null 结尾的 ANSI/MBCS 字符串,最大长度为 8000 个字符。(如果列值包含额外的空终止符,则字符串将在出现第一个空值时被截断。)
DT_WSTR
一个以 null 结尾的 Unicode 字符串,最大长度为 4000 个字符。(如果列值包含额外的空终止符,则字符串将在出现第一个空值时被截断。)