Bo bodzie.
Funkcja ta ma zwracać długość łańcucha znaków. Ma tylko jeden feler - pomija kończące łańcuch spacje.
Powód takiej implementacji/definicji tej funkcji pozostaje dla mnie nierozwikłaną zagadką. Kto? Jak? Kiedy? Po cholerę?
Bo bodzie.
Funkcja ta ma zwracać długość łańcucha znaków. Ma tylko jeden feler - pomija kończące łańcuch spacje.
Powód takiej implementacji/definicji tej funkcji pozostaje dla mnie nierozwikłaną zagadką. Kto? Jak? Kiedy? Po cholerę?
Pewnie robi jakiś automatyczny trim, albo coś w tym stylu :)
Niedawno migrowałem parę baz z postgresa do mssql (oba serwery niespecjalnie tweakowane, praktycznie na ustawieniach domyślnych), i przy imporcie danych mssql parę razy zgłosił, że mu próbuję unikatowe wiersze nadpisać (podczas gdy w postgresie problemu nie było)
Okazało się, że mieliśmy wśród danych parę wierszy, które różniły się tylko spacją na końcu stringa. Postgres brał je "jak leci", a mssql domyślnie usuwał te spacje podczas wstawiania danych do bazy (stąd kolizje).
"Trailing space" to niezła żmijka w wielu kontekstach...
warto wiedzieć jak z punktu widzenia standardu wygląda typ VARCHAR i jak to jest implementowane przez różne programy. W niektórych można zdaje się ustawić czy ma być standardowo czy nie co pewnie jeszcze bardziej komplikuje życie ;) no cóż z tego co pamiętam w tutkach dla opornych zwracają na takie rzeczy uwagę.

Komentarze