Skip to Main Content

DevOps, CI/CD and Automation

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

CLOB into dbms_xmldom.createTextNode

Darko KulfaJul 13 2024

I'm struggling how to write large CLOB data into XML dbms_xmldom.createTextNode. I've found something that clob has to be chucked into smaller characters (32767). This is part in XML pl sql what Im using now and I dont get correct Node.

l_varchar   VARCHAR2(32767);
l_pos2       NUMBER := 1;
l_chunk_len NUMBER := 32767;  
V_PDFBASE64 clob;  
    
select pdf_base64  into V_PDFBASE64 from ei_transfer where ei_id =  in_ei_id ;
DBMS_LOB.CREATETEMPORARY(V_PDFBASE64, TRUE);
    
WHILE l_pos2 <= DBMS_LOB.getlength(V_PDFBASE64) LOOP  
         
item_sub_1_elmt := xmldom.createElement( doc , 'cbc:EmbeddedDocumentBinaryObject' );
item_sub_1_node := xmldom.appendChild(item_sub_1_node , xmldom.makeNode(item_sub_1_elmt));
XMLDOM.SETATTRIBUTE(item_sub_1_elmt , 'mimeCode' , 'application/pdf');                    
      
l_varchar := DBMS_LOB.SUBSTR(V_PDFBASE64,l_chunk_len,l_pos2);     
l_pos2 := l_pos2 + l_chunk_len;
         
item_sub_1_text := dbms_xmldom.createTextNode(doc,  l_varchar);
item_sub_1_node := xmldom.appendChild(item_sub_1_node , xmldom.makeNode(item_sub_1_text)); 
    
END LOOP;

The final goal is to write base64 pdf clob into EmbeddedDocumentBinaryObject element.

Thanks!

Comments
Post Details
Added on Jul 13 2024
0 comments
110 views