2012-05-09 16 views
5

sto ricevendo un errore durante il tentativo di copiare i 4 tavoli da una sorgente di MySQL a SQL Server 2008.SSIS: copiare le tabelle da MySQL a SQL Server 2008

Ecco una foto del flusso di dati, come si può vedere , 2 di loro sono OK (i più piccoli)

enter image description here

Con un gestore OnError eventi sono in grado di vedere gli errori. Eccoli.

Codice errore SSIS DTS_E_OLEDBERROR. Si è verificato un errore OLE DB. Errore codice: 0x80040E21. Un record OLE DB è disponibile. Origine: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E21 Descrizione: "Errori generati dall'operazione OLE DB a più passaggi Controllare ciascun valore di stato OLE DB , se disponibile. Non è stato eseguito alcun lavoro.".

Si è verificato un errore nella colonna di input "FechaHoraCorteAgente" (884) nell'ingresso "Ingresso destinazione OLE DB" (510). Lo stato della colonna restituito era: "Conversione non riuscita perché il valore di dati ha superato il tipo specificato .".

Codice errore SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. "Input" OLE Ingresso destinazione DB "(510)" non riuscito perché si è verificato il codice di errore 0xC020907A e la disposizione della riga di errore su "input" Destinazione OLE DB Input "(510)" specifica errore su errore. Si è verificato un errore sull'oggetto specificato del componente specificato. Potrebbero esserci dei messaggi di errore postati prima con ulteriori informazioni sull'errore.

Codice errore SSIS DTS_E_PROCESSINPUTFAILED. Il metodo ProcessInput sul componente "Destinazione OLE DB 2" (497) non è riuscito con il codice di errore 0xC0209029 durante l'elaborazione dell'ingresso "Ingresso destinazione OLE DB" (510). Il componente identificato ha restituito un errore dal metodo ProcessInput . L'errore è specifico per il componente, ma l'errore è irreversibile e causa l'interruzione dell'attività del flusso di dati. È possibile che siano messaggi di errore pubblicati prima di questo con ulteriori informazioni sull'errore .

Il componente "ado net conptacto" (1) non è stato in grado di elaborare i dati. Eccezione da HRESULT: 0xC0047020

Il componente "ADO NET logllamados" (482) non è stato in grado di elaborare i dati . Eccezione da HRESULT: 0xC0047020

Codice errore SSIS DTS_E_PRIMEOUTPUTFAILED. Il metodo PrimeOutput sul componente "ado net conptacto" (1) ha restituito il codice di errore 0xC02090F5. Il componente ha restituito un codice di errore quando il motore della pipeline ha chiamato PrimeOutput(). Il significato del codice di errore è definito dal componente , ma l'errore è irreversibile e la pipeline non è più in esecuzione. Potrebbero esserci dei messaggi di errore postati prima con ulteriori informazioni sull'errore.

Codice errore SSIS DTS_E_PRIMEOUTPUTFAILED. Il metodo PrimeOutput sul componente "Logllamados ADO NET" (482) ha restituito il codice di errore 0xC02090F5. Il componente ha restituito un codice di errore quando il motore della pipeline ha chiamato PrimeOutput(). Il significato del codice di errore è definito dal componente , ma l'errore è irreversibile e la pipeline non è più in esecuzione. Potrebbero esserci dei messaggi di errore postati prima con ulteriori informazioni sull'errore.

Qualche idea di cosa sta succedendo qui?

+0

La colonna di origine ha 0000-00-00 in un campo datetime. Quindi c'era l'errore. Lo risolverà con una colonna derivata. Grazie! –

+0

Non me lo consente adesso perché ho meno di 100 punti. Lo farò in poche ore quando mi è permesso. Grazie. –

+0

ha fatto +1 sulla tua domanda - per permetterti di pubblicare la tua risposta - Anche se, come dice @Diego, è abbastanza ovvio, qualsiasi quantità di Google-it dovrebbe averlo risolto ... –

risposta

3

colonna di origine ha 0000-00-00 in un campo datetime. Quindi c'era l'errore.

creato una colonna derivata con l'espressione:

(DT_DBTIMESTAMP)(DAY([FechaHoraCorteAgente]) == 0 ? NULL(DT_DBTIMESTAMP) : [FechaHoraCorteAgente]) 
+0

Non dovrebbe essere contrassegnato come accettato risposta? –

+1

Sì, lo farò, ma si dice che sarà in grado di farlo in 2 giorni. Immagino che questo sia qualcosa di diverso dal mio essere nuovo nella comunità. Lo farò tra 48 ore. –

5

"Conversione non riuscita perché il valore di dati ha superato il tipo specificato." sembra abbastanza ovvio, stai cercando di inserire qualcosa in cui non si adatta. Vi suggerisco di confrontare tutte le colonne di origine con colonne di destinazione e assicurarsi che:

  • lunghezze sono abbastanza
  • tipi di dati sono compatibili

potete inserire le strutture delle vostre tabelle se si desidera un a portata di mano che

2

Si tratta di un guasto alla fonte, se il pacchetto non riesce durante l'inserimento della destinazione, che è facilmente risolvibile. Mi sono imbattuto in molte situazioni in cui i dati di origine sono più grandi di quelli che la sorgente SSIS si aspetta di vedere.

Penso che quando si crea l'origine, SSIS campiona automaticamente i dati di input per vedere la lunghezza massima. Ma cosa succederebbe se si superasse quella lunghezza massima? È lì che vedo la maggior parte dei problemi relativi all'overflow.

Inoltre, molte volte quando si tratta di dati di origine gestiti male, si vedrebbero i dati di un carattere in un campo di data e ora. Un tale scenario rovinerebbe anche il pacchetto.

Problemi correlati