以下のようなxmlがあります。b4以降は節点が多いが関係ない。
<Parent>
<ServiceTag>sometag</ServiceTag>
<Addl_Payloads>
<Addl_PayloadCount>1</Addl_PayloadCount>
<Addl_Payload>
<Attrib Name="TYPE" Seq="1" Value="LICENSE"> </Attrib>
<Attrib Name="ENTITLEMENT_ID" Value="sdfsfdsadfaasdfsadf1"></Attrib>
</Addl_Payloads>
</Parent>
がある場合にのみ値を読み取るように Oracle 11g でクエリを作成するにはどうすればよいですかAttrib name=ENTITLEMENT_ID
。私はこのようなことを試しましたが、これにより値列が空になり、基本的にread = 'sdfsfdsadfaasdfsadf1'
存在する場合はしたいです
SELECT s.doc_id,
extractValue(x.column_value, '/Parent/ServiceTag') as ST,
extractValue(x.column_value,
'/Parent/Addl_Payloads/Addl_Payload/Attrib[@Name="ENTITLEMENT_ID"]') as Value
from LKMLOG.LKM_ORIG_ASB_MSG s
, TABLE(
XMLSequence(
xmltype( s.ASB_XML).extract(
'//Payload/PPIDInfoRequestMessage/PPIDData/Parent'
)
)
) x
where s.doc_id in (somevalues);