Oracle SQL Query使用xpath中的特定条件检索特定事件?

时间:2016-10-09 09:39:00

标签: sql xml oracle xpath xml-parsing

<List>
   <Event>
      <eventTime>2016-08-03T15:41:12.000+05:30</eventTime>
      <e:PlaceHolder xmlns:e="http://dpmt.element.com">US</e:PlaceHolder>
      <e:flag xmlns:e="http://dpmt.rmg.org/pq/rs">true</e:flag>
      <e:flag1 xmlns:e="http://dpmt.rmg.org/pq/rs">false</e:flag1>
   </Event>
   <Event>
      <eventTime>2016-08-01T19:41:12.000+05:30</eventTime>
   </Event>
</List>

我已经以这种方式存储了我的XML文档,它可能包含多个<Event>标记,使用X-Path查询,我只想获取那个事件,其中e:标志值为true ,在我的情况下,我必须使用where子句获得第一个事件标记。我需要使用EXTRACT或ExtractValue函数的通用查询,通过where子句中的条件来检查其标志值。

我正在以这种方式撰写查询: -

SELECT * FROM(SELECT EXTRACT(doc,&#39; // List&#39;)。getClobVal()AS doc FROM my_table)T;

1 个答案:

答案 0 :(得分:1)

这会对你有所帮助;使用空值测试标记标记。应在功能中添加另一个值。

INT WSAAPI WSAStringToAddress(
  _In_     LPTSTR             AddressString,
  _In_     INT                AddressFamily,
  _In_opt_ LPWSAPROTOCOL_INFO lpProtocolInfo,
  _Out_    LPSOCKADDR         lpAddress,
  _Inout_  LPINT              lpAddressLength
);