2016-12-20 3 views
1

Я пытаюсь создать электронную таблицу Excel с использованием новейшего SSDT внутри Visual Studio 2015 в качестве проекта/пакета SQL Server 2014. Сначала я использовал мастер данных импорта/экспорта SQL Server для запуска и создания пакета DTS, который выдает простой запрос для извлечения данных из таблицы базы данных SQL Server, которая включает в себя столбец DATETIME и экспортирует его в Excel, сохраняя столбец DATETIME как DATE в Excel.Мастер импорта и экспорта SQL Server и DTExec для Excel Даты

Запуск пакета DTS во время мастера правильно создает файл Excel со значением столбца как DATE. Но когда я повторно запускаю пакет DTS, который мастер сохранил в файловой системе с помощью Visual Studio 2015 (с использованием 32-разрядного режима) или любой 32-разрядной версии утилиты DTExec, файл Excel всегда создается со значением столбца как ТЕКСТ. Лист Excel создается с использованием типа «DateTime», а внутренний тип SSIS - DT_DBTIMESTAMP. Я использую 32-разрядный драйвер Microsoft.ACE.OLEDB.12.0, поскольку 32-разрядная версия Office 2016 установлена ​​на моей рабочей станции разработчика (хотя, вероятно, будет использоваться 64-разрядная версия на рабочем сервере).

Любые мысли о том, почему возникает разница при запуске с помощью мастера или его запуск в Visual Studio или с использованием DTExec? Это сводит меня с ума!

Или у кого-нибудь есть разные подходы к форсированию этого столбца как DATE в Excel?

Спасибо!

Bryan

ответ

1

Экспорт date записей, чтобы преуспеть с помощью SSIS всегда будет рассматриваться как TEXT, если у вас нет фиктивных записей в уже ваш первенствовать лист, а затем импортировать, что преуспеть сразу после фиктивных строк. Предположим, что у вас фиктивные строки установлены на DATE формат

+0

Спасибо за комментарий. Создает ли мастер эти фиктивные записи, которые не включены в пакет DTS, который он создает? Так ли это работает, но запустить созданный пакет DTS нет? Если да, то почему я не вижу фиктивные записи в выходном файле? –

+0

, который, возможно, делается внутри, когда используется пакет DTS через сервер sql, не уверен, что внутренняя логика используется для обработки этих записей, но вам нужно создать фиктивные строки с определенным типом данных впереди, прежде чем вам понадобится вывод как тот же тип данных в SSIS. – LONG

+0

Можете ли вы указать мне на любые образцы онлайн? Я предполагаю, что файл Excel должен быть создан заранее с помощью фиктивной строки, но мастер создает файл. Однако я не знаю, как это сделать. В пакете DTS имеется инструкция Prepare SQL, которая выдает запрос CREATE Table 'Sheet1' для создания листа в электронной таблице Excel. Этот оператор терпит неудачу, если файл уже существует с этим листом. Поэтому я не знаю, как будут создаваться фиктивные записи. И как бы вы удалили фиктивные записи? –

Смежные вопросы