ssis - 如何将数字转换为字符串并将其作为参数传递给执行流程任务?

标签 ssis

我在 SSIS 2008 R2 中使用执行进程任务。我有一个变量 idVar数据类型为 Int32。我需要将此变量传递给属性 Arguments任务,以便进程可执行文件可以将此变量作为参数。我使用表达式来分配 @idVarArguments .

现在系统说我需要将 Int 转换为 String 所以我在表达式构建器中使用了以下表达式

(DT_STR, 10, 1252) @[User::IdVar] 

它给出了以下错误:
Expression cannot be evaluated.

Additional information:
The expression "(DT_STR, 10, 1252) @[User:IdVar]" has a result type of "DT_STR", 
which cannot be converted to a supported type.

(Microsoft.DataTransformationServices.Controls)

将数字转换为字符串的正确方法是什么?

Error

最佳答案

问题原因: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
Variables pane
将执行流程任务拖放到控制流选项卡上,并将其命名为传递参数
Control Flow tab
双击执行进程任务打开 Execute Process Task Editor .单击“表达式”页面,然后单击“表达式”属性旁的省略号按钮以查看 Property Expression Editor .
Execute Process Task Editor
在属性表达式编辑器上,选择属性 Arguments并单击属性旁边的省略号按钮以打开 Expression Builder .
Property Expression Editor
在表达式生成器上,输入以下表达式并单击 Evaluate Expression .此表达式尝试转换变量 IdVar 中的整数值到字符串数据类型。
(DT_STR, 10, 1252) @[User::IdVar]
Expression Builder - DT_STR
单击 Evaluate Expression 将显示以下错误消息,因为 Execute Process Task 上的 Arguments 属性需要数据类型 DT_WSTR 的值。 .
Integer to ANSI string conversion error
要解决此问题,请更新如下所示的表达式以将整数值转换为数据类型 DT_WSTR .单击“评估表达式”将在“评估值”文本区域中显示该值。
(DT_WSTR, 10) @[User::IdVar]
Expression Builder - DT_WSTR
引用:
了解数据类型之间的差异 DT_STRDT_WSTR在 SSIS 中,阅读文档 Integration Services Data Types在 MSDN 上。以下是有关这两种字符串数据类型的文档中的引号。
DT_STR
以空字符结尾的 ANSI/MBCS 字符串,最大长度为 8000 个字符。 (如果列值包含额外的空终止符,则字符串将在出现第一个空值时被截断。)
DT_WSTR
一个以空字符结尾的 Unicode 字符串,最大长度为 4000 个字符。 (如果列值包含额外的空终止符,则字符串将在出现第一个空值时被截断。)

关于ssis - 如何将数字转换为字符串并将其作为参数传递给执行流程任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13177007/

相关文章:

sql-server - SQL server 计划任务发送 Excel 文件的最佳方式?

sql-server-2008 - 在 SSIS 中将变量值从控制流传递到数据流

sql-server - ssis 中的日期值错误

sql-server - 事实表分区: how to handle updates in ETL?

arrays - 作为变量的 SSIS 字符串数组

sql - SSIS 部署 : SSIS Package run time error in SQL Server deployment

tsql - 用于表到表插入的 SSIS 与(仅限 SQL)INSERT INTO () SELECT FROM 方法

sql-server - ssis 在重用之前重置变量

sql - 在 SSIS 中编写自定义日志提供程序

c# - 在 SSIS 中使用 C# 脚本解析 JSON 字符串