Charger un fichier Excel, une opération simple à première vue, mais qui fini souvent par nous laisser dans le désarroi le plus complet.
Mais bon cela va de mieux en mieux en laissant derrière nous les pilotes OLEDB JET au profit des pilotes OLEDB ACE et surtout la version 64Bits de ceux-ci
Pré-requis:
- Il n’est pas possible d’installer la version 64 bits et 32 bits des pilotes ACE, en mode développement BIDS étant en 32 bits, il vous faudra donc la version 32bits de ceux-ci, il vous sera donc impossible de lancer le DTSX en 64 bits depuis votre machine de dev.
— MAJ du 22/07/2017
C’est finalement possible d’installer la version 64 bits et 32 bits en même temps, vous pouvez suivre l’article de blog de Meagan Longoria pour avoir le détail.
La procédure passe soit par l’installation de Office System Driver: Data Connectivity Components soit par l’installation avec l’argument /passive en ligne de commande.
- De la même manière, en installant la version 64 Bits sur votre environement de production, vous ne pourrez pas lancer vos package dans BIDS (et c’est tant mieux ?)
- Télécharger la version 32 / 64 Bits des pilotes OLEDB ACE (12.0) sur le site de microsoft
La mise en place:
Si je ne m’abuse, le « Excel Source » de SSIS, ne supporte pas le mode 64 Bits et vous renverra un jolie message du type :
SSIS Error Code DTS_E_OLEDB_EXCEL_NOT_SUPPORTED: The Excel Connection Manager is not supported in the 64–bit version of SSIS
Il faudra donc passer pas une source de donnée OLEDB comme décrit ci-dessous:
- Configurer la connexion OLEDB
- N’oublions pas de modifier les extended properties pour ajouter Excel 12.0 …
- Ce qui nous donne la chaîne de connexion suivante :
Data Source=c:\monfichier.xlsx;Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties= »Excel 12.0 Xml;HDR=YES »; - On crée maintenant la OLEDB Source qui prendra le « connection manager » précédemment définit.
Lorsque nous lancerons notre Package sur notre poste de dév avec BIDS celui-ci utilisera le pilote ACE 32bits, et sur notre environnement de prod lorsque l’agent lancera notre package en 64Bits, celui-ci utilisera le driver ACE 64 Bits.
2 Comments
je te remercie pour cette article Bravo
J’adore le chat, il est parfaitement choisi pour cette problématique 😀
C’est quand même fou que ce soit si compliqué de charger des fichiers Excel dans l’ETL de Microsoft.
Merci pour tes clarifications 🙂