Utilizzo di Unicode nelle applicazioni globalizzate
È possibile inserire e recuperare i dati Unicode. I dati vengono convertiti in modo trasparente tra i programmi del database e i programmi client, garantendo che questi ultimi siano indipendenti dal set di caratteri del database e dal set di caratteri nazionale.
Vedere anche:
-
Oracle Database Globalization Support Guide per ulteriori informazioni sulla programmazione SQL e PL/SQL con Unicode
-
Oracle Database Globalization Support Guide per informazioni di natura generale sulla programmazione con Unicode
Rappresentazione dei valori stringa Unicode in SQL e PL/SQL
Ci sono tre modi per rappresentare un valore stringa Unicode in SQL o PL/SQL, come mostrato negli esempi riportati di seguito.
-
N'stringa
Esempio:
N'résumé'.Limitazioni: fare riferimento alla sezione "Evitare la perdita del dato durante la conversione del set di caratteri".
-
NCHR(number)
La funzione SQL NCHR restituisce il carattere il cui equivalente binario è il numero nel set di caratteri nazionale. Il carattere restituito ha il tipo di dati NVARCHAR2.
Esempio:
NCHR(36)rappresenta $ nel set dei caratteri nazionale predefinito, AL16UTF16.Limitazioni: la portabilità del valore di NCHR(number) è limitata alle applicazioni che utilizzano lo stesso set di caratteri nazionale.
-
UNISTR('string')
La funzione SQL UNISTR converte la stringa nel set di caratteri nazionale.
Per la portabilità e la conservazione dei dati, Oracle consiglia che la stringa contenga solo caratteri ASCII e valori di codifica Unicode. Un valore di codifica Unicode ha il formato \xxxx, dove xxxx è il Valore esadecimale di un valore di codice carattere nel formato della codifica UCS-2.
Esempio:
UNISTR('G\0061ry')rappresenta 'Gary'I caratteri ASCII vengono convertiti nel set di caratteri del database e quindi nel set di caratteri nazionale. I valori della codifica Unicode vengono convertiti direttamente nel set di caratteri nazionale.
Vedere anche:
-
Oracle Database Globalization Support Guide per ulteriori informazioni sui valori letterali stringa Unicode
-
Oracle Database SQL Language Reference per ulteriori informazioni sulla funzione NCHR
-
Oracle Database SQL Language Reference per ulteriori informazioni sulla funzione UNISTR
Evitare la perdita di dati durante la conversione dei set di caratteri
Come parte di un'istruzione SQL o PL/SQL, un valore (con o senza il prefisso N) viene codificato nello stesso set di caratteri del resto dell'istruzione. Sul lato client, l'istruzione viene codificata nel set di caratteri del client, determinato dal parametro NLS_LANG. Sul lato server, l'istruzione viene codificata nel set di caratteri del database.
Quando l'istruzione SQL o PL/SQL viene trasferita dal client al database, il relativo set di caratteri viene convertito di conseguenza. Se il set di caratteri del database non contiene tutti i caratteri utilizzati dal client nei valori di testo, i dati vengono persi durante questa conversione. I valori stringa NCHAR sono più vulnerabili rispetto ai valori di testo CHAR poiché sono progettati per essere indipendenti dall'insieme di caratteri del database.
Per evitare che i dati vengano persi nella conversione in un insieme di caratteri incompatibile del database, è possibile attivare la funzione di sostituzione del valore NCHAR. Per ulteriori informazioni, vedere Oracle Database Globalization Support Guide.