| Termin | Definicja |
|---|---|
| Funkcja LEN | Funkcja LEN zwraca liczbę znaków zawartych w podanym ciągu tekstowym. Czym jest funkcja LENLEN to funkcja skalarna Transact-SQL zwracająca liczbę znaków w podanym wyrażeniu tekstowym. Jej najważniejsza cecha, zaskakująca wiele osób, to pomijanie końcowych spacji. LEN z ciągu złożonego ze słowa i trzech spacji na końcu zwróci długość samego słowa. Spacje wiodące są natomiast liczone. Jeżeli potrzebna jest długość w bajtach, a nie w znakach, służy do tego DATALENGTH, która dla typu nvarchar zwróci wartość dwukrotnie większą, bo każdy znak zajmuje tam dwa bajty. Dla typu varchar obie funkcje zwykle dają ten sam wynik, chyba że w grę wchodzi sortowanie z obsługą znaków spoza podstawowego zestawu. Podobne funkcje w innych środowiskachNazwa LEN bywa mylona z funkcjami z innych systemów. W standardzie SQL i w PostgreSQL, MySQL czy Oracle odpowiednikiem jest LENGTH, przy czym implementacje różnią się właśnie traktowaniem spacji: Oracle nie obcina końcowych spacji dla typu VARCHAR2, a MySQL liczy bajty w funkcji LENGTH i znaki dopiero w CHAR_LENGTH. W Excelu funkcja o nazwie DŁ, w wersji angielskiej LEN, liczy wszystkie znaki razem z końcowymi spacjami, co przy przenoszeniu logiki między arkuszem a bazą prowadzi do rozbieżności wyników. Gdzie LEN wprowadza w błądPierwszy klasyczny problem to walidacja danych. Sprawdzenie, czy numer NIP ma dziesięć znaków, nie wykryje wartości z końcowymi spacjami, bo LEN je zignoruje, ale porównanie równości już zawiedzie, jeżeli kolumna jest typu varchar. Odwrotnie, kolumna typu char o stałej długości jest uzupełniana spacjami automatycznie, więc LEN pokaże długość samej treści, a DATALENGTH pełny rozmiar pola. Drugi to znaki niewidoczne. Dane importowane z plików CSV i ze stron internetowych zawierają twarde spacje, znaki tabulacji, znaki końca wiersza oraz znacznik kolejności bajtów na początku pliku, które LEN policzy jako pełnoprawne znaki, przez co numer rachunku o poprawnej treści okaże się o jeden dłuższy. Trzeci dotyczy emoji i znaków spoza podstawowej płaszczyzny, zapisywanych jako para jednostek kodowych, które przy sortowaniu bez obsługi par zastępczych liczone są jako dwa znaki. Czwarty to wydajność: użycie LEN na kolumnie w warunku WHERE uniemożliwia skorzystanie z indeksu i zmusza silnik do przejrzenia całej tabeli. Kiedy warto zadzwonić po serwisNieoczekiwane wyniki na danych z importu bardzo często zaczynają się poza bazą: od pliku eksportu z uszkodzonym kodowaniem, od arkusza otwartego w złych ustawieniach regionalnych albo od dysku, który zapisał plik z błędami. Warszawskie Pogotowie Komputerowe pomaga firmom z Warszawy uporządkować taką sytuację, naprawiając kodowanie eksportów, odzyskując dane z uszkodzonych nośników, testując pamięć i dyski w komputerach oraz konfigurując automatyczne kopie zapasowe baz. Dojazd i wstępna diagnoza są bezpłatne. |