Supponiamo che il set di caratteri del database sia UTF-8, che è l'impostazione consigliata nelle versioni recenti di Oracle. In questo caso, alcuni caratteri impiegano più di 1 byte per essere archiviati nel database.
Se definisci il campo come VARCHAR2(11 BYTE)
, Oracle può utilizzare fino a 11 byte per l'archiviazione, ma potresti non essere in grado di memorizzare 11 caratteri nel campo, perché alcuni di essi richiedono più di un byte per essere archiviati, ad es. caratteri non inglesi.
Definendo il campo come VARCHAR2(11 CHAR)
dici a Oracle che può usare abbastanza spazio per memorizzare 11 caratteri, indipendentemente dal numero di byte necessari per memorizzarli. Un singolo carattere può richiedere fino a 4 byte.