Emil Studziński

Emil Studziński Inżynier
Oprogramowania

Temat: SSIS - dziwny przypadek przy imporcie daty (zamiana na NULL)

Witam,
Spotkałem się z bardzo specyficznym przypadkiem: posiadam pewien szablon w excelu, który regularnie importuję za pomocą skonstruowanej paczki SSIS (VS 2005).

Podczas ostatniego importu zauważyłem, że jedna kolumna zawierająca datę:
format: 2013-10-25 12:00:11
albo pusta (NULL).

Zauważyłem, że podczas importu ostatniej paczki, przy kolumnie z datą, zaciągnęły się wszędzie NULL'e, pomimo wprowadzonej, poprawnej wartości daty, sam szablon również nie uległ zmianie.

Zweryfikowałem Excel źródłowy i wszystko wygląda w porządku, nawet na wszelki wypadek od początku utworzyłem nowe źródło, ale nawet przy podglądzie pojawiają się te nieszczęsne NULL'e. w SSIS kolumna jest typu wręcz Unicode string [DT_WSTR] , zatem walidacja daty nie powinna wchodzić w grę (z datą też próbowałem już).

Co ciekawe: W excelu źródłowym, przez kilka pierwszych wierszy przewija się pusta wartość w kolumnie z datą. W chwili, kiedy usunąłem pierwsze pozycje, przy podglądzie w SSIS pojawiły się już poprawne wartości...

Czy SSIS jakoś pseudointeligentnie, jeśli pojawi się kilka rekordów z NULL'em na początku uznaje, że cała kolumna jest NULL'em? Czy ktoś spotkał się może z omawianym problemem?
Nikodem Dobrzański

Nikodem Dobrzański Architekt systemu,
BizTech Konsulting
S.A.

Temat: SSIS - dziwny przypadek przy imporcie daty (zamiana na NULL)

Głowy nie dam, ale wygląda mi to na ten sam mechanizm rozpoznawania przez mssql, co przy klasycznym imporcie excela. Tam, na podstawie pierwszych 8 wierszy, tworzony był typ.
Emil Studziński

Emil Studziński Inżynier
Oprogramowania

Temat: SSIS - dziwny przypadek przy imporcie daty (zamiana na NULL)

To by się nawet nieszczęśliwie zgadzało (dokładnie 8 pierwszych pustych wartości w komórkach). sytuacja jest skrajna, ale się zdarza...

Teoretycznie w zaawansowanym edytorze, przy kolumnie wyjściowej ustawiłem odpowiedni typ, ale wnioskuję, że SSIS robi sobie z tym, co mu się podoba i moje sugestie ignoruje...

Czy można ewentualnie zmienić wspomniane "rozpoznanie" z 8 do max liczby prób? (są to stosunkowo małe importy, więc mogę sobie pozwolić na wydłużenie czasu)? A może istnieje jakaś sztuczka, którą można to obejść (wszystko niestety muszę zamieścić wewnątrz samej paczki, nie mogę ingerować w dane źródłowe - kluczowa jest kolejność importowanych rekordów)?
Emil Studziński

Emil Studziński Inżynier
Oprogramowania

Temat: SSIS - dziwny przypadek przy imporcie daty (zamiana na NULL)

Ok, chyba znalazłem rozwiązanie (być może przyda się komuś):

Edytowałem connectionstring, dopisując na końcu przy Extended Properties:
IMEX=1

np:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=XXXXXXXXXXXXXXX.xls;Extended Properties="EXCEL 8.0;HDR=YES;IMEX=1";

na razie widzę, że NULL'e ładnie zastąpiły się poprawnymi wartościami, ale muszę jeszcze o tym poczytać dokładnie.

Dziękuję za wskazówkę.

Następna dyskusja:

MySQL - problem z PL znakam...




Wyślij zaproszenie do