Oracle में, RAW डेटाटाइप बाइनरी मानों को संग्रहीत करने के लिए उपयुक्त है।
बाइनरी डेटा संग्रहीत करने के लिए वर्ण डेटाटाइप का उपयोग करने में समस्या यह है कि मान वर्ण सेट अनुवाद के अधीन हैं .
यदि क्लाइंट वर्ण सेट डेटाबेस वर्ण सेट से मेल नहीं खाता है, तो मान अनुवाद के अधीन हैं। (अर्थात, एक एन्कोडिंग में एक बाइनरी मान एक विशेष वर्ण का प्रतिनिधित्व करता है, लेकिन उस वर्ण को दूसरे वर्ण सेट में एक भिन्न बाइनरी मान द्वारा दर्शाया जा सकता है।
कैरेक्टर डेटाटाइप के साथ, Oracle "कैरेक्टर" वैल्यू को सुरक्षित रखता है, एन्कोडेड बाइनरी वैल्यू को नहीं।
यदि आप बाइनरी मानों को संग्रहीत करने के लिए एक वर्ण (जैसे CHAR या VARCHAR2) डेटाटाइप का उपयोग करना चाहते हैं, तो आपको वास्तव में बाइनरी मान को सादे पाठ के रूप में एन्कोड करना होगा, और एन्कोडेड मान को स्टोर और पुनर्प्राप्त करना होगा। दो लोकप्रिय बाइनरी-टू-टेक्स्ट एन्कोडिंग हेक्साडेसिमल और बेस 64 (यूएनकोड) हैं।
Oracle हेक्साडेसिमल स्ट्रिंग्स (VARCHAR2 डेटाटाइप) के रूप में बाइनरी (RAW डेटाटाइप) को एन्कोडिंग और डिकोडिंग के लिए RAWTOHEX और HEXTORAW बिल्टिन फ़ंक्शन प्रदान करता है।