sql >> Databasteknik >  >> RDS >> Oracle

Oracle-datatyp:Ska jag använda VARCHAR2 eller CHAR

Jag är oroad över att extra utrymmen placeras i VARCHAR2-fälten och med jämförelseproblem. Jag vet att det finns sätt att jämföra dem genom att trimma eller konvertera dem, men jag är rädd att det kommer att göra min kod rörig och buggig.

Det är faktiskt tvärtom. Att använda CHAR kommer att tvinga dina strängar att ha en fast längd genom att vaddera dem med mellanslag om de är för korta. Så när man jämför CHAR med vanliga strängar i vilken app som helst som använder data, skulle den appen behöva lägga till en trim varje gång. Med andra ord är VARCHAR2 valet som naturligtvis leder till renare kod.

I allmänhet bör du alltid använd VARCHAR2, om du inte har en mycket specifik anledning till varför du vill ha en CHAR-kolumn.

Om du är orolig för strängar som har extra utrymmen i fronten eller änden, så finns det några alternativ som du tänker på:

  • Se till att vilken process som än utförs av skären trimmar dem innan de sätts in.
  • Lägg till en kontrollbegränsning i kolumnen som säkerställer att sträng =trim(sträng).
  • Lägg till en utlösare på radnivå före infogning som trimmer strängarna när de infogas.
  • Se till att du klipper strängarna när du frågar i tabellen


  1. hur ersätter den accentuerade bokstaven i en varchar2-kolumn i Oracle

  2. Inte lika <> !=operator på NULL

  3. Förstå Always ON Availability Group mellan Linux-baserade SQL Server-instanser. Del 1

  4. Felsökning:För många omdirigeringar