这里是一个示例表格:
这是一个小的 XML 文档:
请注意,加拿大没有“州”元素,但美国有。 我正在尝试获取这些查询结果(顺序和格式不重要):
当我执行此操作时,结果中会同时出现加拿大和美国。
当我这样做时,我得到了两个状态:
我尝试使用“..”语法来获取国家和州,但似乎Oracle不支持这种语法。
这是错误信息:
当我尝试这样做时,由于存在两个状态,我会收到“多项”错误提示:
这是错误信息:
这是一个查询,可以让我获得所需的输出结果:
create table xmltemp (mydoc xmltype)
这是一个小的 XML 文档:
insert into xmltemp values (
xmltype
('<?xml version="1.0"?>
<countries>
<country>
<name>Canada</name>
</country>
<country>
<name>US</name>
<states>
<state>
<name>Washington</name>
<name>Oregon</name>
</state>
</states>
</country>
</countries>
')
)
请注意,加拿大没有“州”元素,但美国有。 我正在尝试获取这些查询结果(顺序和格式不重要):
Canada,
US,Washington
US,Oregon
当我执行此操作时,结果中会同时出现加拿大和美国。
select
countryname
from xmltemp,
xmltable('/countries/country' passing mydoc
columns countryname varchar2(10) path 'name')
当我这样做时,我得到了两个状态:
select
statename
from xmltemp,
xmltable('/countries/country/states/state/name' passing mydoc
columns statename varchar2(20) path '.') c
我尝试使用“..”语法来获取国家和州,但似乎Oracle不支持这种语法。
select
statename
from xmltemp,
xmltable('/countries/country/states/state/name' passing mydoc
columns statename varchar2(20) path '.',
countryname varchar2(20) path '../../../name') c
这是错误信息:
ORA-19110: unsupported XQuery expression
当我尝试这样做时,由于存在两个状态,我会收到“多项”错误提示:
select
countryname,
statename
from xmltemp,
xmltable('/countries/country' passing mydoc
columns countryname varchar2(10) path 'name',
statename varchar2(20) path 'states/state/name') c
这是错误信息:
ORA-19279: XPTY0004 - XQuery dynamic type mismatch: expected singleton
sequence - got multi-item sequence
这是一个查询,可以让我获得所需的输出结果:
Canada,
US,Washington
US,Oregon
谢谢