Låt oss anta att databasens teckenuppsättning är UTF-8, vilket är den rekommenderade inställningen i de senaste versionerna av Oracle. I det här fallet tar vissa tecken mer än 1 byte att lagra i databasen.
Om du definierar fältet som VARCHAR2(11 BYTE)
, Oracle kan använda upp till 11 byte för lagring, men du kanske faktiskt inte kan lagra 11 tecken i fältet, eftersom vissa av dem tar mer än en byte att lagra, t.ex. icke-engelska tecken.
Genom att definiera fältet som VARCHAR2(11 CHAR)
du berättar för Oracle att det kan använda tillräckligt med utrymme för att lagra 11 tecken, oavsett hur många byte det tar att lagra var och en. Ett enda tecken kan kräva upp till 4 byte.