Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

पीएल/एसक्यूएल के साथ बड़ी एक्सएमएल फाइल को पार्स करना

आप फ़ाइल को पंक्ति दर पंक्ति पढ़ रहे हैं, लेकिन अपने xmlClob . को अधिलेखित कर रहे हैं प्रत्येक पंक्ति के साथ, संलग्न नहीं। आप varchar2 . में पढ़कर CLOB का निर्माण कर सकते हैं बफर और अपेंडिंग, लेकिन आप DBMS_LOB . का भी उपयोग कर सकते हैं आपके लिए इसे करने के लिए अंतर्निहित प्रक्रियाएं:

DECLARE
  xmlClob CLOB;
  xmlFile BFILE;
  x XMLType;

  src_offset number := 1 ;
  dest_offset number := 1 ;
  lang_ctx number := DBMS_LOB.DEFAULT_LANG_CTX;
  warning integer;
BEGIN
  xmlFile := BFILENAME('XMLPARSERADRESYCUZK', 'pokus.xml');
  DBMS_LOB.CREATETEMPORARY(xmlClob, true);
  DBMS_LOB.FILEOPEN(xmlFile, DBMS_LOB.FILE_READONLY);
  DBMS_LOB.LOADCLOBFROMFILE(xmlClob, xmlFile, DBMS_LOB.LOBMAXSIZE, src_offset,
    dest_offset, DBMS_LOB.DEFAULT_CSID, lang_ctx, warning);
  x := XMLType.createXML(xmlClob);
  DBMS_LOB.FILECLOSEALL();
  DBMS_LOB.FREETEMPORARY(xmlClob);
  FOR r IN (
...

जब मैं इसका उपयोग करता हूं और आपकी फाइल लोड करता हूं तो मुझे आउटपुट मिलता है:

CUZK Pod smdli.t.m 1800/9

आप शायद DBMS_LOB . के आसपास कुछ त्रुटि जांच चाहते हैं कॉल, यह एक साधारण डेमो है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle Apps R12.2 . में TLS को सक्षम करना

  2. sql (ओरेकल) पहले 10 रिकॉर्ड का चयन करने के लिए, फिर अगले 10, और इसी तरह

  3. मैं Oracle में नामित बाधा की परिभाषा कैसे प्राप्त करूं?

  4. SQL कथन द्वारा Groupy में नहीं कॉलम द्वारा चयन और ऑर्डर कैसे करें - Oracle

  5. 12c DBA_USERS परिवर्तन