Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Typ danych Oracle:czy powinienem używać VARCHAR2 czy CHAR?

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mentor Oracle DBA

  2. Jak uzyskać SCHEMATY Oracle jako skrypty DDL z DBMS_METADATA (i SCHEMA_EXPORT)

  3. dynamiczne przekazywanie nazwy tabeli i kolumny za pomocą zmiennych bind

  4. Zapytanie Oracle Pivot daje kolumny z cudzysłowami wokół nazw kolumn. Co?

  5. Zamówienie niestandardowe w Oracle SQL