Martwię się o dodatkowe spacje umieszczane w polach VARCHAR2 i problemy z porównaniem. Wiem, że są sposoby na porównywanie ich przez przycinanie lub konwertowanie, ale obawiam się, że mój kod będzie bałaganiarski i błędny.
W rzeczywistości jest zupełnie odwrotnie. Użycie znaku CHAR zmusi twoje struny do stałej długości, dopełniając je spacjami, jeśli są zbyt krótkie. Tak więc porównując CHAR ze zwykłymi ciągami w dowolnej aplikacji korzystającej z danych, ta aplikacja musiałaby za każdym razem dodawać przycięcie. Innymi słowy, VARCHAR2 to wybór, który w naturalny sposób prowadzi do czystszego kodu.
Generalnie powinieneś zawsze użyj VARCHAR2, chyba że masz bardzo konkretny powód, dla którego chcesz mieć kolumnę CHAR.
Jeśli martwisz się ciągami, które mają dodatkowe spacje z przodu lub na końcu, jest kilka opcji, które przychodzą Ci do głowy:
- Upewnij się, że jakikolwiek proces, który wykonuje wstawki, przycina je przed wstawieniem.
- Dodaj ograniczenie sprawdzające do kolumny, które zapewnia, że string =trim(string).
- Dodaj wyzwalacz poziomu wiersza przed wstawieniem, który przycina ciągi podczas ich wstawiania.
- Upewnij się, że przycinasz ciągi za każdym razem, gdy wysyłasz zapytanie do tabeli