sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo almacenar una matriz de bytes en Oracle?

En Oracle, el tipo de datos RAW es apropiado para almacenar valores binarios.

El problema con el uso de tipos de datos de caracteres para almacenar datos binarios es que los valores están sujetos a la traducción del conjunto de caracteres. .

Si el juego de caracteres del cliente no coincide con el juego de caracteres de la base de datos, los valores están sujetos a traducción. (Es decir, un valor binario en una codificación representa un carácter particular, pero ese carácter puede representarse mediante un valor binario diferente en otro conjunto de caracteres.

Con el tipo de datos de carácter, Oracle conserva el valor de "carácter", no el valor binario codificado.

Si desea utilizar un tipo de datos de carácter (por ejemplo, CHAR o VARCHAR2) para almacenar valores binarios, entonces realmente necesita codificar el valor binario como texto sin formato y almacenar y recuperar el valor codificado. Dos codificaciones populares de binario a texto son hexadecimal y base64 (uuencode).

Oracle proporciona funciones integradas RAWTOHEX y HEXTORAW para codificar y decodificar binarios (tipo de datos RAW) como cadenas hexadecimales (tipo de datos VARCHAR2).