Print

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 Opis
from [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 Opis
from [Arkusz1$]

Dla innych źródeł danych, np. zapytanie do bazy danych MS SQL, należy użyć funkcji: CAST(), CONVERT().

Czy artykuł był pomocny?
0 na 5 gwiazdek
5 Stars 0%
4 Stars 0%
3 Stars 0%
2 Stars 0%
1 Stars 0%
5
How can we improve this article?
How Can We Improve This Article?