我的以下查詢效果很好,但我似乎無法獲得選項節點上的內部文本以適應我的生活。我如何獲得要求,收到,存檔或拒絕以便在表格中顯示?我嘗試過使用$ 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''構造函數來提供選項節點的文本;使用''。''路徑可以將其作爲元素內容而不是屬性。 (我更新了我的答案,演示了這種方法)。 –