Импорт из XML отбрасывает лидирующие 0

#sql-server #xml #ssis #etl #derived-column

#sql-сервер #xml #ssis #etl #производный-столбец

Вопрос:

У меня есть пакет SSIS, который импортирует XML-файл в SQL. Например, данные одного конкретного поля могут быть «112» или «039». Он всегда состоит из трех символов и дополняется начальным 0, если только два.

Целевым полем в SQL является varchar . По той или иной причине служба SSIS меняет его на DT_UI2, и в случае ‘039’ появляется только ’39’.

Я добавил преобразование данных, которое преобразует его в DT_WSTR, но это не помогает

Ответ №1:

Используйте производный столбец со следующим выражением:

 RIGHT("000"   (DT_WSTR,50)[Source Column],3)
  

Комментарии:

1. Привет. Спасибо за это. В итоге я отредактировал файл XSD и изменил его с unsignedshort на string. Это сработало

2. @opperman.eric затем запишите это как ответ, также вы можете использовать производный столбец в качестве обходного пути, если это необходимо. Удачи

Ответ №2:

Первоначально сгенерированный XSD определил это поле как unsigned short . Изменение его на string и повторное выполнение потока решили проблему