Пакет служб SSIS не записывает данные в пункт назначения Excel
У меня есть простой пакет служб SSIS, и я пытаюсь экспортировать один и тот же набор данных из таблицы в обычный файл и в папку Excel. Пакет отлично работает, когда я запускаю локально, и создает как текстовый файл, так и файл Excel с данными.
Но при развертывании на другом сервере задание агента sql работает нормально, и журнал в каталоге служб Integration Services для пакета говорит, что он записал как 9000 строк в Excel, также создается новый файл Excel, но он не записывает в него никаких данных (пусто только с заголовками). Текстовый файл работает нормально, и в нем есть все данные, которые мне нужны.
Поток пакетов служб SSIS:
Я работаю с Sql server 2014, Visual Studio 2013 с SSDT и использую Excel 2007 в качестве места назначения Excel.
3 ответа
У нас была такая же проблема. Решение состоит в том, что пользователь, который запускает пакет служб SSIS, должен иметь полный доступ к c:\users\default.
Вы можете проверить это, запустив монитор процессов sysinternals на компьютере, на котором выполняется задание SSIS.
Вы можете найти больше информации здесь:
Проблема с пустыми разрешениями для файла Excel: SSIS Excel Destination буферизует большие наборы записей через C: \ Users \ Default - этот пост заставил меня найти это решение
https://www.csopro.de/biblog/2018/04/ssis-fehlerbehebung-bei-excel-destination-schreibt-keine-zeilen/ - мой блог. Здесь я опишу проблему - к сожалению, на немецком языке]
У меня была такая же проблема с записью на несколько рабочих листов в файле Excel из запланированного задания агента SQL. Работал нормально около 4 месяцев. Затем внезапно без изменений в пакете один из 5 рабочих листов больше не заполнялся данными. Сообщение об ошибке не сгенерировано, и оно отлично работало в каждом тесте из Visual Studio и инструментов данных (старые инструменты «BIDS», как мы их называли).
Я так и не нашел решения, и он по-прежнему не записывает никаких данных на этот единственный рабочий лист из 5 в файле Excel. (Поэтому ответы выше об учетной записи, под которой выполняется задание из агента SQL, не имеют соответствующих разрешений, НЕ являются правильным ответом для этой проблемы.)
Кроме того, новый пакет, который я создал сегодня, имеет ту же проблему, только у этого есть только один рабочий лист. Опять же, в среде разработки работает нормально, но в целевом файле не появляются данные и нет ошибок. Не только это, но и временная метка в файле такая же, как и в файле шаблона - кажется, что он даже НЕ ПЫТАЕТСЯ записать в файл.
При проверке каждого журнала выполнения для пакета в каталоге служб Integration Services в каждом журнале есть запись, которая показывает более 9 тысяч записей, «написанных» для задачи потока данных.
Наконец, если я изменю имя целевого файла, задание агента SQL сгенерирует ожидаемую ошибку, поэтому исключаются ответы, предполагающие, что путь неверен.
Это странно. И раздражающий.
Я столкнулся со странным поведением при использовании запланированных пакетов служб SSIS, которые используют объект Excel.
Для меня исправлением было редактировать свойства агента. На вкладке "Свойства выполнения" попробуйте включить параметр "использовать 32-разрядную среду выполнения" и заставить SSIS работать в 32-разрядном режиме вместо 64-разрядного.