我有一个 SSIS 包,它从 SQL 表中获取新 GUID 的列表。然后我将 GUID 分解成一个字符串变量,以便用逗号分隔它们。它们如何出现在变量中的一个示例是:
'5f661168-aed2-4659-86ba-fd864ca341bc','f5ba6d28-7283-4bed-9f11-e8f6bef225c5'
问题出在数据流任务中。我在 SQL 查询中使用该变量作为参数来获取我的源数据,但我无法获得我的结果。当 WHERE 子句如下所示时:
WHERE [GUID] IN (?)
我收到一个无效字符错误,所以我发现隐式转换不能像我想象的那样与 GUID 一起工作。如果这是单个 GUID,我可以通过将 {} 放在 GUID 周围来解决此问题,但可能需要在运行时检索 4 或 5 个不同的 GUID。
想办法解决这个问题:
WHERE CAST([GUID] AS VARCHAR(50)) IN (?)
但这根本不会产生任何结果,并且在我当前的测试中应该有两个。
我想一定有办法做到这一点......我错过了什么?