sql >> データベース >  >> RDS >> Oracle

OracleCBLOBからXML値を抽出できません

    extract() 関数は非推奨です XMLQuery()<を使用することをお勧めします。 / code>

    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. Oracleテーブルのグループごとに最大x行になるように行を削除します

    2. SQLite Group By

    3. MySQLロングクエリ進捗監視

    4. LINQの日付差分ロジック