Несовпадение 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
Рекомендации