2

我正在使用 BIDS 将一些数据更新到 SQL Server 2008 R2。

我的源是一个varchar目标表,此列VariantValue作为sql_variant数据类型。所以我使用了派生列转换来创建一个带有这个表达式的 unicode 新列:(DT_WSTR,4000)(PNumber). 这意味着我将 a 转换varchar为 aunicode并将其插入到sql_variant列中

我的缓慢变化的维度连接管理器抛出了这个错误:

无法映射不同类型的列。
列“PNumber”的类型为“System.String”,列VariantValue的类型为“System.Object”

4

1 回答 1

0

Sql_Variant 数据类型有很多限制:

  • varchar(最大值)
  • varbinary(最大值)
  • nvarchar(最大值)
  • xml
  • 文本
  • 文本
  • 图片
  • 行版本(时间戳)
  • sql_variant
  • 地理
  • 等级id
  • 几何学
  • 用户定义类型
  • 日期时间偏移

所以我认为Varchar(Max)即使您将其转换为,您的行源也是如此

(DT_STR,4000,1252)(PNumber)

它会起作用的。

或者,您可以使用 SQL 命令作为 Source 并将列投射到该列VARCHAR(4000)NVARCHAR(4000)从该列中转换出来。

注意:使用MAX长度时,SSIS 将其视为 blob 数据DT_TEXT

参考

于 2017-11-26T21:18:35.480 回答