xQuery 数组[*]?
xQuery Array[*]?
SELECT
XMLQUERY ('$x/test/xml[1]/data(@type)' PASSING XMLCOLUMN as "x") type,
XMLQUERY ('$x/test/xml[1]/text()' PASSING XMLCOLUMN as "x") text
FROM
XML
我想 select 父节点的所有子节点。我在想这样的事情:
SELECT
XMLQUERY ('$x/test/xml[*]/data(@type)' PASSING XMLCOLUMN as "x") type,
XMLQUERY ('$x/test/xml[*]/text()' PASSING XMLCOLUMN as "x") text
FROM
XML
编辑:
xml:
<test>
<xml type = 1>a</xml>
<xml type = 2>b</xml>
<xml type = 3>c</xml>
<xml type = 4>d</xml>
<xml type = 5>e</xml>
...
</test>
预期结果:
type | text
-----|-----
1 | a
2 | b
3 | c
4 | d
...
尝试基于 XMLTABLE 的如下操作:
select t.* from x,
xmltable('$X/test/xml'
columns "type" int path 'data(@type)',
"text" varchar(10) path 'text()') as t
它应该 return 具有所需值和结构的 table。
SELECT
XMLQUERY ('$x/test/xml[1]/data(@type)' PASSING XMLCOLUMN as "x") type,
XMLQUERY ('$x/test/xml[1]/text()' PASSING XMLCOLUMN as "x") text
FROM
XML
我想 select 父节点的所有子节点。我在想这样的事情:
SELECT
XMLQUERY ('$x/test/xml[*]/data(@type)' PASSING XMLCOLUMN as "x") type,
XMLQUERY ('$x/test/xml[*]/text()' PASSING XMLCOLUMN as "x") text
FROM
XML
编辑: xml:
<test>
<xml type = 1>a</xml>
<xml type = 2>b</xml>
<xml type = 3>c</xml>
<xml type = 4>d</xml>
<xml type = 5>e</xml>
...
</test>
预期结果:
type | text
-----|-----
1 | a
2 | b
3 | c
4 | d
...
尝试基于 XMLTABLE 的如下操作:
select t.* from x,
xmltable('$X/test/xml'
columns "type" int path 'data(@type)',
"text" varchar(10) path 'text()') as t
它应该 return 具有所需值和结构的 table。