Vorrei iniziare chiarendo che questa non è una domanda duplicata , né un potenziale duplicato per quella materia. Ho provato a implementare ogni risposta a ogni singola variante già esistente di questo problema su StackOverflow e DBA Stack Exchange, senza alcuna fortuna.
Ho avuto problemi con questo problema negli ultimi due giorni (lavorando su di esso per circa 7 ore al giorno), e anche dopo aver cercato su Google il problema, sembra che nessun altro abbia la stessa variante esatta del mio problema.
Cosa sto cercando di fare?
In SSIS, sto provando a leggere da un file CSV e inserisco le righe da esso in un database OLE DB. Per questo, ho realizzato la configurazione più semplice di sempre, vista sotto.
Flat File Source
- legge le righe CSV.Derived Column
- attualmente non fa nulla (è lì solo per sperimentare).Data Conversion
- attualmente non fa nulla (è lì solo per sperimentare).OLE DB Destination
- memorizza le righe nel database.
Quando provo a eseguirlo, interrompe l'esecuzione nella mia destinazione OLE DB con il seguente messaggio di errore.
Si è verificato un errore con la colonna di input "Quantità" (187) sull'input "Input destinazione OLE DB" (51). Lo stato della colonna restituito era: "Impossibile convertire il valore a causa di una potenziale perdita di dati".
La colonna che non riesce ( Amount
) è attualmente di tipo DT_STR
. Sembra essere il tipo in cui ho più fiducia in questo momento.
Che cosa ho provato?
- Ho provato a utilizzare la funzione
Flat File Connection
"Suggerisci tipi" sulla colonna che non funziona. Ciò ha reso raccomandare ilSingle byte signed int
tipo di dati.- Si ferma alla mia fonte di file flat .
- L'errore è la conversione dei dati non riuscita. La conversione dei dati per la colonna "Importo" ha restituito il valore di stato 2 e il testo di stato "Impossibile convertire il valore a causa di una potenziale perdita di dati".
- Ho provato a usare il
Derived Column
per lanciare la colonna in aDT_I4
.- Si ferma alla mia colonna derivata .
- L'errore è la conversione dei dati non riuscita. La conversione dei dati per la colonna "Importo" ha restituito il valore di stato 2 e il testo di stato "Impossibile convertire il valore a causa di una potenziale perdita di dati".
- Ho provato a usare il
Data Conversion
per trasmettere il valore della mia colonna a aDT_I4
.- Si ferma al mio
Data Conversion
. - L'errore è la conversione dei dati non riuscita. La conversione dei dati per la colonna "Importo" ha restituito il valore di stato 2 e il testo di stato "Impossibile convertire il valore a causa di una potenziale perdita di dati".
- Si ferma al mio
- Ho provato a cambiare la lunghezza del mio
DT_STR
valore nella sorgente e nella destinazione.- Si ferma alla fonte o alla destinazione in base alle impostazioni.
- Ho provato a connettermi utilizzando un connettore di origine Excel invece con e senza l'
IMEX=1
aggiunta alla stringa di connessione. Senza fortuna.
Il mio senso della programmazione mi dice che sono fregato. Non ho mai mai incontrato un grosso problema per una cosa così semplice.
E perché non posso semplicemente ignorare la "potenziale" perdita di dati? È davvero frustrante dire il minimo.
Il mio sistema
È una macchina Windows Server 2008 R2 con SQL Server 2008 installato. La macchina stessa viene completamente aggiornata tramite Windows Update.
Amount
?
Amount
colonna. Scatta una schermata e aggiorna la tua domanda con questa immagine.