Zacznę od wyjaśnienia, że nie jest to duplikat pytania ani potencjalny duplikat w tym zakresie. Próbowałem zaimplementować każdą odpowiedź na każdy wariant, który już istnieje w tym problemie na StackOverflow i DBA Stack Exchange, bez powodzenia.
Walczyłem z tym problemem przez ostatnie dwa dni (pracowałem nad nim przez około 7 godzin dziennie), a nawet po Googlingu wydaje się, że nikt inny nie ma dokładnie tego samego wariantu mojego problemu.
Co ja próbuję zrobić
W SSIS próbuję odczytać z pliku CSV i wstawić z niego wiersze do bazy danych OLE DB. W tym celu stworzyłem najprostszą konfigurację, jak pokazano poniżej.
Flat File Source
- czyta wiersze CSV.Derived Column
- obecnie nic nie robi (służy tylko do eksperymentowania).Data Conversion
- obecnie nic nie robi (służy tylko do eksperymentowania).OLE DB Destination
- przechowuje wiersze w bazie danych.
Gdy próbuję go uruchomić, przestaje on działać w miejscu docelowym OLE DB z następującym komunikatem o błędzie.
Wystąpił błąd z kolumną wejściową „Kwota” (187) na wejściu „Wejście docelowe OLE DB” (51). Zwrócony status kolumny to: „Nie można przekonwertować wartości z powodu potencjalnej utraty danych.”.
Kolumna fail ( Amount
) jest obecnie typu DT_STR
. Wydaje się, że jest to typ, w który teraz najbardziej wierzę.
Co próbowałem?
- Próbowałem użyć funkcji
Flat File Connection
„Zaproponuj typy” w kolumnie, która nie działa. To sprawiło, że poleciłSingle byte signed int
typ danych.- Zatrzymuje się w moim źródle plików płaskich .
- Błąd polega na tym, że konwersja danych nie powiodła się. Konwersja danych dla kolumny „Kwota” zwróciła wartość stanu 2 i tekst statusu „Wartości nie można przekonwertować z powodu potencjalnej utraty danych.”.
- Próbowałem użyć
Derived Column
do rzutowania kolumny naDT_I4
.- Zatrzymuje się w mojej kolumnie pochodnej .
- Błąd polega na tym, że konwersja danych nie powiodła się. Konwersja danych dla kolumny „Kwota” zwróciła wartość stanu 2 i tekst statusu „Wartości nie można przekonwertować z powodu potencjalnej utraty danych.”.
- Próbowałem użyć
Data Conversion
do rzutowania wartości mojej kolumny na aDT_I4
.- Zatrzymuje się na moim
Data Conversion
. - Błąd polega na tym, że konwersja danych nie powiodła się. Konwersja danych dla kolumny „Kwota” zwróciła wartość stanu 2 i tekst statusu „Wartości nie można przekonwertować z powodu potencjalnej utraty danych.”.
- Zatrzymuje się na moim
- Próbowałem zmienić długość mojej
DT_STR
wartości w źródle i miejscu docelowym.- Zatrzymuje się na źródle lub miejscu docelowym w zależności od ustawień.
- Próbowałem połączyć się za pomocą łącznika źródłowego Excel zamiast z dodanym ciągiem połączenia i bez niego
IMEX=1
. Brak szczęścia.
Mój zmysł programistyczny mówi mi, że jestem wkręcony. Nigdy nie spotkałem tak dużego problemu z tak prostą rzeczą.
I dlaczego nie mogę po prostu zignorować „potencjalnej” utraty danych? To naprawdę frustrujące co najmniej.
Mój system
Jest to komputer z systemem Windows Server 2008 R2 z zainstalowanym programem SQL Server 2008. Samo urządzenie jest w pełni aktualizowane za pośrednictwem Windows Update.
Amount
?
Amount
kolumnę. Zrób zrzut ekranu i zaktualizuj swoje pytanie o to zdjęcie.