Как выполнить пакеты dtsx через командную строку
Когда я выполняю пакет dtsx через командную строку, я получаю следующую ошибку:
1. Соединение не найдено, возникает ошибка при сборе соединений, когда конкретный элемент соединения не найден
2. Не удается разрешить путь пакета к объекту в пакете "xxxxxxx". Убедитесь, что путь к пакету действителен
3.Путь к пакету ссылается на объект, который не может быть найден, это происходит, когда делается попытка разрешить путь пакета к объекту, который не может быть найден.
Но это прекрасно работает, когда я запускаю пакет в студии разработки Business Intelligence.
3 ответа
Делая предположение, пока я жду ответа на комментарий, как правило, когда пакет работает нормально в BIDS, но не работает из командной строки, я обнаружил, что это связано с несовместимостью 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 Server\100\DTS\Binn\DTExec.exe"
Все еще на 64-битной ОС путь к 32-й версии будет "c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"
Чтобы запустить пакет с именем FooBar.dtsx, который находится в C:\Src\MyProject\MyProject, вызов будет
"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx
Если этот пакет живет на SQL Server (DEVSQL01) в папке MyProject, это будет вызов для запуска того же пакета.
"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /SQL \MyProject\FooBar /SERVER DEVSQL01
редактировать
Чтобы применить конфигурацию, вам нужно указать /CONF
вариант
"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx /CONF C:\FooBar.dtsConfig
Глядя на ваши комментарии, единственная разница между нашим использованием заключается в том, что вы заключили все в двойные кавычки. Попробуйте это без предшествующей и завершающей цитаты.
Введите текст ниже, чтобы вызвать пакет служб SSIS
dtexec /f /set \package.variables[Переменная]; значение
Пример:- dtexec /f E:\test_package\test_package\Package.dtsx /set \package.variables[id];1
Справочные способы выполнения пакета служб SSIS
Параметр /SQL предназначен для пакетов, развернутых в MSDB -> имя_сервера \StoredPackages\MSDB\