sql >> Databasteknik >  >> RDS >> Oracle

Hur man analyserar xml med xmltable när man använder namnutrymme i xml(Oracle)

Baserat på det här svaret

Borde vara så här:

declare    
  v_xml clob;    
begin    
  v_xml := '<?xml version="1.0" encoding="utf-8"?>    
  <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">    
    <soap:Body>    
      <addResponse xmlns="http://tempuri.org/">    
        <addResult>20</addResult>    
      </addResponse>    
    </soap:Body>    
  </soap:Envelope>';    
  for c in (select results    
              from xmltable(xmlnamespaces(default 'http://tempuri.org/',    
                                          'http://schemas.xmlsoap.org/soap/envelope/' as    
                                          "soap" ),    
                            'soap:Envelope/soap:Body/addResponse' passing    
                            xmltype(v_xml) columns results varchar(100) path    
                            './addResult')) loop    
    dbms_output.put_line('the result of calculation is : ' || c.results);    
  end loop;    
end;



  1. ORA-06502:PL/SQL:numeriskt eller värdefel:teckensträngsbuffert för liten undantag från C#-kod

  2. Session_set_save_handler inte inställning

  3. Unik värdebegränsning över flera kolumner

  4. Fråga för att bara hämta siffror från en sträng