Oggi, dovendo importare dei dati da Excel per poter creare correttamente una dimensione di analisi nel progetto di BI che stiamo sviluppando per una società di assicurazioni, mi sono imbattuto in un fastidioso comportamento del driver OLEDB per Excel che permette di “vedere” i dati nei fogli excel come se fossero tabelle.
Una colonna contenente i CAB degli sportelli bancari veniva identificata come float (e già qui…) ma, per magia, tutti i CAB con “0” come primo valore non venivano identificati come numeri (e chissa perchè) e quindi il valore restituto era NULL.
Problemi di questo tipo si riproponevano anche su altre colonne. Per evitare di diventare pazzo, ho risolto il problema alla radice, ho imposto al driver OLEDB di non fare alcuna conversione automatica, tramite l’inserimento a mano nella connection string della “documentatissima” extended property IMEX.
Impostando IMEX=1 tutte le colonne saranno trattate come stringhe…e cosi finalmente posso fare tutti i cast ai tipi di dati corretti direttamente nei SSIS.
Ho trovato la documentazione qui:
http://www.connectionstrings.com/excel