Несовпадение SQL_variant и DT_WSTR в BIDS Manager

Я использую BIDS для обновления некоторых данных до SQL Server 2008 R2.

Мой источник varchar и таблица назначения имеет этот столбец VariantValue как sql_variant тип данных. Поэтому я использовал преобразование производного столбца для создания нового столбца в Юникоде с этим выражением: (DT_WSTR,4000)(PNumber), Что означает, что я конвертирую varchar в unicode и вставив его в sql_variant колонка

Мой медленно меняющийся диспетчер соединений измерений выдает эту ошибку:

Невозможно отобразить столбцы разных типов.
Столбец "PNumber" имеет тип "System.String" и столбец VariantValue имеет тип 'System.Object'

1 ответ

Решение

Существует много ограничений для типов данных Sql_Variant:

  • VARCHAR (макс)
  • VARBINARY (макс)
  • NVARCHAR (макс)
  • XML
  • текст
  • NTEXT
  • образ
  • версия строки (временная метка)
  • sql_variant
  • география
  • `hierarchyid`
  • геометрия
  • Пользовательские типы
  • DateTimeOffset

Так что я думаю, что ваш источник строки Varchar(Max) так что даже если вы преобразуете его в

(DT_STR,4000,1252)(PNumber)

Это будет работать.

Или вы можете использовать команду SQL в качестве источника и CAST столбец, чтобы VARCHAR(4000) или же NVARCHAR(4000) от него.

Примечание: что при использовании MAX длина, SSIS рассматривают это как данные BLOB-объекта DT_TEXT

Рекомендации

Другие вопросы по тегам