Как выполнить пакеты 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\

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