extract()
funkcja jest przestarzała
. Lepiej jest użyć XMLQuery()
.
Musisz albo zadeklarować domyślną przestrzeń nazw, aby pasowała do tej w dokumencie 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
lub (prostsze, ale mniej niezawodne) użyj symbolu wieloznacznego:
select XMLQuery('/*:Bid/*:BidName/text()'
passing XMLType(xmlbidcontent)
returning content) as BidName
from employeebids
where EmployeeBidID = 100;
BIDNAME
--------------------------------------------------------------------------------
BAC
db<>skrzypce pokazując oryginalne zapytania i oba te, używając CTE do podania przykładowej wartości CLOB.