HEX funzione scalare

La funzione HEX restituisce una rappresentazione esadecimale di un valore come stringa di carattere.

Read syntax diagramSkip visual syntax diagramHEX(expression)

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.

Tabella 1. Tipo di dati del risultato in funzione dei tipi di dati del tipo di dati dell'argomento e dell'attributo lunghezza
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).
       SELECT HEX(MGRNO)
         INTO :HEX_MGRNO
         FROM DEPARTMENT
         WHERE DEPTNAME = 'PLANNING'
    HEX_MGRNO sarà impostato su 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 lettera B è X'42 '. HEX (COL_1) restituisce una stringa lunga due byte 42.
  • 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.