Sql server SSI无法映射查找列。NVARCHAR(最大)错误
我正在写ETL。我已在源数据库中创建了视图。我的观点是两个表的连接。现在,我需要从视图中获取数据。但视图中有两列具有Sql server SSI无法映射查找列。NVARCHAR(最大)错误,sql-server,ssis,sql-server-2008-r2,etl,Sql Server,Ssis,Sql Server 2008 R2,Etl,我正在写ETL。我已在源数据库中创建了视图。我的观点是两个表的连接。现在,我需要从视图中获取数据。但视图中有两列具有nvarchar(max)数据类型 但是,当我在DFT中执行查找操作时,我面临以下错误: Cannot map the lookup column, 'Description', because the column data type is a binary large object block (BLOB). 我看到了以下链接: 请注意,Description列可能包含大
nvarchar(max)
数据类型
但是,当我在DFT中执行查找操作时,我面临以下错误:
Cannot map the lookup column, 'Description', because the column data type is a binary large object block (BLOB).
我看到了以下链接:
请注意,Description列可能包含大量文本
附上图片以供参考。非常感谢。
什么是查找,并且查找转换支持任何数据类型的联接列,对于DT_R4、DT_R8、DT_TEXT、DT_NTEXT或DT_IMAGE(即BLOB)的联接列除外
就我个人而言,我尽量避免在SSI中处理BLOB。转换BLOB并将其视为具有最大值的nvarchar,您应该不会有问题。如果您在查找表中进行比较所基于的列被分配了不同的约束,则可能会出现此问题 例如:如果源表中的custid允许NULL,但目标表的custid不允许NULL。您可能会遇到此错误
您可能需要通过数据转换(从ntext到字符串)传递该列。我已经尝试过了,但遇到相同的错误,您必须将nvarchar(最大值)转换为nvarchar(4000)。正如Maverick建议的那样,您是否尝试过在查找转换中使用sql查询(如select…,cast(描述为nvarchar(400))从视图中读取视图?如果您有这两个表的键,您可以改为执行
合并联接
,然后执行条件拆分以比较这些列(如果有帮助的话)。