sql >> Databasteknik >  >> RDS >> Oracle

Det går inte att extrahera XML-värde från Oracle CBLOB

extract() funktionen är utfasad . Det är bättre att använda XMLQuery() .

Du måste antingen deklarera ett standardnamnområde för att matcha 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 (enklare men mindre robust) använd ett jokertecken:

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

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

db<>fiol visar dina ursprungliga frågor och båda dessa, med hjälp av en CTE för att tillhandahålla CLOB-exemplet.




  1. mySQL-kolumn för att hålla array

  2. Den bortglömda uppdragsoperatören =och det vanliga :=

  3. Hur man återställer en SQL Server-databas på en Mac med SQL Operations Studio

  4. Så här löser du Observera:Odefinierat index:id i C:\xampp\htdocs\invmgt\manufactured_goods\change.php på rad 21