Member 12270370 Ответов: 2

Как избежать дефиниции excel измените тип данных


Привет, я новичок в SSIS и пытаюсь извлечь данные из sql server и загрузить в excel, но проблема в том ,что когда данные будут загружены в excel, они автоматически станут строкой, я хочу, чтобы мои данные были в моем правильном типе данных.

Что я уже пробовал:

извлекаются данные и загружаются в excel, но десятичное поле становится строкой в excel ,

2 Ответов

Рейтинг:
2

CHill60

Взгляните на этот блог (отказ от ответственности-не имеет ко мне никакого отношения): Почему SSIS всегда ошибается в типах данных Excel и как это исправить! | Концентрации[^]

Здесь обсуждаются и другие альтернативы - Экспорт в Excel с правильным типом данных[^]


Member 12270370

я сделал все шаги, показанные в ссылке, но проблема все та же .

CHill60

Я добавил альтернативу своему решению

Рейтинг:
1

Lazar Jovovic

Это пример того, как хранить данные из базы данных SQL Server в локальном файле Excel, сохраняя тот же тип данных, что и в таблице базы данных.

1. создайте файл назначения Excel со строкой заголовка (назовите столбцы).

2. вставьте " фиктивную строку "(первую под заголовком) и заполните ее данными, следуя следующей логике:" abc " - строка, 0-целое число, 0.00-десятичное число и т. д.

3.в вашем решении SSIS в потоке данных создайте источник OLE DB (определите строку подключения к базе данных) и пункт назначения Excel (определите путь к файлу назначения).

4. Добавить конвертация данных между источником данных и назначение "Excel". В Редакторе преобразования данных установите для столбцов, содержащих текст, значение " Unicode string [DT_WSTR]", а для столбцов, содержащих десятичные числа, - " decimal[DT_DECIMAL]". Теперь сопоставьте столбцы между шагом преобразования данных и пунктом назначения Excel.

Наконец, вам придется удалить фиктивную строку в вашем файле Excel. Дело в том, что Excel сохранит тот же тип данных, который вы упомянули в фиктивной строке.


CHill60

Вам может понадобиться до 8 фиктивных строк в зависимости от данных, которые вы пытаетесь импортировать

Lazar Jovovic

До 8 фиктивных рядов? Нисколько. Как я уже сказал, вам нужна только одна (1) фиктивная строка с желаемым типом данных для каждого столбца, как описано выше.