I Oracle är RAW-datatypen lämplig för att lagra binära värden.
Problemet med att använda teckendatatyper för att lagra binär data är att värdena är föremål för teckenuppsättningsöversättning .
Om klientens teckenuppsättning inte matchar databasens teckenuppsättning, är värden föremål för översättning. (Det vill säga, ett binärt värde i en kodning representerar ett visst tecken, men det tecknet kan representeras av ett annat binärt värde i en annan teckenuppsättning.
Med teckendatatypen bevarar Oracle "tecken"-värdet, inte det kodade binära värdet.
Om du vill använda en datatyp för tecken (t.ex. CHAR eller VARCHAR2) för att lagra binära värden, måste du verkligen koda det binära värdet som vanlig text och lagra och hämta det kodade värdet. Två populära binär-till-text-kodningar är hexadecimal och base64 (uuencode).
Oracle tillhandahåller inbyggda funktioner RAWTOHEX och HEXTORAW för kodning och avkodning av binär (RAW-datatyp) som hexadecimala strängar (VARCHAR2-datatyp).