Oracle
 sql >> Datenbank >  >> RDS >> Oracle

XML-Wert kann nicht aus Oracle CBLOB extrahiert werden

Der extract() Funktion ist veraltet . Verwenden Sie besser XMLQuery() .

Sie müssen entweder einen Standardnamensraum deklarieren, der mit dem im XML-Dokument übereinstimmt:

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

oder (einfacher, aber weniger robust) verwenden Sie einen Platzhalter:

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

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

db<>fiddle Zeigen Sie Ihre ursprünglichen Abfragen und beide an und verwenden Sie einen CTE, um den Beispiel-CLOB-Wert bereitzustellen.