Strona domowa Elizy, Michała i Blanki
Michał różne
Strona główna > Różne > 
Problem z transferem dat z Oracle 10g do MSSQL 2005.

Migrując bazę danych MSSQL z wersji 2000 do 2005, wszystkie nasze dotychczasowe DTS zostają ulokowane w Management->Legacy->Data Transformation Services. Pomijając fakt, że korzystanie ze starych DTS’ów w nowej bazie jest utrudniane na każdym kroku, to dodatkowo zauważyłem, że są problemy ze zgodnością transferu danych.

Po migracji, miałem kilka DTS’ów, które pobierały dane z kilkunastu tabel z bazy Oracle 10g i lokowały je w tabelach MSSQL. Następnie było mnóstwo przekształceń i obliczeń. Działały i dawały pożądany efekt końcowy.

Wszystko byłoby w porządku, gdyby nie pewien szkopuł. Zauważyłem, że w kilku widokach brakuje rekordów. Zacząłem dochodzenie i znalazłem problem. Niektóre rekordy, które zawierały pola z danymi typu datatime, były wypełnione po stronie Oracle’a datami postaci "9999-01-01". Starsza baza danych MSSQL2000 akceptowała bez zająknięcia takie daty i kopiowała do swoich tabel. Nowsza wersja 2005, postanowiła zamienić sobie takie daty na rok "1800-01-01". To spowodowało różnice w kwerendach badających czas.

Rozwiązaniem tego problemu okazał się być prosty UPDATE każdej takiej daty z "1800-01-01" na "9999-01-01". Szkoda, że nie zostało to uwzględnione automatycznie przy transferze.

Michał Majchrzak

Tekst czytany (3986) razy.     Data dodania: 2009-05-22 10:23:21    « wróć    


Twój nick *
Twój komentarz *
Aby wysłać formularz wpisz hasło z obrazka *
 

Wszystkie prawa zastrzeżone. Projekt i wykonanie Michał i Eliza

Blanka logo