sql >> Base de Datos >  >> RDS >> Oracle

No se puede extraer el valor XML de Oracle CBLOB

El extract() la función está en desuso . Es mejor usar XMLQuery() .

Debe declarar un espacio de nombres predeterminado para que coincida con el del documento 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

o (más simple pero menos robusto) use un comodín:

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

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

db<>fiddle mostrando sus consultas originales y ambas, usando un CTE para proporcionar el valor CLOB de muestra.