Conversione carattere
Una stringa è una sequenza di byte che può rappresentare dei caratteri. Tutti i caratteri di una stringa hanno una rappresentazione codificata comune. In alcuni casi, potrebbe essere necessario convertire questi caratteri in una diversa rappresentazione di codifica, un processo noto come conversione di caratteri.
Quando è richiesta la conversione dei caratteri, questa è automatica. Non è necessario che le applicazioni invochino esplicitamente la conversione dei caratteri, perché il server e il client del database Db2® eseguono automaticamente tutte le conversioni necessarie.
- I valori delle variabili host vengono inviati dall'application requester all'application server.
- I valori delle colonne dei risultati vengono inviati dal server dell'applicazione al richiedente dell'applicazione.
Di seguito è riportato un elenco di termini utilizzati quando si parla di conversione dei caratteri:
- character set
- Un insieme definito di caratteri. Ad esempio, il seguente set di caratteri è presente in diverse pagine di codice:
- 26 lettere non accentate dalla A alla Z
- 26 lettere non accentate dalla a alla z
- Cifre da 0 a 9
- . , : ; ? ( ) ' " / - _ & + % * = < >
- tabella codici
- Un insieme di assegnazioni di caratteri a punti di codice. Nello schema di codifica ASCII per la pagina di codice 850, ad esempio, ad "A" è assegnato il punto di codice X'41' e a "B" il punto di codice X'42'. All'interno di una pagina di codice, ogni punto di codice ha un solo significato specifico. Una pagina di codice è un attributo del database. Quando un programma applicativo si connette al database, il gestore del database determina la pagina di codice dell'applicazione.
- code point
- Un modello di bit unico che rappresenta un carattere.
- schema di codifica
- Un insieme di regole utilizzate per rappresentare i dati dei caratteri, ad esempio:
- ASCII a singolo bit
- EBCDIC a singolo bit
- ASCII a doppio byte
- ASCII misto a singolo e doppio byte
La figura seguente mostra come un tipico set di caratteri possa corrispondere a diversi punti di codice in due diverse pagine di codice. Anche con lo stesso schema di codifica, esistono molte pagine di codice diverse e lo stesso punto di codice può rappresentare un carattere diverso in pagine di codice diverse. Inoltre, un byte in una stringa di caratteri non rappresenta necessariamente un carattere di un set di caratteri a singolo byte (SBCS). Le stringhe di caratteri vengono utilizzate anche per dati misti e bit. I dati misti sono una miscela di caratteri a singolo byte, doppio byte o multibyte. I dati bit (colonne definite come FOR BIT DATA, o BLOB, o stringhe binarie) non sono associati ad alcun set di caratteri.

Il gestore del database determina gli attributi della pagina di codice per tutte le stringhe di caratteri quando un'applicazione è collegata a un database. I possibili attributi della pagina di codice sono:
- Pagina del codice del database
- La pagina di codice del database è memorizzata nel file di configurazione del database. Il valore viene specificato al momento della creazione del database e non può essere modificato.
- Pagina del codice dell'applicazione
- La pagina di codice in cui viene eseguita l'applicazione. Questa pagina di codice non è necessariamente la stessa pagina di codice con cui è stata vincolata l'applicazione.
- Pagina del codice di sezione
- La pagina di codice in cui viene eseguita l'istruzione SQL. In genere, la pagina del codice di sezione è la pagina del codice del database. Tuttavia, la pagina di codice Unicode ( UTF-8 ) viene utilizzata come pagina di codice della sezione se:
- L'istruzione fa riferimento a una tabella creata con lo schema di codifica Unicode in un database non Unicode
- L'istruzione fa riferimento a una funzione di tabella definita con PARAMETER CCSID UNICODE in un database non Unicode
- Codice Pagina 0
- Questo valore rappresenta una stringa derivata da un'espressione che contiene un valore FOR BIT DATA, un valore di tipo binario o un valore BLOB.
Le pagine di codice delle stringhe di caratteri hanno i seguenti attributi:
- Le colonne possono essere nella pagina di codice del database, nella pagina di codice Unicode UTF-8 ) o nella pagina di codice 0 (se definita come FOR BIT DATA, binary o BLOB).
- Le costanti e i registri speciali (ad esempio, USER, CURRENT SERVER) si trovano nella pagina del codice di sezione. Le costanti vengono convertite, se necessario, dalla pagina di codice dell'applicazione alla pagina di codice del database e quindi alla pagina di codice della sezione quando un'istruzione SQL è legata al database.
- Le variabili host di ingresso si trovano nella pagina del codice dell'applicazione. A partire dalla versione 8, i dati stringa nelle variabili host di input vengono convertiti, se necessario, dalla pagina del codice dell'applicazione alla pagina del codice di sezione prima di essere utilizzati. L'eccezione si verifica quando una variabile host viene utilizzata in un contesto in cui deve essere interpretata come un dato di bit; ad esempio, quando la variabile host deve essere assegnata a una colonna definita come FOR BIT DATA.
Un insieme di regole viene utilizzato per determinare gli attributi della pagina di codice per le operazioni che combinano oggetti stringa, come le operazioni scalari, le operazioni di set o la concatenazione. Gli attributi della pagina di codice vengono utilizzati per determinare i requisiti per la conversione delle stringhe in pagina di codice in fase di esecuzione.