Oracle introdujo el tipo de datos NVARCHAR2 para las bases de datos que desean usar Unicode para algunas columnas mientras mantienen otro conjunto de caracteres para el resto de la base de datos (que usa VARCHAR2). NVARCHAR2 es un tipo de datos solo Unicode.
Una razón por la que puede querer usar NVARCHAR2 podría ser que su base de datos usa un conjunto de caracteres que no es Unicode y aún desea poder almacenar datos Unicode para algunas columnas sin cambiar el conjunto de caracteres principal. Otra razón podría ser que desee utilizar dos conjuntos de caracteres Unicode (AL32UTF8 para datos que provienen principalmente de Europa occidental, AL16UTF16 para datos que provienen principalmente de Asia, por ejemplo) porque diferentes conjuntos de caracteres no almacenarán los mismos datos con la misma eficiencia.
Ambas columnas en su ejemplo (Unicode VARCHAR2(10 CHAR)
y NVARCHAR2(10)
) podría almacenar los mismos datos, sin embargo, el almacenamiento de bytes será diferente. Algunas cadenas pueden almacenarse de manera más eficiente en uno u otro.
Tenga en cuenta también que algunas características no funcionarán con NVARCHAR2, consulte esta pregunta SO:
- Oracle Text no funcionará con NVARCHAR2. ¿Qué más podría no estar disponible?