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

Différence entre VARCHAR2(10 CHAR) et NVARCHAR2(10)

Le type de données NVARCHAR2 a été introduit par Oracle pour les bases de données qui souhaitent utiliser Unicode pour certaines colonnes tout en conservant un autre jeu de caractères pour le reste de la base de données (qui utilise VARCHAR2). Le NVARCHAR2 est un type de données Unicode uniquement.

L'une des raisons pour lesquelles vous souhaiterez peut-être utiliser NVARCHAR2 peut être que votre base de données utilise un jeu de caractères non Unicode et que vous souhaitez toujours pouvoir stocker des données Unicode pour certaines colonnes sans modifier le jeu de caractères principal. Une autre raison peut être que vous souhaitez utiliser deux jeux de caractères Unicode (AL32UTF8 pour les données provenant principalement d'Europe occidentale, AL16UTF16 pour les données provenant principalement d'Asie par exemple) car différents jeux de caractères ne stockeront pas les mêmes données de manière aussi efficace.

Les deux colonnes dans votre exemple (Unicode VARCHAR2(10 CHAR) et NVARCHAR2(10) ) serait capable de stocker les mêmes données, mais le stockage des octets sera différent. Certaines chaînes peuvent être stockées plus efficacement dans l'une ou l'autre.

Notez également que certaines fonctionnalités ne fonctionneront pas avec NVARCHAR2, consultez cette question :

  • Oracle Text ne fonctionnera pas avec NVARCHAR2. Quoi d'autre pourrait ne pas être disponible ?