Я пытаюсь создать электронную таблицу 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
Спасибо за комментарий. Создает ли мастер эти фиктивные записи, которые не включены в пакет DTS, который он создает? Так ли это работает, но запустить созданный пакет DTS нет? Если да, то почему я не вижу фиктивные записи в выходном файле? –
, который, возможно, делается внутри, когда используется пакет DTS через сервер sql, не уверен, что внутренняя логика используется для обработки этих записей, но вам нужно создать фиктивные строки с определенным типом данных впереди, прежде чем вам понадобится вывод как тот же тип данных в SSIS. – LONG
Можете ли вы указать мне на любые образцы онлайн? Я предполагаю, что файл Excel должен быть создан заранее с помощью фиктивной строки, но мастер создает файл. Однако я не знаю, как это сделать. В пакете DTS имеется инструкция Prepare SQL, которая выдает запрос CREATE Table 'Sheet1' для создания листа в электронной таблице Excel. Этот оператор терпит неудачу, если файл уже существует с этим листом. Поэтому я не знаю, как будут создаваться фиктивные записи. И как бы вы удалили фиктивные записи? –