我有一个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())
答案 0 :(得分:0)
您必须将int32
变量转换为字符串。
在SSIS中,您可以在变量之前放置要转换变量的类型(括在括号中);在字符串的情况下,您还必须指定最大字符数。
如果您的int32
为@[User::package_id]
,请使用(DT_WSTR, 10)@[User::package_id]
;记得将数字10调整到最大预期的字符数。