Per simulare il problema che si sta affrontando, ho creato il seguente esempio utilizzando SSIS 2008 R2
con il backend SQL Server 2008 R2
. L'esempio è basato su ciò che ho raccolto dalla tua domanda. Questo esempio non fornisce una soluzione, ma potrebbe aiutarti a identificare dove potrebbe essere il problema nel tuo caso.
Creato un semplice file CSV con due colonne, ovvero il numero dell'ordine e la data dell'ordine. Come hai menzionato nella tua domanda, i valori di entrambe le colonne sono qualificati con virgolette (") e anche le linee terminano con Avanzamento riga (\ n) con la data dell'ultima colonna. Lo screenshot sottostante è stato preso usando Notepad++, che in grado di visualizzare i caratteri speciali in un file. LF nello screenshot denota Line feed.
creato una semplice tabella di nome dbo.Destination
nel database di SQL Server per popolare i dati del file CSV utilizzando il pacchetto SSIS. Creare copione per la tabella è riportata di seguito:
CREATE TABLE [dbo].[Destination](
[OrderNumber] [varchar](50) NULL,
[OrderDate] [date] NULL
) ON [PRIMARY]
GO
Nel pacchetto SSIS, ho creato due gestori connessioni. SQLServer è stato creato utilizzando la connessione OLE DB per connettersi al database SQL Server. FlatFile è un gestore di connessione file flat.
Lima piatta gestione connessione è stato configurato per leggere il file CSV e le impostazioni sono riportati di seguito.Le frecce rosse indicano le modifiche apportate.
Fornito un nome per il gestore di connessione file flat. Passato alla posizione del file CSV e selezionato il percorso del file. Inserito il doppio preventivo ("
) come qualificatore di testo. Modificato il delimitatore riga intestazione da {CR} {LF} a {LF}
. Questa modifica del delimitatore di righe di intestazione si riflette anche nella sezione Colonne.
Non sono state apportate nella sezione Colonne.
cambiato il nome della colonna da Column0-OrderNumber
.
cambiato il nome della colonna da Column1-OrderDate
e cambiato anche il tipo di dati per date [DT_DATE]
Anteprima dei dati all'interno della connessione file flat direttore sembra buono.
Nella scheda Control Flow
del pacchetto SSIS, posto un Data Flow Task
.
All'interno del Flusso di dati, posto un Flat File Source
ed un OLE DB Destination
.
Il Flat File Source
è stato configurato per leggere i dati del file CSV utilizzando la gestione connessione FlatFile. Sotto tre schermate viene mostrato come è stato configurato il componente di origine file flat.
Il OLE DB Destination
componente è stato configurato per accettare i dati del piatto di origine file e inserirlo nella tabella del database SQL Server denominata dbo.Destination
. Sotto tre schermate viene mostrato come è stato configurato il componente Destinazione OLE DB.
Utilizzando i passaggi riportati nel sotto 5 screenshot, ho aggiunto un visualizzatore di dati sul flusso tra l'origine file flat e Destinazione OLE DB.
Prima di eseguire il pacchetto, ho verificato i dati iniziali presenti nella tabella. Al momento è vuoto perché l'ho creato utilizzando lo script fornito all'inizio di questo post.
eseguito il pacchetto e l'esecuzione del pacchetto temporaneamente in pausa per visualizzare i dati che fluiscono da Flat Fonte File per OLE DB destinazione nel visualizzatore di dati. Ho fatto clic sul pulsante Esegui per procedere con l'esecuzione.
Il pacchetto eseguito con successo.
dati di origine di file flat è stato inserito con successo nella tabella dbo.Destination
.
Ecco il layout della dbo.Destination tavolo. Come si può vedere, il campo OrderDate è del tipo di dati data e il pacchetto continua a inserire correttamente i dati.
Questo post anche se non è una soluzione. Si spera che ti aiuti a scoprire dove potrebbe essere il problema nel tuo scenario.
@Siva - ottima risposta all'altra domanda – JNK