【发布时间】:2021-09-28 04:56:14
【问题描述】:
我在一个包含以下标签的表中有一个 xmltype 列
<LOCATION TYPE="ABS" EPSG="4277" UNIT="decLL">
<X>-2.12105834</X>
<Y>49.20372223</Y>
</LOCATION>
我已使用以下查询提取列中类型的值
SELECT a.object_id,a.xml_data.extract('//LOCATION/@TYPE').getStringVal() AS "Location Type"
FROM object_history a;
输出是表中单列中的 ABSABSREL。 我想在表格的单独列中获取每个值。 请帮忙看看如何做到这一点?
【问题讨论】:
-
否,这些值已正确提取,但我希望它们出现在单独的列中
-
您提供的示例无法返回这样的值,因为看起来您有更多具有相同标签的条目并且 xpath 返回一个序列。如果您知道其中的最大元素数,您可以按位置访问它们(
[n]),如果不知道,那么 Oracle 中的 SQL 结果集不可能有预定义的结构 -
我尝试将类型后的索引作为类型[1],但它仍然返回多个值
-
请提供可重现的示例以及适当的样本数据及其输出