Oracle
 sql >> Database >  >> RDS >> Oracle

Come memorizzare un array di byte in Oracle?

In Oracle, il tipo di dati RAW è appropriato per la memorizzazione di valori binari.

Il problema con l'utilizzo dei tipi di dati di caratteri per la memorizzazione di dati binari è che i valori sono soggetti a traduzione di set di caratteri .

Se il set di caratteri del client non corrisponde al set di caratteri del database, i valori sono soggetti a conversione. (Ovvero, un valore binario in una codifica rappresenta un carattere particolare, ma quel carattere può essere rappresentato da un valore binario diverso in un altro set di caratteri.

Con il tipo di dati del carattere, Oracle conserva il valore "carattere", non il valore binario codificato.

Se si desidera utilizzare un tipo di dati carattere (ad es. CHAR o VARCHAR2) per memorizzare valori binari, è necessario codificare il valore binario come testo normale e archiviare e recuperare il valore codificato. Due comuni codifiche da binario a testo sono esadecimale e base64 (uuencode).

Oracle fornisce le funzioni integrate RAWTOHEX e HEXTORAW per la codifica e la decodifica binari (tipo di dati RAW) come stringhe esadecimali (tipo di dati VARCHAR2).