web-dev-qa-db-fra.com

Comment exécuter des paquets Dtsx en ligne de commande

quand j'exécute le paquet DTSX via la ligne de commande, je suis déclenché avec l'erreur suivante en disant

1.La connexion est introuvable, l'erreur est renvoyée par la collection de connexions lorsque l'élément de connexion spécifique n'est pas trouvé.

2. Impossible de résoudre le chemin d'accès du package à un objet du package "xxxxxxx" .Vérifier que le chemin d'accès au package est valide

3.Le chemin d'accès au package a fait référence à un objet introuvable. Cela se produit lors d'une tentative de résolution d'un chemin d'accès à un objet introuvable.

Mais cela fonctionne bien lorsque je lance le package via le studio de développement Business Intelligence. 

10
mahesh

Prenant une hypothèse ici pendant que j'attends une réponse au commentaire, généralement lorsqu'un package fonctionne correctement dans BIDS mais ne fonctionne pas en ligne de commande, je trouve que cela est lié à une incompatibilité 64/32 bits.

Utilisez-vous Excel, Access ou tout autre élément sous les feuilles utilisant le pilote JET? Cela ne fonctionne qu'en mode 32 bits.

Sur un système d’exploitation 64 bits, par défaut, lorsque vous créez une nouvelle connexion ODBC, vous la créez dans l’espace de nom 64 bits auquel la version 32 bits ne pourra pas accéder? 

Utilisez-vous des pilotes Informix ou UDB/DB2? Je n'ai jamais trouvé que 32 versions de celles-ci.

Exécuter un package à partir de la ligne de commande

dtexec est le mécanisme de ligne de commande permettant d'exécuter un package SSIS. Il existe 2 types de système d’exploitation pour le système d’exploitation 64 bits, les deux sont nommés dtexec et généralement le 32 bits est référencé dans la variable d’environnement Chemin Windows.

Sur un système d'exploitation 64 bits, le chemin d'accès par défaut au 64 bits serait "c:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"

Toujours sur un système d'exploitation 64 bits, le chemin d'accès à la version 32 serait "c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"

Pour exécuter un package nommé FooBar.dtsx qui réside dans C:\Src\MyProject\MyProject, l'invocation serait

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

Si ce package réside sur SQL Server (DEVSQL01) dans le dossier MyProject, il s'agit de l'appel à exécuter le même package.

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

Modifier 

Pour appliquer une configuration, vous devez spécifier l'option /CONF.

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

En regardant vos commentaires, la seule différence entre notre utilisation est que vous avez tout mis entre guillemets. Essayez-le sans la citation précédente et suivante.

32
billinkc

tapez ci-dessous le texte pour appeler le package SSIS

dtexec/f /set\package.variables [Variable]; valeur

Exemple: - dtexec/f E:\test_package\test_package\Package.dtsx /Set\package.variables [id]; 1

 enter image description here

Référence Méthodes d'exécution du package SSIS

1
Samanth

L'option/SQL concerne les packages déployés sur MSDB -> nom_serveur\StoredPackages\MSDB \

0
Aram J. Dodakian