Tutoriel pour exécuter un package SSIS en ligne de commande avec l’utilitaire DTExec.
L’outil SSIS DTEXEC permet de lancer des commandes batch en ligne de commande pour gérer les packages. En effet, la suite Microsoft SQL Server inclut l’exécutable DTExec.exe. C’est un outil de Scripting pour commander et paramétrer les packages SSIS. Il est possible de lancer l’utilitaire d’exécution des packages à partir d’une invite de commande, ou encore à partir d’un fichier batch, c’est à dire avec l’extension .bat.
Table of Contents
Exécuter un package SSIS en ligne de commande
Pour commencer, ouvrir une invite de commande MS-DOS en passant par le menu Démarrer sous Windows. Puis cliquer sur Invite de commandes. Ou encore en tapant cmd dans la barre de recherche Windows. Soit un package SSIS simple qui se trouve dans ce dossier:
- C:\ssis\Package.dtsx
Il n’est pas nécessaire d’exécuter l’utilitaire dtexec.exe à partir du dossier où se trouve le package SSIS. Mais il faut fournir le chemin exact et absolu jusqu’au fichier DTSX. Ou encore le chemin relatif depuis le dossier où se trouve la commande.
1. Exécuter un package SSIS stocké dans un dossier Windows
Par exemple, taper cette commande pour exécuter un package. Cet exemple exécute le package avec les paramètres par défaut, c’est à dire qu’il utilise le fichier de configuration (avec une extension dtsconfig) par défaut.
DTEXEC /FILE "C:\ssis\Package.dtsx"
Les codes d’erreurs SSIS suivants s’affiche alors peut-être:
Code: 0xC001700A
Source: Package
Description: The version number in the package is not valid. The version number cannot be greater than current version number.
Code: 0xC0016020
Source: Package
Description: Package migration from version 8 to version 6 failed with error 0xC001700A « The version number in the package is not valid. The version number cannot be greater than current version number. ».
2. Erreur SSIS 0xC001700A de version incorrecte avec DTEXEC
En fonction de la configuration du PC, du serveur SQL Server, de l’environnement de développement, il est possible que de multiples versions de l’éxécutable et du moteur de base de données cohabitent. La solution pour corriger le code d’erreur SSIS 0xC001700A est de modifier la version SQL Server utilisée. Pour corriger le code d’erreur, vérifier donc les versions et les niveaux de compatibilité des trois éléments suivants:
- L’utilitaire DTExec.exe.
- Le moteur de base de données SQL Server.
- Le niveau de compatibilité du projet SSIS.
2.1 Vérifier la version de DTExec
Depuis l’invite de commande, taper DTExec pour afficher le numéro de la version détaillée de l’utilitaire SSIS.
DTExec
Microsoft (R) SQL Server Execute Package Utility
Version 11.0.7001.0 for 32-bit
C’est donc la version 11.0.7001.0 de l’utilitaire DTExec qui est utilisée. Soit une version correspondant à SQL Server 2012, d’après la liste des versions SQL Server et des mises à jours disponibles sur le site officiel.
2.2 Vérifier la version SQL Server utilisée
Cette vérification n’est pas obligatoire, mais il est recommandé de maintenir tous les blocs à niveau. Pour cela, se connecter à la base avec SSMS et exécuter cette requête pour vérifier la version exacte et détaillée du moteur SQL Server utilisée.
select @@version as [SQL_Version];
C’est la version Microsoft SQL Server 2019 (RTM-GDR) 15.0.2095.3 qui est installée.
2.3 Vérifier le niveau de compatibilité du package SSIS à exécuter
Vérifier ou modifier maintenant le niveau de compatibilité du package SSIS à exécuter avec DTExec. Depuis Visual Studio, ouvrir le projet contenant le package à exécuter.
- Faire un clic-droit sur le projet SSIS
- Afficher les Propriétés du projet.
Vérifier ou modifier ensuite la propriété TargetServerVersion, qui est le niveau de compatibilité cible du projet SSIS en cours de développement. Avec une compatibilité ascendante mais non descendante, il n’est pas possible d’exécuter un package SQL Server 2019 avec la version SQL Server 2012 de DTExec. L’inverse en revanche serait possible.
- Depuis les Pages des propriétés du projet.
- Dans l’onglet Configuration et la section Général, vérifier ou modifier la version cible : SQL Server 2019.
Après avoir éventuellement changer de version, déployer à nouveau le package dans le dossier source avant de l’exécuter.
2.4 Modifier la variable d’environnement PATH
Pour changer la version du logiciel DT Exec appelée depuis MS-DOS, afficher la variable PATH depuis une ligne de commande.
path
Voici les chemins trouvés dans la variable d’environnement PATH, affichés en ligne avec Notepad++.
- Chemins avec les versions MS SQL en 32-bit
- C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\; – SQL Server 2012 (chemin actif)
- C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\; – SQL Server 2014
- C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\; – SQL Server 2016
- C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\; – SQL Server 2017
- C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\; – SQL Server 2019 (chemin à utiliser)
- C:\Program Files (x86)\Microsoft SQL Server\160\DTS\Binn\; – SQL Server 2022
- Chemins avec les versions MS SQL en 64-bit
- C:\Program Files\Microsoft SQL Server\150\DTS\Binn\; – SQL Server 2019
Adapter la version DTExec à la compatibilité du package
Il suffit de déplacer le chemin vers le dossier SQL Server 2019 en 64 bits avant les autres chemins pour qu’il soit sélectionner par défaut. Pour cela, suivre ces étapes réalisées avec Windows 10 :
- Ouvrir les paramètre Windows avec le raccourci Windows + I
- Dans la barre de recherche, entrer variables
- Depuis la liste des résultats, sélectionner Editer les variables d’environnement systèmes
- Sélectionner alors Variables d’Environnement.
Pour modifier le contenu de la variable d’environnement, depuis cette fenêtre, effectuer ces actions:
- Sélectionner la variable Path
- Choisir l’option Editer
Changer alors l’ordre des exécutables dans la liste. En effet, pour un exécutable donné avec le même nom, Windows utilise le premier de la liste, triée par défaut par ordre alphabétique.
- Sélectionner la version la plus récente depuis le dossier en 32-bit, soit C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;
- Monter la valeur dans la liste avec l’option Move Up, jusqu’à être le premier des chemins relatifs à SQL Server.
Redémarrer le PC pour prendre en compte les modifications par le système d’exploitation.
3. Exécuter le package SSIS après la correction
Après avoir redémarrer le PC, taper à nouveau la commande DTExec depuis une invite de commande DOS pour vérifier la nouvelle version de DTExec. La fenêtre affiche maintenant 15.0.2000.5.
Exécuter enfin à nouveau le package pour vérifier le bon fonctionnement, avec la même commande.
DTEXEC /FILE "C:\ssis\Package.dtsx"
4. Afficher les options SSIS en ligne de commande avec DTEXEC
Enfin, pour voir la liste complète des options de ligne de commande pour le type dtexec. Afficher l’aide de la commande DTEXEC en tapant ce script depuis une ligne de commande MS-DOS:
DTEXEC /?
Conclusion sur l’exécution de packages SSIS avec DTExec
Enfin, pour obtenir plus de détails, la documentation officielle de l’utilitaire dtexec est disponible. Il est possible de gérer d’autres aspects de la suite Microsoft BI avec des scripts. Comme déployer des cubes SSAS avec du code XMLA, ou encore déployer des rapports SSRS avec MS-DOS.
Voici cette fois comment déployer un package SSIS depuis une ligne de commande DOS.
Soyez le premier à commenter