<SRDBSW xmlns:xdb="http://xmlns.oracle.com/xdb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Id="String" ShortIds="Y" >
<OBJ_DF IdView="RW" ObjLevel="Element" Nature="" ObjectType="" ShortDescription="" ShortDescriptionCore="" LogicalShortDescription="" LongDescription="Reaction Wheel" LongDescriptionCore="" LogicalLongDescription="" Mnemonic="" IsDefined="Y" ModelType="" SerialNumber="" ProductTreeId="" CategoryFlag="7" OwnerFlag="7" InputVersion="" InputType="" InputReference="" >
<TC_STR_DF IdView="TCSTABCDE" IsDirect="Y" CategoryFlag="0" OwnerFlag="0" ShortDescription="TC Packet Header Structure" ShortDescriptionCore="TC Packet Header Structure" LongDescription="Item: TC Structure" Mnemonic="TC Structure" Type="TC_STR" >
<TC_STR_COMP_LIST>
<TC_STR_COMP CompOrder="3" ComponentType="Editable parameter" CompId="HABCA" EngValue="3" TakeValue="From occurrence" MonParRef="MBCDA" Mandatory="Yes" />
</TC_STR_COMP_LIST>
</TC_STR_DF>
</OBJ_DF>
I have this section of XML in an xmltable in an Oracle table (this is just a sample, my XML is full with those sections):
<SCOS_TM_DF IdView="1111" IsDirect="Y" CategoryFlag="0" OwnerFlag="0" ShortDescription="TC Packet Header Structure" ShortDescriptionCore="TC Packet Header Structure" LongDescription="Item: SCOS TM Packet" Mnemonic="SCOS TM Packet" Type="SCOS_TM" TpcfName="My TM packet" InterpretFlag="Both" DefOffsetTime="66" >
<TM_STR_COMP_LIST>
<TM_STR_COMP ComponentType="Single structure" CompId="TMSTABCDE" CompBytePos="0" CompBitPos="0" TimeOffset="0" SelectorParRef="MABCA" SelRawValue="0" />
</TM_STR_COMP_LIST>
</SCOS_TM_DF>
I need to find all ComponentType="Single structure"
, but also need to get the "father" SCOS_TM_DF IdView="1111"
.
So far, I'm working on this query, but can't get idview:
SELECT x.*
FROM xmlimport t
CROSS JOIN XMLTABLE ('/SRDBSW/OBJ_DF/TC_STR_DF/TC_STR_COMP_LIST/TC_STR_COMP/@*'
PASSING t.XMLDATA
COLUMNS
IdView VARCHAR2(30) PATH '/../../../@IdView',
CompId VARCHAR2(30) PATH '@CompId',
attr_name VARCHAR2(30) PATH 'local-name(.)',
attr_value VARCHAR2(90) PATH '.' ) x
WHERE t.xmlkey = 'SRDB-XML-sample-1.xml';