Synchronizacja danych z pliku EXCEL przez ODBC – łączenie stringów (kilku kolumn w jedną)
W wersjach AMODIT od 220630 lub nowszych może wystąpić problem z łączeniem danych liczbowych z danymi tekstowymi podczas korzystania ze źródła danych jakim jest plik Excel podłączony przez sterownik ODBC. W artykule podajemy wskazówki, jak obejść ten problem.
Przedstawienie problemu
Załóżmy, że w konfiguracji słownika zewnętrznego lub źródła danych wprowadziliśmy zapytanie SQL następującej treści:
Select [Dostawca SAP ID], [Nazwa dostawcy] + ' <'+ [Dostawca SAP ID] + '>' as Nazwa_dostawcy,[Kod podatkowy 1]+'|'+[Dostawca SAP ID]+'|'+ [Miejscowość] +'|'+ [Kod pocztowy] +'|'+ [Kraj1] as Opisfrom [Arkusz1$]Kolumna [Dostawca SAP ID] zawiera liczbowy identyfikator. W takiej sytuacji podczas synchronizacji słownika lub źródła danych w logu systemowym AMODIT może być rejestrowany następujący błąd:
ERROR [22018] [Microsoft][ODBC Excel Driver] Data type mismatch in criteria expression.Proponowane rozwiązanie
Dla ‘ODBC Excel Driver’ należy dodać konwertowanie takich liczb na tekst za pomocą funkcji CSTR(). Skorygowane powyższe zapytanie wygląda następująco:
Select [Dostawca SAP ID], [Nazwa dostawcy] + ' <'+ CSTR([Dostawca SAP ID]) + '>' as Nazwa_dostawcy,[Kod podatkowy 1]+'|'+CSTR([Dostawca SAP ID])+'|'+ [Miejscowość] +'|'+ [Kod pocztowy] +'|'+ [Kraj1] as Opisfrom [Arkusz1$]Dla innych źródeł danych, np. zapytanie do bazy danych MS SQL, należy użyć funkcji: CAST(), CONVERT().