Supposons que le jeu de caractères de la base de données soit UTF-8, qui est le paramètre recommandé dans les versions récentes d'Oracle. Dans ce cas, certains caractères prennent plus d'un octet pour être stockés dans la base de données.
Si vous définissez le champ comme VARCHAR2(11 BYTE)
, Oracle peut utiliser jusqu'à 11 octets pour le stockage, mais vous ne pourrez peut-être pas stocker 11 caractères dans le champ, car certains d'entre eux prennent plus d'un octet à stocker, par ex. caractères non anglais.
En définissant le champ comme VARCHAR2(11 CHAR)
vous dites à Oracle qu'il peut utiliser suffisamment d'espace pour stocker 11 caractères, quel que soit le nombre d'octets nécessaires pour stocker chacun d'eux. Un seul caractère peut nécessiter jusqu'à 4 octets.