Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como armazenar uma matriz de bytes no Oracle?


No Oracle, o tipo de dados RAW é apropriado para armazenar valores binários.

O problema de usar tipos de dados de caracteres para armazenar dados binários é que os valores estão sujeitos à tradução do conjunto de caracteres .

Se o conjunto de caracteres do cliente não corresponder ao conjunto de caracteres do banco de dados, os valores estarão sujeitos à conversão. (Ou seja, um valor binário em uma codificação representa um caractere específico, mas esse caractere pode ser representado por um valor binário diferente em outro conjunto de caracteres.

Com o tipo de dados caractere, o Oracle preserva o valor "caractere", não o valor binário codificado.

Se você deseja usar um tipo de dados de caractere (por exemplo, CHAR ou VARCHAR2) para armazenar valores binários, você realmente precisa codificar o valor binário como texto simples e armazenar e recuperar o valor codificado. Duas codificações populares de binário para texto são hexadecimal e base64 (uuencode).

A Oracle fornece funções internas RAWTOHEX e HEXTORAW para codificação e decodificação de binários (tipo de dados RAW) como strings hexadecimais (tipo de dados VARCHAR2).