Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Nie można wyodrębnić wartości XML z Oracle CBLOB

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BŁĄD Oracle:ORA-00900:nieprawidłowa instrukcja SQL

  2. Jaka jest różnica między kontami Oracle SYS i SYSTEM?

  3. Jak przekazać wartości w anonimowym bloku z parametrem tabeli plsql?

  4. Używanie where in na wiosnę-jdbc

  5. Oracle Konwertuj TIMESTAMP ze strefą czasową na DATE