SSIS:将int32,字符串变量值插入SQL表

时间:2015-08-13 09:49:18

标签: ssis

我有一个SSIS包,它有一个执行SQL任务,我正在使用以下语句,该语句不起作用。你能解释一下为什么吗?

INSERT INTO SSIS.FIIN_FilesInfo
    (FIIN_PKIN_package_id, FIIN_package_connection_string, FIIN_created_date)
SELECT '" +  @[User::package_id]] + "' AS Expr1, '" + @[User::package_connection_string]+ "' AS Expr2, GETDATE() AS Expr3

下面, FIIN_PKIN_package_id is int32 data type FIIN_package_connection_string is string data type

如果我使用变量映射仅插入字符串值,则它有效。但是,如果我尝试插入int32和字符串值然后使用变量映射,它就不起作用。这就是我这样做的原因。非常感谢提前。

注意:对于变量映射,我使用了这个查询:

INSERT INTO SSIS.FIIN_FilesInfo
    (FIIN_PKIN_package_id, FIIN_package_connection_string, FIIN_created_date)
VALUES (?,?, GETDATE())

1 个答案:

答案 0 :(得分:0)

您必须将int32变量转换为字符串。

在SSIS中,您可以在变量之前放置要转换变量的类型(括在括号中);在字符串的情况下,您还必须指定最大字符数。

如果您的int32@[User::package_id],请使用(DT_WSTR, 10)@[User::package_id];记得将数字10调整到最大预期的字符数。