我试图确定xml标记是否有两个特定的子标记。
XML Clob的格式如下:
<ProductS>
<id>1</id>
<Discount></Discount>
<Promotion></Promotion>
</ProductS>
<ProductS>
<id>2</id>
<Discount></Discount>
</ProductS>
我希望我的xmlquery通过此XML clob并确定在ProductS下是否存在包含这两种折扣和促销类型的xml标记。
我的代码目前看起来像这样:
select existsNode(xmltype(rec1.xml), '/ProductS/Discount') into v_node_exists_discount from dual;
select existsNode(xmltype(rec1.xml), '/ProductS/Promotion') into v_node_exists_promotion from dual;
以上这两个陈述是否会在这种情况下起作用,或者我是否需要做其他事情。
感谢。
答案 0 :(得分:3)
我不熟悉oracle,但您可以使用单个xpath轻松查询<ProductS>
和<Discount>
<Promotion>
,如下所示:
/ProductS[Discount and Promotion]
oracle查询可能看起来像这样:
select existsNode(xmltype(rec1.xml), '/ProductS[Discount and Promotion]')
into v_node_exists_discount_and_promotion
from dual;