Как установить длину для числового столбца и дату и время в SSIS? - PullRequest
0 голосов
/ 06 августа 2011

У меня есть плоский файл (CSV-файл), который извлекается и загружается в другой плоский файл по его положению. Например, у меня есть 3 столбца, такие как тип записи, номер Emp и дата с ограничением позиции. Как и тип записи имеет длину 2 с типом данных альфа, номер Emp имеет длину 6 с типом данных числовой и даты с типом длины 26 в формате yyyy-mm-dd.hh.mm.ss. 000000.

Так что мой результат в плоском файле будет выглядеть так

016543092011-08-05.11.08.34.000000
026540392011-08-05.11.10.59.000000

У меня есть две проблемы

Во-первых, я не могу установить длину числового значения равным 6, когда извлекаю CSV-файл, поскольку, когда я указываю тип данных числа Emp как числовой, тогда моя длина блокируется, и мне разрешается только точность изменить в источнике плоских файлов, а также в преобразовании данных тоже. В результате рядом с этим полем добавлено больше пробелов, которые не нужны в моем выходном файле

Далее идет с датой и временем -> я не могу установить длину для этого, как только я задаю этот столбец с типом данных даты и времени с точностью.

С моим текущим результатом я получаю результат таким образом (я не могу избежать пробела между ними, поскольку я не могу установить длину как для числового значения, так и для даты)

01654309                 2011-08-05.11.08.34.000000
02654039                 2011-08-05.11.10.59.000000

Пожалуйста, предложите мне разные способы решения этой проблемы. Я пробовал использовать промежуточную таблицу между этими процессами, но проблема все еще преобладает.

1 Ответ

1 голос
/ 07 августа 2011

SSIS экспортирует не строковые типы данных в плоские файлы, неявно преобразуя их в строки, поскольку плоские файлы могут хранить только строковые значения.Поскольку преобразование является неявным, вам некуда управлять этим преобразованием.Вам нужно сделать преобразование в строку явным, а затем вы можете поставить ее под свой контроль, чтобы получить нужный формат.Добавьте компонент Производный столбец до пункта назначения.В этом производном столбце явным образом преобразуйте свои числа, например, создайте новый столбец и используйте выражение, такое как RIGHT ("000000" + (DT_WSTR, 6) [EmpNumber], 6), чтобы получить строку, заполненную начальным нулем.В пункте назначения плоских файлов вам придется сопоставлять этот НОВЫЙ столбец вместо EmpNumber.Вам также придется изменить Диспетчер соединений с плоскими файлами, чтобы изменить тип данных на строку длиной 6 (в противном случае вы получите ошибки проверки).

...