"Источник плоских файлов" (471) не прошел этап предварительного выполнения и возвратил код ошибки 0xC020200E. Как мне остановить это случившееся?

Привет, интересно, вы можете помочь...

Каждую неделю я получаю эту ошибку.

"Источник плоских файлов" (471) не прошел этап предварительного выполнения и возвратил код ошибки 0xC020200E. Не удается открыть файл данных "G:\Data\To be processing \RO_Orders.csv".

Я знаю, что если я зайду в редактор диспетчера соединений с плоскими файлами и поищу файл в этом месте "G:\Data\To be processing \ RO_Orders.csv", он будет работать. Это как если бы мне приходилось сбрасывать местоположение файла каждую неделю, файл находится в том же месте, где он был всегда.

Я не редактировал файл и не перемещал местоположение.

У меня есть много других пакетов, которые загружают различные типы данных, и они в порядке.

Также у меня есть файл журнала для ошибок.

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

Это повторяющееся раздражение, которое я не могу понять, почему это происходит... Идеи?

Заранее спасибо.

11 ответов

Решение

Попробуйте настроить строку подключения в Expressions, Введите полный путь к файлу на сервере файла, под которым вы загружаете ConnectionString имущество.

Для меня это была ошибка прав доступа при запуске пакета как задания через SQL Server.

Решением было добавить учетную запись пользователя, на котором запущен SQL Server, в папку с разрешениями на чтение / запись.

Мы выяснили, что если мы попытаемся запустить Пакет из SSMS на другой рабочей станции (возможно, подключенной как другой пользователь), то мы получим эту проблему доступа к csv. Однако, если мы выполняем пакет из SSMS на самом сервере, или если мы запускаем задачу агента SQL, которая выполняет пакет из любого места (запускает его с моего компьютера или с сервера), тогда он работает нормально. Это должно быть переключение токенов пользователей или попытки сделать это с моего компьютера через SSMS.

При подключении к сетевому диску, где находился файл (H:), я не проверял строку подключения и уровень, с которого файл захватывал ее в службах SSIS.

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

Если ваш плоский файл открыт во время выполнения package. вы также можете увидеть эту ошибку

Я хотел бы убедиться, что ваша учетная запись службы SQL Server имеет полные права на целевую папку.

После возникновения той же проблемы, что и у вас, я наконец проверил разрешения для папок, которые были созданы для нашей учетной записи службы SQL Server. Приходите и выясните, что в ней отсутствовали разрешения для папки "Полный доступ" и "Изменить". Как только я предоставил их нашему сервисному аккаунту, проблема исчезла.

Диалоговое окно "Разрешения папки"

Для меня проблема заключалась в том, что мне нужно было зарегистрировать сервер. Я работал над своим собственным проектом на своем собственном сервере/базе данных, и до добавления For Each Loop пакет работал нормально. Он запускался снова только после добавления цикла For Each Loop при регистрации сервера.

Была такая же проблема. Это были разрешения / пользовательские настройки для меня. Мне удалось использовать " Задать учетную запись запуска службы для агента SQL Server" (диспетчер конфигурации SQL Server), чтобы обновить для себя текущего пользователя агента SQL Server.

У меня были правильные права доступа к папке. Я даже вошел на сервер как пользователь, который контролирует службу агента SQL Server, и я мог получить доступ к файлу. Я вошел в пакет служб SSIS, и оказалось, что я не полностью определил сетевой путь.

Я случайно создал переменную с тем же именем на двух уровнях области видимости. Один был создан в полном пакете SSIS, а другой - только для цикла For Each. Когда я удалил тот, который создал только для каждого цикла, моя проблема была решена.

Я столкнулся с аналогичной ошибкой:

Невозможно получить информацию о столбце из диспетчера соединений с плоскими файлами.

У меня для проверки задержки установлено значение ИСТИНА. Я использовал выражение, чтобы установить имя файла для CSV-файла из переменной. Имя файла изменилось, но больше ничего. Несмотря на то, что я бы отлаживал код и знал, что переменная была установлена ​​правильно, эта ошибка будет продолжаться. Я даже заполнил переменную выражения старым допустимым именем файла в качестве заполнителя (для записи сценария).

Единственное, что сработало, - это создать новый диспетчер соединений. Использование переменной (со старым заполнителем имени файла) сразу решило проблему.

Короче говоря, старайтесь избегать повторного использования диспетчеров соединений по причинам, которые я не совсем понимаю.

Надеюсь, это кому-то поможет.

Другие вопросы по тегам