首页 > 解决方案 > PostgreSQL 中 EXISTSNODE 的等效语法是什么

问题描述

我正在尝试将以下 Oracle 查询转换为 PostgreSQL,但没有找到任何解决方案。

 EXISTSNODE( p_candidate_xml, '//h:Candidate/h:CandidatePerson/h:UserArea/h:GOVT_SpecialHiringAuthorities/h:GOVT_SpecialHiringOptions[text() = "MILSPOUSE" or text() = "MILSPOUSEOS"]', ns )

我发现 xmlexists 函数,但它不接受 ns

这里 ns-> 命名空间

标签: xmlpostgresql

解决方案


xpath_exists()可能是您正在寻找的。您还没有向我们展示输入 XML,但是这样的东西应该可以工作:

xpath_exists(
   p_candidate_xml, 
   '//h:Candidate/h:CandidatePerson/h:UserArea/h:GOVT_SpecialHiringAuthorities/h:GOVT_SpecialHiringOptions[text() = "MILSPOUSE" or text() = "MILSPOUSEOS"]', 
   ARRAY[ARRAY['h', 'http://example.com'] );

推荐阅读