HEX funzione scalare
La funzione HEX restituisce una rappresentazione esadecimale di un valore come stringa di carattere.
Lo schema è SYSIBM.
- espressione
- Un'espressione che restituisce un valore di qualsiasi tipo di dati integrato non XML, con una lunghezza massima di 16336byte,s.
Il risultato della funzione è una stringa di carattere con unità di stringa di OCTETS. Se l'argomento può essere nullo, il risultato può essere nullo; se l'argomento è nullo, il risultato è il valore nullo.
La pagina del codice è la pagina del codice di sezione.
Il risultato è una stringa di cifre esadecimali. I primi due rappresentano il primo byte dell'argomento, i due successivi rappresentano il secondo byte dell'argomento e così via. Se l'argomento è un valore datetime o un valore numerico il risultato è la rappresentazione esadecimale della forma interna dell'argomento. La rappresentazione esadecimale che viene restituita può essere diversa a seconda del server delle applicazioni in cui la funzione viene eseguita. I casi in cui le differenze sarebbero evidenti includono:
- Argomenti stringa di caratteri quando la funzione HEX viene eseguita su un client ASCII con un server EBCDIC o su un client EBCDIC con un server ASCII.
- Argomenti numerici (in alcuni casi) quando la funzione HEX viene eseguita dove i sistemi client e server hanno ordinamenti di byte diversi per valori numerici.
Il tipo e la lunghezza del risultato variano in base alla tipologia, alla lunghezza e alle unità di stringa del carattere e degli argomenti di stringa grafica.
| Tipo dati argomento1 | Attributo lunghezza2 | Tipo di dati del risultato |
|---|---|---|
| CHAR (A) o BINARIO (A) | A<128 | CHAR (A*2) |
| CHAR (A) o BINARIO (A) | A>127 | VARCHAR (A*2) |
| VARCHAR (A), VARBINARIO (A), CLOB (A) o BLOB (A) | A<16337 | VARCHAR (A*2) |
| GRAFICA (A) | A<64 | CHAR (A*2*2) |
| GRAFICA (A) | A>63 | VARCHAR (A*2*2) |
| VARGRAPHIC (A) o DBCLOB (A) | A<8169 | VARCHAR (A*2*2) |
| CHAR (A CODEUNITS32) | A<64 | VARCHAR (A*4*2) |
| VARCHAR (A CODEUNITS32) o CLOB (A CODEUNITS32) | A<4085 | VARCHAR (A*4*2) |
| GRAFICA (A CODEUNITS32) | A<64 | VARCHAR (A*2*2*2) |
| VARGRAPHIC (A CODEUNITS32) o DBCLOB (A CODEUNITS32) | A<4085 | VARCHAR (A*2*2*2) |
| 1. Se le unità di stringa non sono specificate, allora le unità di stringa per il tipo di dati non sono CODEUNITS32. 2. Gli attributi di lunghezza massima riflettono un limite di tipo di dati o il limite di 16336 bytes per l'argomento di input. |
||
Esempi
Assumere l'utilizzo di un server delle applicazioni database su AIX® o Linux® per i seguenti esempi.
- Esempio 1: Utilizzando la tabella DEPARTMENT impostare la variabile host HEX_MGRNO (char (12)) alla rappresentazione esadecimale del numero di gestore (MGRNO) per il reparto
PIANIFICAZIONE
(DEPTNAME).
HEX_MGRNO sarà impostato suSELECT HEX(MGRNO) INTO :HEX_MGRNO FROM DEPARTMENT WHERE DEPTNAME = 'PLANNING'303030303230
quando si utilizza la tabella di esempio (il valore del carattere è000020
). - Esempio 2: Supporre COL_1 è una colonna con tipo di dati char (1) e un valore di
B
. La rappresentazione esadecimale della letteraB
è X'42 '. HEX (COL_1) restituisce una stringa lunga due byte42
. - Esempio 3: si supponga che COL_3 sia una colonna con un tipo di dati decimale (6, 2) e un valore 40.1. Una stringa di lunghezza di otto byte
0004010C
è il risultato dell'applicazione della funzione HEX alla rappresentazione interna del valore decimale, 40.1.
