sql >> Base de Datos >  >> RDS >> Oracle

¿Para qué sirve realmente el tipo de datos de carácter nacional de SQL (NCHAR)?

"NACIONAL" en este caso significa caracteres específicos de diferentes nacionalidades. Los idiomas del Lejano Oriente, especialmente, tienen tantos caracteres que un byte no es suficiente espacio para distinguirlos a todos. Entonces, si tiene una aplicación solo en inglés (ascii) o un campo solo en inglés , puede salirse con la suya usando los tipos CHAR y VARCHAR más antiguos, que solo permiten un byte por carácter.

Dicho esto, la mayoría de las veces deberías usar NCHAR/NVARCHAR. Incluso si no cree que necesita admitir (o potencialmente admitir) varios idiomas en sus datos, incluso las aplicaciones solo en inglés deben poder manejar con sensatez los ataques de seguridad que utilizan caracteres de idiomas extranjeros.

En mi opinión, casi el único lugar en el que todavía se prefieren los tipos CHAR/VARCHAR más antiguos es para los códigos internos solo ASCII a los que se hace referencia con frecuencia y los datos en plataformas como Sql Server que admiten la distinción:datos que serían el equivalente de un enum en un lenguaje de cliente como C++ o C#.