sql >> Database teknologi >  >> RDS >> Oracle

Kan ikke udtrække XML-værdi fra Oracle CBLOB

extract() funktion er forældet . Det er bedre at bruge XMLQuery() .

Du skal enten erklære et standardnavneområde for at matche det i XML-dokumentet:

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

eller (enklere men mindre robust) brug et jokertegn:

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

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

db<>fiddle viser dine originale forespørgsler og begge disse, ved hjælp af en CTE til at angive CLOB-eksemplet-værdien.




  1. Hvordan man sporer hvilke tabeller/visninger/etc. afhænger af en tabel i Oracle

  2. Udskriv postfelter i PL/SQL

  3. Betinget VED DUPLIKAT NØGLEOPDATERING (Opdater kun, hvis en bestemt betingelse er sand)

  4. Hvad er opførselen for minusoperatoren mellem to datetimes i MySQL?