2014-10-31 6 views
7

Używam SSMA do migracji MySQL z MySQL do MSSQL i kilku tabele Otrzymuję błąd 22018. Po wielu muckach dowiedziałem się, że błąd został wygenerowany z powodu zapisywania rosyjskich znaków w tych tabelach.Asystent migracji serwera SQL (SSMA): BŁĄD [22018] [MySQL] [Sterownik ODBC 5.3 (a)] [mysqld-5.1.51-społeczność]

Na przykład: Бухгалтерский учет

Istnieją inne znaki spoza alfabetu angielskiego w tabelach, jak Profissão Jurídica a oni idą przez OK.

Błąd jest zrobić z sortowaniem i sortowania w tabeli MySQL jest latin1_swedish_ci a kolumna, która posiada „zagranicznym” znaków ma utf8_unicode_ci układanie na nim i jest varchar(255).

Tabela odbiorcy w MSSQL używa domyślnego sortowania bazy danych (Latin1_General_CI_AS), a kolumna odbiorcy to nvarchar(255).

W SSMA odwzorowanie charset dla latin1 jest ustawiony domyślnie na CHAR/VARCHAR i próbowałem mając ten zestaw do NCHAR/NVARCHAR bez powodzenia. Mapowanie typu dla varchar jest ustawione na nvarchar dla wszystkich przypadków.

Jedyną rzeczą zbliżoną do odpowiedzi, którą znalazłem, jest this posting. Chyba że brakuje mi punktu odpowiedzi, nie widzę, że brakuje konwersji - czy jest?

Odpowiedz

25

Po spędzeniu dosłownie godzin próbując dowiedzieć się, dlaczego to nie zadziałało, znalazłem rozwiązanie, gdy zacząłem się poddawać i używać połączonej tabeli w Accessie do ówczesnego zapytania tranzytowego do MSSQL.

Użyłem niewłaściwego sterownika ODBC. Okazuje się, że są 2 sterowniki MySQL ODBC zainstalowane sterownik ANSI i Unicode. Używałem ANSI. Kiedy zamieniłem go na Unicode wszystko było dobrze!

Unicode ODBC driver

+0

Mam nadzieję, że to działa na mnie zbyt – dresh

+0

działa dla mnie – dresh

Powiązane problemy