W Excelu jest kolumna, która powinna być tekstem, ale SSIS widzi tam tekst numeryczny i automatycznie czyni go zmiennoprzecinkowym podwójnej precyzji [DT_R8].
Mogę to zmienić ręcznie w kolumnach Zewnętrzne i Wyjściowe gałęzi Wyjście, ale Wyjście błędu po prostu nie pozwala mi zmienić odpowiedniej kolumny.
Error at Extract Stations [Excel Source [1]]: The data type for "output "Excel Source Error Output" (10)" cannot be modified in the error "output column "Group No" (29)".
Error at Extract Stations [Excel Source [1]]: Failed to set property "DataType" on "output column "Group No" (29)".
Próbowałem zmodyfikować pakiet xml. Próbowałem IMEX=1
i typeguessrow=0
nic z tego nie rozwiązało mojego problemu. Czy to w ogóle ma jakieś rozwiązanie? Istnieją również artykuły sugerujące modyfikację rejestru, aby program Excel odczytywał więcej niż domyślne 8 wierszy przed odgadnięciem typu danych. Nie chcę iść tą drogą, ponieważ nawet gdyby zadziałała, musiałbym zmodyfikować rejestr na komputerze, na którym planuję uruchomić pakiet.
Na przykład pole excela, które ma zostać zaimportowane do pola nvarchar SQL
295.3
296.33
ale są zapisywane do tabeli SQL jako
295.30000000000001
296.32999999999998
Włączyłem przeglądarki danych i pola pokazują
295.3
296.33
przez całą drogę przez wykonanie, które jest poprawne, ale myślę, że kiedy trafi do źródła docelowego OLE DB, w jakiś sposób konwertuje je na
295.30000000000001
296.32999999999998
co jest złe.
Mam także wartości, takie jak na przykład V321.1 i V213.34, które zdecydowanie nie są liczbami całkowitymi i muszą być przechowywane jako varchar.