Oracle
 sql >> база данни >  >> RDS >> Oracle

Не може да се извлече XML стойност от Oracle CBLOB

extract() функцията е отхвърлена . По-добре е да използвате XMLQuery() .

Трябва или да декларирате пространство от имена по подразбиране, за да съответства на това в 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

или (по-просто, но по-малко надеждно) използвайте заместващ знак:

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

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

db<>fiddle показвайки оригиналните ви заявки и двете, като използвате CTE, за да предоставите примерната 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. Oracle Поглед зад положителното

  2. Доставчикът на ADO.NET „Oracle.ManagedDataAccess.Client“ или не е регистриран в конфигурационния файл на машината или приложението, или не може да бъде зареден

  3. Oracle показва всички служители с по-висока от средната заплата в техния отдел

  4. Втора най-висока стойност от таблицата на Oracle DB

  5. накарайте оптимизатора да използва всички колони на индекс