sql >> Databáze >  >> RDS >> Oracle

Nelze extrahovat hodnotu XML z Oracle CBLOB

extract() funkce je zastaralá . Je lepší použít XMLQuery() .

Musíte buď deklarovat výchozí jmenný prostor, aby odpovídal tomu v dokumentu XML:

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

nebo (jednodušší, ale méně robustní) použijte zástupný znak:

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

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

db<>housle zobrazující vaše původní dotazy a oba tyto, pomocí CTE k poskytnutí ukázkové hodnoty CLOB.




  1. LOWER LIKE vs. ILIKE

  2. Programově identifikujte cizí klíče django

  3. Načíst data z tabulky pomocí funkce Group_concat

  4. Fulltextový dotaz s jedinou uvozovkou