Utiliser Unicode dans les applications globalisées
Vous pouvez insérer et extraire des données Unicode. Les données sont converties de manière transparente entre la base de données et les programmes clients, ce qui garantit que les programmes clients sont indépendants du jeu de caractères de la base de données et du jeu de caractères national.
Voir aussi :
-
Guide de prise en charge de la globalisation d'Oracle Database pour plus d'informations sur la programmation SQL et PL/SQL avec Unicode
-
Guide de prise en charge de la globalisation d'Oracle Database pour des informations générales sur la programmation avec Unicode
Représentation de littéraux de type chaîne Unicode en langage SQL et PL/SQL
Il existe trois façons de représenter un littéral de chaîne Unicode dans SQL ou PL/SQL, comme illustré dans les exemples suivants.
-
N'string "
Exemple :
N'résumé'.Limitations : Voir "Éviter la perte de données lors de la conversion de jeu de caractères".
-
NCHR (numéro)
La fonction SQL NCHR retourne le caractère dont l'équivalent binaire est le nombre dans le jeu de caractères national. Le caractère retourné a le type de données NVARCHAR2.
Exemple :
NCHR(36)représente $ dans le jeu de caractères national par défaut, AL16UTF16.Limitations : La portabilité de la valeur de NCHR (nombre) est limitée aux applications qui utilisent le même jeu de caractères nationaux.
-
UNISTR('chaîne')
La fonction SQL UNISTR convertit la chaîne en jeu de caractères national.
Pour la portabilité et la conservation des données, Oracle recommande que la chaîne ne contienne que des caractères ASCII et des valeurs d'encodage Unicode. Une valeur d'encodage Unicode a la forme \xxxx, où xxxx est la valeur hexadécimale d'une valeur de code de caractère au format d'encodage UCS-2.
Exemple :
UNISTR('G\0061ry')représente 'Gary'Les caractères ASCII sont convertis en jeu de caractères de base de données, puis en jeu de caractères national. Les valeurs d'encodage Unicode sont converties directement dans le jeu de caractères national.
Voir aussi :
-
Oracle Database Globalization Support Guide pour plus d'informations sur les littéraux de chaîne Unicode
-
Informations de référence sur le langage SQL pour Oracle Database pour plus d'informations sur la fonction NCHR
-
Informations de référence sur le langage SQL pour Oracle Database pour plus d'informations sur la fonction UNISTR
Éviter la perte de données lors de la conversion de jeu de caractères
Dans le cadre d'une instruction SQL ou PL/SQL, un littéral (avec ou sans le préfixe N) est encodé dans le même jeu de caractères que le reste de l'instruction. Du côté client, l'instruction est encodée dans le jeu de caractères client, qui est déterminé par le paramètre NLS_LANG. Du côté serveur, l'instruction est encodée dans le jeu de caractères de la base de données.
Lorsque l'instruction SQL ou PL/SQL est transférée du client vers la base de données, son jeu de caractères est converti en conséquence. Si le jeu de caractères de la base de données ne contient pas tous les caractères utilisés par le client dans les littéraux de texte, les données sont perdues lors de cette conversion. Les littéraux de type chaîne NCHAR sont plus vulnérables que les littéraux de type texte CHAR, car ils sont conçus pour être indépendants du jeu de caractères de la base de données.
Pour éviter la perte de données lors de la conversion en un jeu de caractères de base de données incompatible, vous pouvez activer la fonctionnalité de remplacement littéral NCHAR. Pour plus d'informations, voir Guide de prise en charge de la globalisation pour Oracle Database.