Как выполнить пакеты dtsx через командную строку

когда я выполняю пакет dtsx через командную строку, я запускаюсь со следующей ошибкой:

1.Соединение не найдено, ошибка вызывается коллекцией connections, когда конкретный элемент соединения не найден

2.Не удается разрешить путь пакета к объекту в пакете "xxxxxxx".Убедитесь, что путь к пакету действует

3.Путь пакета ссылается на объект, который не может быть найден, это происходит при попытке разрешить путь пакета к объекту, который не может быть найден

но это отлично работает, когда я запускаю пакет через Business Intelligence development studio.

3 ответов


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

вы используете Excel, Access или что-нибудь еще, что под листами использует драйвер JET? Это работает только в 32 битном режиме.

на 64-битной ОС, по умолчанию при создании нового соединения ODBC, вы будете создавать его в 64-битном пространстве имен, которое 32-битная версия не сможете получить доступ?

вы используете драйверы Informix или UDB/DB2? Я нашел только 32 версии.

запуск пакета из командной строки

программы dtexec - это механизм командной строки для запуска пакета служб SSIS. Он поставляется в 2 вкусах для 64-битной ОС, оба называются dtexec и, как правило, 32 бит ссылается на переменную среды Windows Path

на 64-битной ОС, путь по умолчанию для 64-битной будет будь "c:\Program Files\Microsoft SQL Server0\DTS\Binn\DTExec.exe"

все еще на 64-битной ОС, путь к 32-й версии будет "c:\Program Files (x86)\Microsoft SQL Server0\DTS\Binn\DTExec.exe"

для запуска пакета с именем FooBar.dtsx, который живет в C:\Src\MyProject\MyProject, вызов будет

"c:\Program Files (x86)\Microsoft SQL Server0\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx

если этот пакет живет на SQL Server (DEVSQL01) в папке MyProject, это будет вызов для запуска того же пакета.

"c:\Program Files (x86)\Microsoft SQL Server0\DTS\Binn\DTExec.exe" /SQL \MyProject\FooBar /SERVER DEVSQL01

редактировать

чтобы применить конфигурацию, необходимо указать /CONF вариант

"c:\Program Files (x86)\Microsoft SQL Server0\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx /CONF C:\FooBar.dtsConfig

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


введите ниже текст для вызова пакета служб SSIS

dtexec /f / set \package.переменные[переменная]; значение

пример: - dtexec /f E:\test_package\test_package\Package - ... dtsx-файл / set \package.переменные [id]; 1

enter image description here

ссылка способы выполнения пакета служб SSIS


параметр /SQL предназначен для пакетов, развернутых в MSDB - > имя_сервера\StoredPackages\MSDB\