我的以下查询效果很好,但我似乎无法获得选项节点上的内部文本以适应我的生活。我如何获得要求,收到,存档或拒绝以便在表格中显示?我尝试过使用$ i/text(),$ i /。等。想法?Oracle XPath:获取内部文本
select
x."LABEL",
x."NAME",
x."THE_VAL"
FROM
XMLTABLE(
'for $i in /metadata/fields/field/option
return element r{
$i/@value,
$i/../@label,
$i/../@name
}'
PASSING xmltype(
'<metadata>
<fields>
<field name="cusRc01" label="Capillary Pressure - MICP">
<option value="1">Required</option>
<option value="2">Received</option>
<option value="3">Archived</option>
<option value="4">Rejected</option>
<option value="5">N/A</option>
</field>
<field name="cusRc02" label="Fluid Sensitivity">
<option value="1">Required</option>
<option value="2">Received</option>
<option value="3">Archived</option>
<option value="4">Rejected</option>
<option value="5">N/A</option>
</field>
</fields>
</metadata>')
COLUMNS
--val_label VARCHAR(32) PATH 'option',
the_val INTEGER PATH '@value',
name VARCHAR(32) PATH '@name',
label VARCHAR(32) PATH '@label') x;
嗯,这似乎并不奏效。 –
@slothario - 你需要''元素r''构造函数来提供选项节点的文本;使用''。''路径可以将其作为元素内容而不是属性。 (我更新了我的答案,演示了这种方法)。 –