Laten we aannemen dat de database-tekenset UTF-8 is, wat de aanbevolen instelling is in recente versies van Oracle. In dit geval hebben sommige tekens meer dan 1 byte nodig om in de database op te slaan.
Als u het veld definieert als VARCHAR2(11 BYTE)
, Oracle kan maximaal 11 bytes gebruiken voor opslag, maar het kan zijn dat u niet echt 11 tekens in het veld kunt opslaan, omdat sommige meer dan één byte nodig hebben om op te slaan, b.v. niet-Engelse karakters.
Door het veld te definiëren als VARCHAR2(11 CHAR)
je vertelt Oracle dat het genoeg ruimte kan gebruiken om 11 karakters op te slaan, ongeacht hoeveel bytes het kost om elk karakter op te slaan. Een enkel teken kan tot 4 bytes nodig hebben.