2012-05-09 18 views
5

Dostaję błąd podczas próby kopiowania 4 tabel ze źródła danych MySQL do programu SQL Server 2008.SSIS: kopiowanie tabel z MySQL do SQL Server 2008

Oto zdjęcia z przepływem danych, jak widać , 2 z nich są OK (mniejsze)

enter image description here

z obsługi OnError zdarzeń jestem w stanie zobaczyć błędy. Tutaj są.

Kod błędu SSIS DTS_E_OLEDBERROR. Wystąpił błąd OLE DB. Błąd kod: 0x80040E21. Dostępny jest rekord OLE DB. Źródło: "Microsoft Klient SQL Server Native Client 10.0" Hresult: 0x80040E21 Opis: "Wielokrokowa operacja OLE DB wygenerowała błędy Sprawdź każdą wartość OLE DB , jeśli jest dostępna." Nie wykonano żadnej pracy. ".

Wystąpił błąd z kolumną wejściową "FechaHoraCorteAgente" (884) na wejściu "Wejście docelowe OLE DB" (510). Status kolumny zwrócony był: "Konwersja nie powiodła się, ponieważ wartość danych przekroczyła określony typ .".

Kod błędu SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. Wejście "OLE DB" "(510)" nie powiodło się, ponieważ wystąpił kod błędu 0xC020907A , a ustawienie wiersza błędu na "wejściu" OLE DB Destination Wejście "(510)" określa awarię błędu. Wystąpił błąd w określonym obiekcie określonego komponentu . Może być wyświetlany komunikat o błędzie z dodatkowymi informacjami o awarii.

Kod błędu SSIS DTS_E_PROCESSINPUTFAILED. Metoda ProcessInput na obiekcie "OLE DB Destination 2" (497) nie powiodła się z kodem błędu 0xC0209029 podczas przetwarzania wejścia "OLE DB Destination Input" (510). Zidentyfikowany składnik zwrócił błąd z metody ProcessInput . Błąd jest specyficzny dla składnika, ale błąd jest krytyczny i spowoduje zatrzymanie zadania przepływu danych. Nie może być wiadomości o błędach zamieszczonych wcześniej z więcej informacji na temat błędu .

Składnik "ado net conptacto" (1) nie mógł przetworzyć danych. Wyjątek od HRESULT: 0xC0047020

Składnik "ADO NET logllamados" (482) nie mógł przetworzyć danych . Wyjątek od HRESULT: 0xC0047020

Kod błędu SSIS DTS_E_PRIMEOUTPUTFAILED. Metoda PrimeOutput na komponencie "ado net conptacto" (1) zwróciła kod błędu 0xC02090F5. Komponent zwrócił kod błędu, gdy silnik potoku o nazwie PrimeOutput(). Znaczenie kodu błędu jest zdefiniowane przez komponent , ale błąd jest krytyczny i potok przestał działać. Wcześniejsze mogą pojawiać się komunikaty o błędach z dodatkowymi informacjami o błędzie .

Kod błędu SSIS DTS_E_PRIMEOUTPUTFAILED. Metoda PrimeOutput na składniku "ADO NET logllamados" (482) zwróciła kod błędu 0xC02090F5. Komponent zwrócił kod błędu, gdy silnik potoku o nazwie PrimeOutput(). Znaczenie kodu błędu jest zdefiniowane przez komponent , ale błąd jest krytyczny i potok przestał działać. Wcześniejsze mogą pojawiać się komunikaty o błędach z dodatkowymi informacjami o błędzie .

Masz pojęcie o tym, co się tutaj dzieje?

+0

Kolumna źródłowa ma 0000-00-00 w polu datetime. Więc był błąd. Rozwiąże je za pomocą kolumny pochodnej. Dzięki! –

+0

Nie pozwoli mi to teraz, ponieważ mam mniej niż 100 punktów. Zrobię to za kilka godzin, kiedy będę mógł. Dzięki. –

+0

+ 1'd Twoje pytanie - abyś mógł zamieścić swoją odpowiedź - chociaż, jak mówi @Diego - to oczywiste - każda kwota Google-ingu powinna była rozwiązać ten problem ... –

Odpowiedz

3

Kolumna źródłowa ma wartość 0000-00-00 w polu datetime. Więc był błąd.

Utworzono pochodnej Kolumna z wyrażeniem:

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

Nie powinien być oznaczony jako zaakceptowany odpowiedź? –

+1

Tak, zrobię to, ale będzie napisane, że będę w stanie to zrobić za 2 dni. Sądzę, że jest to coś, co wiąże się z tym, że jestem nowy w społeczności. Zrobię to za 48 godzin. –

5

"Konwersja nie powiodła się, ponieważ wartość danych przekroczyła określony typ." wydaje się dość oczywiste, próbujesz wstawić coś, co nie pasuje. Proponuję porównać wszystkie kolumny źródłowe z kolumn docelowych i upewnij się, że:

  • długości są wystarczająco
  • typy danych są kompatybilne

można zakładać struktur tabel czy lubisz ręcznie w tej kolumnie

2

jest to awaria u źródła Jeśli pakiet zawiedzie podczas wstawiania w miejscu przeznaczenia, to łatwo rozwiązywalne. Natknąłem się na wiele sytuacji, w których dane źródłowe są większe niż te, które spodziewają się źródła SSIS.

Myślę, że po utworzeniu źródła, SSIS automatycznie pobiera próbki danych wejściowych, aby zobaczyć maksymalną długość. Ale co by było, gdyby ta maksymalna długość została przekroczona? Właśnie tam widzę większość problemów związanych z przepełnieniem.

Również wiele razy, gdy mamy do czynienia ze słabo przetworzonymi danymi źródłowymi, zobaczysz dane znakowe w polu daty. Taki scenariusz zepsułby również pakiet.

Powiązane problemy