sql >> Database >  >> RDS >> Oracle

Kan XML-waarde niet extraheren uit Oracle CBLOB

Het extract() functie is verouderd . Het is beter om XMLQuery() .

U moet ofwel een standaardnaamruimte declareren die overeenkomt met die in het XML-document:

select XMLQuery('
    declare default element namespace 
      "http://schemas.datacontract.org/2004/07/LCC.Crew.FAReserves.wsvc.Entities.FAReserves"; (: :)
    /Bid/BidName/text()'
  passing XMLType(xmlbidcontent)
  returning content) as BidName
from employeebids
where EmployeeBidID = 100;

BIDNAME                                                                         
--------------------------------------------------------------------------------
BAC

of (eenvoudiger maar minder robuust) gebruik een wildcard:

select XMLQuery('/*:Bid/*:BidName/text()'
  passing XMLType(xmlbidcontent)
  returning content) as BidName
from employeebids
where EmployeeBidID = 100;

BIDNAME                                                                         
--------------------------------------------------------------------------------
BAC

db<>viool het tonen van uw oorspronkelijke zoekopdrachten en beide, met behulp van een CTE om de voorbeeld-CLOB-waarde te leveren.




  1. Dubbelzinnige kolomfouten vermijden bij gebruik van JOIN in MySQL

  2. mysql-failover:hoe kiest u slaaf als nieuwe meester?

  3. Hoe een Excel-bestand in mysql-database te importeren vanuit PHP

  4. Cumulatieve som van waarden per maand, invullen voor ontbrekende maanden