SSIS приведение к DT_WSTR не приведение, или так кажется - PullRequest
4 голосов
/ 19 декабря 2011

Я создаю пакет служб SSIS 2008, который считывает данные из источника плоских файлов ASCII и записывает их в базу данных SQL Server 2008.BIDS жаловалась на неявное приведение между типами данных unicode и non-unicode, поэтому я использовал инструмент производного столбца для выполнения преобразования.Вот как это выглядит:

Derived Column Name  |  Derived Column  |  Expression          |  Data Type
AccountName2         |  Replace 'AName' | (DT_WSTR,100) AName  |  string [DT_STR]

Я все еще получаю ту же ошибку:

Validation error. InsertAccountRecords: InsertAccountRecords: Columns "AccountName2" and "AName" cannot convert between unicode and non-unicode string data types.

Ошибка обнаруживается в пункте назначения SQL Server, что заставляет меня поверитьпроблема заключается в типе данных в производном столбце.Я преобразую его из DT_STR в DT_WSTR, но тип данных по-прежнему номинально DT_STR, не так ли?,Кто-нибудь может дать какое-нибудь руководство?

Редактировать: Да.Если посмотреть на средство просмотра данных после производных столбцов, AccountName2 по-прежнему будет называться DT_STR.Почему не кастинг?

1 Ответ

8 голосов
/ 19 декабря 2011

Документация отмечает, что новый тип данных установлен правильно только при выборе добавления нового столбца. Вам необходимо выбрать «добавить как новый столбец» в раскрывающемся списке «Производный столбец».

Или просто используйте преобразование «Преобразование данных», что, вероятно, будет проще, если изменение типа данных является единственным преобразованием, которое вы делаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...