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!

How can I query data from XML file stored as a CLOB ?

Tomáš KepičMar 7 2013 — edited Mar 9 2013
Hi folks,

please see below sample of XML file, which is stored in "os_import_docs", column "document" as CLOB.

I would like to query this XML file using some SQL select.


How can I query data form below XML?
<?xml version="1.0" encoding="UTF-8"?>
<etd>
  <header>
    <AR>000000000</AR>
    <AW>0</AW>
    <CT>S</CT>
    <CU>H</CU>
    <CZ>SS48</CZ>
    <BU>4</BU>
    <CH>0032</CH>
    <CK>2012-11-01</CK>
    <CL>21:18</CL>
    <CW>225</CW>
    <CX>0</CX>
    <CF>SS-CZL18</CF>
    <DV>2</DV>
  </header>
  <account_group id="234">
    <account id="234">
      <invoice id="000742024">
        <da>
          <AR>000742024</AR>
          <AW>0</AW>
          <CT>D</CT>
          <CU>A</CU>
          <CH>0032</CH>
          <BY>31-10-2012</BY>
          <CA>25-10-2012</CA>
          <AB>234</AB>
          <AA>234</AA>
          <BS>88754515</BS>
          <AD>Mike Tyson</AD>
          <AC>Mike Tyson</AC>
          <AZ>CZ6521232465</AZ>
          <AE/>
          <CG>A</CG>
          <AL>A</AL>
          <BZ>.</BZ>
          <AH>Some street</AH>
          <AI/>
          <AF>Some city</AF>
          <AK>Kraj</AK>
          <AG>CZ</AG>
          <AJ>885 21</AJ>
          <CR>21-11-2012</CR>
          <AY>602718709</AY>
          <AV>800184965</AV>
          <AP/>
          <AO/>
          <AQ/>
          <AN/>
        </da>
        <da>
          <AR>000742024</AR>
          <AW>0</AW>
          <CT>D</CT>
          <CU>A</CU>
          <CH>0032</CH>
          <BY>31-10-2012</BY>
          <CA>25-10-2012</CA>
          <AB>234</AB>
          <AA>234</AA>
          <BS>88754515</BS>
          <AD>Mike Tyson</AD>
          <AC>Mike Tyson</AC>
          <AZ>CZ6521232465</AZ>
          <AE/>
          <CG>A</CG>
          <AL>L</AL>
          <BZ>Mike Tyson</BZ>
          <AH>Some street</AH>
          <AI/>
          <AF>Some city</AF>
          <AK>Kraj</AK>
          <AG>CZ</AG>
          <AJ>885 21</AJ>
          <CR>21-11-2012</CR>
          <AY/>
          <AV>800184965</AV>
          <AP/>
          <AO/>
          <AQ/>
          <AN/>
        </da>
        <detaildc CH="0032" AB="234" BS="11888954" BB="32" BA="CZ" AT="" CI="7077329000002340342" AU="" DU="1Z48395" CB="CZK">
          <dc>
            <AW>0</AW>
            <CT>D</CT>
            <CU>C</CU>
            <BY>31-10-2012</BY>
            <CA>25-10-2012</CA>
            <CV>8151</CV>
            <BT>12111</BT>
            <CJ>1</CJ>
            <AM>0</AM>
            <DR>PC</DR>
            <DS/>
            <DO>25-10-2012</DO>
            <DQ>18:42</DQ>
            <CE>1</CE>
            <BH>8151</BH>
            <CY>8151 SHELL MALKOVICE P</CY>
            <DP>049336</DP>
            <DT/>
            <BQ/>
            <BR>500000</BR>
            <CN>30</CN>
            <CM>030</CM>
            <BO>160,00</BO>
            <BF>38,900</BF>
            <BC>6224,00</BC>
            <BI>32,417</BI>
            <CD>B</CD>
            <BG>0,600</BG>
            <BK>31,817</BK>
            <BJ>0,000</BJ>
            <DI>8</DI>
            <BP>20,00%</BP>
            <CC>CZK</CC>
            <BM>5090,67</BM>
            <BN>1018,13</BN>
            <BL>6108,80</BL>
            <BD>5090,67</BD>
            <BE>1018,13</BE>
            <DW>6108,80</DW>
            <CO>Nafta</CO>
          </dc>
        </detaildc>
        <dt>
          <AR>000742024</AR>
          <AW>0</AW>
          <CT>D</CT>
          <CU>T</CU>
          <CH>0032</CH>
          <BY>31-10-2012</BY>
          <CA>25-10-2012</CA>
          <AB>234</AB>
          <AA>234</AA>
          <BS>11888954</BS>
          <BB/>
          <BA>CZ</BA>
          <DG>1</DG>
          <CN>30</CN>
          <CM>030</CM>
          <DF>160,00</DF>
          <DH>litr</DH>
          <DJ>20,00%</DJ>
          <DD>5090,67</DD>
          <DE>1018,13</DE>
          <DC>6108,80</DC>
          <DB>CZK</DB>
          <DA>P</DA>
          <AX/>
          <CQ/>
          <CP/>
        </dt>
        <dt>
          <AR>000742024</AR>
          <AW>0</AW>
          <CT>D</CT>
          <CU>T</CU>
          <CH>0032</CH>
          <BY>31-10-2012</BY>
          <CA>25-10-2012</CA>
          <AB>234</AB>
          <AA>234</AA>
          <BS>11888954</BS>
          <BB/>
          <BA>CZ</BA>
          <DG>2</DG>
          <CN/>
          <CM/>
          <DF>160,00</DF>
          <DH>litr</DH>
          <DJ/>
          <DD>5090,67</DD>
          <DE>1018,13</DE>
          <DC>6108,80</DC>
          <DB>CZK</DB>
          <DA/>
          <AX/>
          <CQ/>
          <CP/>
        </dt>
        <dt>
          <AR>000742024</AR>
          <AW>0</AW>
          <CT>D</CT>
          <CU>T</CU>
          <CH>0032</CH>
          <BY>31-10-2012</BY>
          <CA>25-10-2012</CA>
          <AB>234</AB>
          <AA>234</AA>
          <BS>11888954</BS>
          <BB/>
          <BA>CZ</BA>
          <DG>19</DG>
          <CN/>
          <CM/>
          <DF/>
          <DH/>
          <DJ/>
          <DD>5090,67</DD>
          <DE>1018,13</DE>
          <DC>6108,80</DC>
          <DB>CZK</DB>
          <DA/>
          <AX/>
          <CQ/>
          <CP/>
        </dt>
        <dt>
          <AR>000742024</AR>
          <AW>0</AW>
          <CT>D</CT>
          <CU>T</CU>
          <CH>0032</CH>
          <BY>31-10-2012</BY>
          <CA>25-10-2012</CA>
          <AB>234</AB>
          <AA>234</AA>
          <BS>11888954</BS>
          <BB/>
          <BA>CZ</BA>
          <DG>8</DG>
          <CN/>
          <CM/>
          <DF/>
          <DH/>
          <DJ/>
          <DD>5090,67</DD>
          <DE>1018,13</DE>
          <DC>6108,80</DC>
          <DB>CZK</DB>
          <DA/>
          <AX/>
          <CQ/>
          <CP/>
        </dt>
      </invoice>
    </account>
  </account_group>
  <footer>
    <AR>999999999</AR>
    <AW>0</AW>
    <CT>S</CT>
    <CU>T</CU>
    <CZ>SS48</CZ>
    <BU>4</BU>
    <CH>0032</CH>
    <CK>2012-11-01</CK>
    <CL>23:04</CL>
    <CW>225</CW>
    <BX>1</BX>
    <CS>7</CS>
    <BW>0000000000000610880</BW>
  </footer>
</etd>
sample - not working:
    select  x.*
    from os_import_docs d
         ,XMLTABLE('/etd/header'
                    PASSING httpuritype(d.document).getXML()
                    COLUMNS 
                       response_status varchar2(50) PATH 'AR'
                    )  x
   where d.object_id = 2587058
     and rownum = 1;  

 
ORA-22835: Buffer too small for CLOB to CHAR or BLOB to RAW conversion (actual: 6196, maximum: 4000)
Many thanks,
Tomas
This post has been answered by odie_63 on Mar 8 2013
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 6 2013
Added on Mar 7 2013
18 comments
1,840 views