Sto cercando di leggere un file flat in SSIS che è in questo formato
col1 þ col2 þ col 3
Sto usando il gestore di connessione flatfile ma non ci sono opzioni per il carattere ‘þ’ nella sezione delimitatore colonne del gestore connessioni.
Quale sarebbe la soluzione per questo? Oltre a leggere il file e sostituire il carattere spinoso con un delimitatore supportato da SSIS,
Essendo un idiota “mericano”, penso che il carattere della spina minuscola sia 0xFE mentre il maiuscolo è 0xDE. Questo diventerà importante presto.
Ho creato un pacchetto SSIS con un gestore di connessione file flat. L’ho indicato in un file delimitato da virgola che sembrava
col 1,col 2,col 3
Questo mi ha permesso di ottenere il set di metadati per il file. Una volta ho definito tutte le colonne e il mio pacchetto è comunque buono. Salvarla. Confidalo nel tuo sistema di controllo della versione. Se non stai usando il controllo di versione, vergognati, ma poi fai una copia del tuo file .dtsx e mettilo da qualche parte a portata di mano.
Sostituisci il file delimitato da virgole con quello delimitato da una spina.
Quello che faremo è modificare l’XML che è il nostro pacchetto SSIS a mano per scambiare il delimitatore di a ,
con un þ
. È un’operazione semplice, ma dal momento che si sta uscendo dalla prenotazione, è facile sporcarsi e quindi il pacchetto non si aprirà correttamente nell’editor.
Se hai il pacchetto aperto, chiudi il pacchetto ma lascia Visual Studio aperto. Fare clic con il tasto destro sul file e selezionare “Visualizza codice”.
In un pacchetto SSIS 2012, lo si cercherà
DTS:ColumnDelimiter="_x002C_"
In un pacchetto del 2008,
_x002C_
Quello che faremo è sostituire _x00FE_
(thorn) per _x002C_
(virgola). Salvare il file e quindi fare doppio clic per aprirlo.
Ora il tuo gestore delle connessioni dovrebbe mostrare il simbolo della spina nella scheda Colonne.
È interessante notare che, dopo aver aperto il pacchetto, se si torna indietro nel codice, l’editor avrà scambiato il carattere spinoso nel file al posto del codice di carattere esagonale. Strano.