Uso de Unicode en Aplicaciones Globalizadas
Puede insertar y recuperar los datos Unicode. Los datos se convierten de forma transparente entre los programas de la base de datos y del cliente, lo que garantiza que los programas del cliente no dependan del juego de caracteres de la base de datos y del juego de caracteres nacional.
Consulte además:
-
Guía de soporte de globalización de Oracle Database para más información sobre programación SQL y PL/SQL con Unicode
-
Oracle Database Globalization Support Guide para obtener información general sobre programación con Unicode
Representación de Literales de Cadena Unicode en SQL y PL/SQL
Existen tres formas de representar un literal de cadena Unicode en SQL o PL/SQL, como se muestra en los siguientes ejemplos.
-
N'string'
Ejemplo:
N'résumé'.Limitaciones: consulte "Cómo Evitar la Pérdida de Datos durante La Conversión del Juego de Caracteres".
-
NCHR(number)
La función SQL NCHR devuelve el carácter cuyo equivalente binario es el número en el juego de caracteres nacional. El carácter devuelto tiene el tipo de dato NVARCHAR2.
Ejemplo:
NCHR(36)representa $ en el juego AL16UTF16 de caracteres nacional por defecto.Limitaciones: la portabilidad del valor de NCHR(número) está limitada a las aplicaciones que utilizan el mismo juego de caracteres nacional.
-
UNISTR('string')
La función SQL UNISTR convierte la cadena en el juego de caracteres nacional.
Para la portabilidad y la conservación de datos, Oracle recomienda que la cadena contenga solo caracteres ASCII y valores de codificación Unicode. Un valor en codificación Unicode tiene el formato \xxxx, donde xxxx es el Valor hexadecimal de un valor en código de carácter en formato en codificación UCS-2.
Ejemplo:
UNISTR('G\0061ry')representa 'Gary'Los caracteres ASCII se convierten al juego de caracteres de la base de datos y, a continuación, al juego de caracteres nacional. Los valores de codificación Unicode se convierten directamente al juego de caracteres nacional.
Consulte además:
-
Consulte Oracle Database Globalization Support Guide para más información sobre los literales de cadena Unicode.
-
Consulte Oracle Database SQL Language Reference para más información sobre la función NCHR.
-
Para obtener más información sobre la función UNISTR, consulte Oracle Database SQL Language Reference
Cómo Evitar la Pérdida de Datos durante la Conversión del Juego de Caracteres
Como parte de una sentencia SQL o PL/SQL, un literal (con o sin el prefijo N) se codifica con el mismo conjunto de caracteres que el resto de la sentencia. En el cliente, la sentencia se codifica con el conjunto de caracteres del cliente, que se determina con el parámetro NLS_LANG. En el servidor, la sentencia se codifica con el juego de caracteres de la base de datos.
Cuando la sentencia SQL o PL/SQL se transfiere del cliente a la base de datos, su juego de caracteres se convierte en consecuencia. Si el juego de caracteres de la base de datos no contiene todos los caracteres que utiliza el cliente en los literales de texto, los datos se pierden en esta conversión. Los Literales de Cadena NCHAR son más vulnerables que Los Literales de Texto CHAR, porque están diseñados para ser independientes del juego.
Para evitar la pérdida de datos en la conversión a un conjunto de caracteres incompatibles de las bases de datos, puede activar la funcionalidad del reemplazo de literal NCHAR. Para obtener más información, consulte la Guía de soporte de globalización de Oracle Database.