W Oracle typ danych RAW jest odpowiedni do przechowywania wartości binarnych.
Problem z używaniem typów danych znaków do przechowywania danych binarnych polega na tym, że wartości podlegają tłumaczeniu zestawu znaków .
Jeśli zestaw znaków klienta nie jest zgodny z zestawem znaków bazy danych, wartości podlegają translacji. (Oznacza to, że wartość binarna w jednym kodowaniu reprezentuje określony znak, ale ten znak może być reprezentowany przez inną wartość binarną w innym zestawie znaków.
W przypadku typu danych znakowych Oracle zachowuje wartość „znakową”, a nie zakodowaną wartość binarną.
Jeśli chcesz użyć typu danych znaku (np. CHAR lub VARCHAR2) do przechowywania wartości binarnych, naprawdę musisz zakodować wartość binarną jako zwykły tekst oraz przechowywać i pobierać zakodowaną wartość. Dwa popularne kodowania binarne na tekst to szesnastkowe i base64 (uuencode).
Oracle zapewnia wbudowane funkcje RAWTOHEX i HEXTORAW do kodowania i dekodowania danych binarnych (typ danych RAW) jako ciągów szesnastkowych (typ danych VARCHAR2).