0
条件付きリターンのXMLTypeを照会しようとしています。
マイXMLクエリ:oracle XMLTABLE条件付きリターン
with tab as (
select XMLType(
'<Obj name="Job" id="1">
<Steps>
<StepType2>
<StepOptions>
<Attribute name="attr1" value="val1"/>
<Attribute name="attr2" value="val2"/>
<Attribute name="attr3" value="val3"/>
</StepOptions>
</StepType2>
<StepType1 type="flow" name="flowval" id="103"/>
<StepType1 type="data" name="dataval" id="104"/>
<StepType2>
<StepOptions>
<Attribute name="attr1" value="val5"/>
<Attribute name="attr2" value="val6"/>
</StepOptions>
</StepType2>
</Steps>
</Obj>') as xmldata
from dual
)
select x.*
from tab,
XMLTable('for $i in $XmlData//*
return $i'
PASSING xmldata as "XmlData"
COLUMNS node VARCHAR2(2000) PATH 'name()',
name VARCHAR2(2000) PATH '@name',
id VARCHAR2(2000) PATH '@id'
) x
は、私は上のXML DBオラクル、XPathとにあまりにも多くの検索を行うことが、私は私の目標を達成するためにどのように任意のアイデアを見つけることができませんでした。
基本的に私はこの結果を達成するために欲しいもの:ノード名は=「StepType2」の場合
- 表示し、そのルートの親を持つすべてのステップの要素、この場合には根がし、 'objの
- です名前だけ=「ATTR1」と
場合のみ、名前は=「ATTR2」 - 場合は、ノード名を=「StepType1」場合ATTR_NAMEフィールドの
はそのくらいSIMPその後、ATTR_VALフィールドGET値の値を取得しますルATTR_NAME = @type、 ATTR_VAL = @名とATTR_ID = @ ID
は、私はそれが可能であっても知らないが、開始時に任意のアイデアは素晴らしいだろうね?
はありがとうございました。.. – Deniz