Oracle
 sql >> Base de données >  >> RDS >> Oracle

À quoi sert vraiment le type de données SQL National Character (NCHAR) ?

"NATIONAL" signifie dans ce cas des caractères spécifiques aux différentes nationalités. Les langues d'Extrême-Orient en particulier ont tellement de caractères qu'un octet n'est pas assez d'espace pour les distinguer tous. Donc, si vous avez une application en anglais (ascii) uniquement ou un champ en anglais uniquement , vous pouvez utiliser les anciens types CHAR et VARCHAR, qui n'autorisent qu'un octet par caractère.

Cela dit, la plupart du temps, vous devez utiliser NCHAR/NVARCHAR. Même si vous ne pensez pas avoir besoin de prendre en charge (ou potentiellement de prendre en charge) plusieurs langues dans vos données, même les applications uniquement en anglais doivent être capables de gérer judicieusement les attaques de sécurité utilisant des caractères de langue étrangère.

À mon avis, le seul endroit où les anciens types CHAR/VARCHAR sont encore préférés est pour les codes internes ASCII fréquemment référencés et les données sur des plates-formes comme Sql Server qui prennent en charge la distinction - des données qui seraient l'équivalent d'un enum dans un langage client comme C++ ou C#.