Почему этот пакет служб SSIS выбрасывает ошибки преобразования? - PullRequest
3 голосов
/ 27 мая 2011

Когда я запускаю его, я получаю следующую ошибку:

Ошибка в задаче потока данных [SQL Server Пункт назначения [164]]: столбец "SepticSystemType" не может быть вставлен потому что преобразование между типами DT_NTEXT и DT_WSTR не поддерживаются.

Но согласно этой схеме это приведение является законным:

http://msdn.microsoft.com/en-us/library/ms141704.aspx

Я что-то упустил?

Ответы [ 2 ]

6 голосов
/ 27 мая 2011

Вот возможный вариант.Вы можете использовать задачу Data Conversion Transformation, доступную в Задаче потока данных, для преобразования входных данных из одного типа данных в другой.В следующем примере показано, как это можно сделать.

Пошаговый процесс:

  1. Создайте две таблицы с именами dbo.DataNText и dbo.DataUnicode, как показанона скриншотах # 1 и # 2 .
  2. Создайте пакет с одной задачей потока данных.Сконфигурируйте задачу потока данных с помощью источника OLE DB, задачи преобразования данных и назначения OLE DB.См. Снимок экрана # 6 , чтобы увидеть, как настроены задачи.NText - исходная задача OLE DB;Conversion - задача преобразования преобразования данных;Unicode - целевая задача OLE DB.
  3. NText настроен для извлечения данных из таблицы dbo.DataNText.Сопоставление столбцов выполняется, как показано на скриншоте # 3 .
  4. Задача преобразования настраивается, как показано на скриншоте # 4 .Выберите столбец для преобразования, укажите имя для выходного столбца.Обычно он называется Copy of.Измените тип данных на Unicode String [DT_WSTR] и укажите длину 255.Эти значения предназначены для этого примера, чтобы показать, как выполняется конфигурация преобразования.
  5. Юникод настроен на сохранение данных в таблицу dbo.DataUnicode.Сопоставление столбцов выполняется, как показано на скриншоте # 5 .
  6. Пример выполнения пакета показан на скриншоте # 6 .
  7. Пример содержимого данных обоихтаблицы показаны на скриншоте # 7 .

Этого также можно добиться, используя задачу Derived Column Transformation.

Надеюсь, это поможет.

Снимок экрана № 1:

1

Снимок экрана № 2:

2

Снимок экрана № 3:

3

Снимок экрана № 4:

4

Снимок экрана № 5:

5

Снимок экрана № 6:

6

Снимок экрана № 7:

7

1 голос
/ 27 мая 2011

Как раз под этой диаграммой также написано, что приведение к DT_WSTR требует параметров.Следите ли вы за этим?

(DT_WSTR, 20) приводит 20-байтовые пары или 20 символов Unicode к типу данных DT_WSTR.

edit: см. Ответ Siva, чтобы узнать, как этого добиться с помощьюдругое задание.

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