DTExec не находит файл

У меня создан пакет, который загружен на наш сервер SQL. Пакет помещается в папку, читает и выделяет, выгружает Excel в таблицу и затем архивирует.

При нормальном запуске пакета (через BIDS) работает отлично.

Но когда я прохожу это через SSMS используя следующую строку:

exec master.dbo.xp_cmdshell 'C:\"Program Files (x86)"\"Microsoft SQL Server"\100\DTS\Binn\DTExec.exe /DTS "<package location>" /SERVER "<Server>" /CHECKPOINTING OFF  /REPORTING V'

Раздел, который извлекает имя Excel (для каждого цикла в пакете), сообщает, что ничего не находит.

   Description: The For Each File enumerator is empty. The For Each File enumerator did not find any files that matched the file pattern, or the specified directory was empty.

Пакет должен быть запущен в 32-битном режиме для чтения Excel, поэтому я использую 32-битный dtexec место нахождения.

Кто-нибудь знает, что случилось?

1 ответ

Решение

На мой взгляд, вы должны использовать create SSIS Type Job и изменить:

exec master.dbo.xp_cmdshell 'C:\"Program Files (x86)"\"Microsoft SQL Server"\100\DTS\Binn\DTExec.exe /DTS "<package location>" /SERVER "<Server>" /CHECKPOINTING OFF  /REPORTING V'

с:

EXEC dbo.sp_start_job 'job_name';

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

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