NVARChar(Max)专栏的SSIS查询

时间:2012-06-02 07:34:57

标签: ssis

我希望通过查找目标表中的NVarChar(Max)列和源表中的NVarChar(20)列来从目标表中获取id。但是引发错误Cannot map the lookup column, 'Column1', because the column data type is a binary large object block (BLOB).

2 个答案:

答案 0 :(得分:4)

在Lookup转换中,您需要将blob(nvarchar(max))强制转换为非blob类型。在这种情况下,我假设您需要将其强制转换为nvarchar(20)。

您需要在查找转换中编写查询,而不只是选择表。

假设查找表看起来像

LookupTable
--------------
Column0 int
Column1 nvarchar(max)
Column2 nvarchar(500)

您的查询看起来像

SELECT 
    L.Column0
,   CAST(L.Column1 AS nvarchar(20)) AS Column1
,   L.Column2 
FROM
    dbo.LookupTable L

您现在应该能够对该列执行查找。

答案 1 :(得分:2)

你不能:

  

联接可以是复合联接,这意味着您可以加入   转换中的多个列输入到列中的列   参考数据集。转换支持使用any连接列   数据类型,DT_R4,DT_R8,DT_TEXT,DT_NTEXT或DT_IMAGE除外

您确定正确使用该组件吗?您通常按ID查找以获取文本。 你能提供更多细节吗?