मैं बेस 64 एन्कोड / ओरेकल में वैल्यू कैसे कर सकता हूं?
मैंने इसे अपने एमएस एक्सचेंज सर्वर के माध्यम से सिरिलिक ई-मेल भेजने के लिए लागू किया है।
फ़ंक्शन to_base64 (varchar2 में टी) वापसी varchar2 वापस शुरू होता है utl_raw.cast_to_varchar2 (utl_encode.base64_encode (utl_raw.cast_to_raw (t))); अंत to_base64;
इसे आज़माएं।
अपडेट: एक मामूली समायोजन के बाद मैं इसके साथ आया, इसलिए यह अब दोनों तरीकों से काम करता है:
<पूर्व> फ़ंक्शन से_बेस 64 (varchar2 में टी) वापसी varchar2 वापसी शुरू होता है utl_raw.cast_to_varchar2 (utl_encode.base64_decode (utl_raw.cast_to_raw (t))); अंत से_बेस 64;
आप इसे देख सकते हैं:
SQL & gt; एसक्यूएल एवं जीटी पर सर्वर आउटपुट सेट करें; एसक्यूएल & gt; 2 कार्य to_base64 घोषित करें (varchar2 में टी) वापसी varchar2 3 शुरू 4 वापसी utl_raw.cast_to_varchar2 (utl_encode.base64_encode (utl_raw.cast_to_raw (t))); 5 अंत to_base64; 6 7 से function_base64 (varchar2 में टी) वापसी varchar2 8 शुरू 9 वापसी utl_raw.cast_to_varchar2 (utl_encode.base64_decode (utl_raw.cast_to_raw (टी))); 10 अंत से_बेस 64; 11 12 शुरू 13 dbms_output.put_line (from_base64 (to_base64 ('asdf'))); 14 अंत;
upd2: ठीक है, यहाँ एक नमूना रूपांतरण होता है जो CLOB
के लिए काम करता है मैं अभी आया हूं साथ में। अपने blobs के लिए इसे बाहर काम करने की कोशिश करो :)
क्लोब ऑरिजिनल क्लॉब घोषित करें; ClobInBase64 क्लॉब; Substring varchar2 (2000); N pls_integer: = 0; Substring_length pls_integer: = 2000; फ़ंक्शन to_base64 (varchar2 में टी) वापसी varchar2 वापस शुरू होता है utl_raw.cast_to_varchar2 (utl_encode.base64_encode (utl_raw.cast_to_raw (t))); अंत to_base64; Function_base64 (varchar2 में टी) फ़ंक्शन varchar2 वापस शुरू होता है utl_raw.cast_to_varchar2 (utl_encode.base64_decode (utl_raw.cast_to_raw (t))); अंत से_बेस 64; ClobTrig से clobOriginal में चयन clobField शुरू जहां आईडी = 1; जबकि सच्चा लूप / * हम substring_length * / substring: = dbms_lob.substr (clobOriginal, कम से कम (substring_length, substring_length * n + 1 - लंबाई (clobOriginal)), substring_length * n + 1 के टुकड़े substract; / * यदि कोई सबस्ट्रिंग नहीं मिला - तो हम ब्लॉब के अंत तक पहुँच चुके हैं * / यदि सबस्ट्रिंग रिक्त है तो बाहर निकलें; अगर अंत; / * उन्हें बेस 64 एन्कोडिंग में कनवर्ट करें और इसे नए क्लॉब वैड्राएबल * / clobInBase64 में स्टैक करें: = clobInBase64 || to_base64 (-स्ट्रिंग); N: = n + 1; अंत लूप; N: = 0; ClobOriginal: = नल; / * तो हम पीछे की ओर एक ही चीज़ करते हैं - आधार64 * / डीकोड बेस -64 * / जबकि सच्चे लूप उपस्ट्रैक्शन: = डीबीएमएस_ब्लॉब। एसयूवीआरटी (कमांड (कम से कम) (substring_length, substring_length * n + 1 - लंबाई (clobInBase64)), substring_length * n + 1; यदि सबस्ट्रिंग शून्य है तो बाहर निकलें; अगर अंत; क्लोब ओरिनल: = क्लोब ऑरिमेंटल || from_base64 (-स्ट्रिंग); N: = n + 1; अंत लूप; / * और हमारे नमूना तालिका में डेटा डालें - यह सुनिश्चित करने के लिए कि * वही * / सम्मिलित करें clobTable (id, anotherClobField) मान (1, क्लोब ऑरिनल); समाप्त;
Comments
Post a Comment