Nehmen wir an, der Zeichensatz der Datenbank ist UTF-8, was die empfohlene Einstellung in neueren Versionen von Oracle ist. In diesem Fall benötigen einige Zeichen mehr als 1 Byte zum Speichern in der Datenbank.
Wenn Sie das Feld als VARCHAR2(11 BYTE)
definieren , Oracle kann bis zu 11 Byte für die Speicherung verwenden, aber Sie können möglicherweise nicht 11 Zeichen im Feld speichern, da einige von ihnen mehr als ein Byte zum Speichern benötigen, z. nicht-englische Zeichen.
Indem Sie das Feld als VARCHAR2(11 CHAR)
definieren Sie teilen Oracle mit, dass es genügend Speicherplatz zum Speichern von 11 Zeichen verwenden kann, unabhängig davon, wie viele Bytes zum Speichern jedes Zeichens erforderlich sind. Ein einzelnes Zeichen kann bis zu 4 Bytes benötigen.