सरल समाधान सीएलओबी को बीएलओबी में डालना है और फिर बीएलओबी की लंबाई का अनुरोध करना है!
समस्या यह है कि ओरेकल एक समारोह है कि ब्लॉब को CLOB डाली नहीं है, लेकिन के बाइट्स
है हम केवल एक समारोह को परिभाषित कर सकते कि
create or replace
FUNCTION clob2blob (p_in clob) RETURN blob IS
v_blob blob;
v_desc_offset PLS_INTEGER := 1;
v_src_offset PLS_INTEGER := 1;
v_lang PLS_INTEGER := 0;
v_warning PLS_INTEGER := 0;
BEGIN
dbms_lob.createtemporary(v_blob,TRUE);
dbms_lob.converttoblob
(v_blob
, p_in
, dbms_lob.getlength(p_in)
, v_desc_offset
, v_src_offset
, dbms_lob.default_csid
, v_lang, v_warning
);
RETURN v_blob;
END;
एसक्यूएल आदेश संख्या प्राप्त करने का उपयोग करने के क्या करना है
SELECT length(clob2blob(fieldname)) as nr_bytes
या
SELECT dbms_lob.getlength(clob2blob(fieldname)) as nr_bytes
मैं Unico का उपयोग किए बिना Oracle 10g पर इस परीक्षण किया है डे (UTF-8)। लेकिन मुझे लगता है कि इस समाधान यूनिकोड (UTF-8) Oracle उदाहरण :-)
मुझे लगता है कि एक समाधान CLOB How convert CLOB to BLOB in Oracle? बूँद और इस पोस्ट में जर्मन लिखा करने के लिए कन्वर्ट करने के लिए पोस्ट किया गया है Nashev करने के लिए धन्यवाद प्रस्तुत करना चाहते हैं का उपयोग कर सही किया जाना चाहिए (कोड पीएल/एसक्यूएल में है) 13ter.info.blog जो ब्लॉब को क्लोब में परिवर्तित करने के लिए अतिरिक्त रूप से एक फ़ंक्शन देता है!
क्या कोई यूनिकोड (यूटीएफ -8) सीएलओबी में 2 कमांड का परीक्षण कर सकता है, तो मुझे यकीन है कि यह यूनिकोड के साथ काम करता है?
आप सीएलओबी के बाइट्स में आकार के साथ क्यों चिंतित हैं? – Thanatos
ओपी नहीं, लेकिन मेरे मामले में मैं एक डीबी लिंक में सीएलओबीएस को पुनः प्राप्त कर रहा था और उन्हें 4000-बाइट भागों में काटना पड़ा, और मैं जानना चाहता था कि मुझे अपने डेटा के लिए कितने हिस्से की आवश्यकता है। –
यह पागल है, मैं चीनी क्लोब को वर्चर 2 में निचोड़ना चाहता हूं और ऐसा नहीं कर सकता क्योंकि मैं आकार – Toolkit