select a.test
from demotable b
,XMLTable('//test' passing xmltype(b.xmlTagColumn) columns test varchar(10) path '.') a
b.xmlTagColumn包含xml内容。 如果b.xmlTagColumn具有<test></test>
那么我没有从上面的任何声明甚至没有空。如何获得空标签的空值或虚拟值?如何使用Oracle在表中获取XML空标记的虚拟值?
select a.test
from demotable b
,XMLTable('//test' passing xmltype(b.xmlTagColumn) columns test varchar(10) path '.') a
b.xmlTagColumn包含xml内容。 如果b.xmlTagColumn具有<test></test>
那么我没有从上面的任何声明甚至没有空。如何获得空标签的空值或虚拟值?如何使用Oracle在表中获取XML空标记的虚拟值?
left join ... on 1=1
select a.test
from demotable b
left join XMLTable
(
'//test'
passing xmltype(b.xmlTagColumn)
columns
test varchar(10) path '.'
) a
on 1=1
;
演示
create table demotable (id int,xmlTagColumn varchar2(100));
insert into demotable (id,xmlTagColumn) values (1,'<X><test>123</test></X>');
insert into demotable (id,xmlTagColumn) values (2,'<Y><test>456</test></Y>');
insert into demotable (id,xmlTagColumn) values (3,'<Z><prod>123</prod></Z>');
select b.id
,a.test
from demotable b
left join XMLTable
(
'//test'
passing xmltype(b.xmlTagColumn)
columns
test varchar(10) path '.'
) a
on 1=1
;
+----+--------+
| ID | TEST |
+----+--------+
| 1 | 123 |
+----+--------+
| 2 | 456 |
+----+--------+
| 3 | (null) |
+----+--------+
添加一个标签,通过http://rextester.com/IJCW99069试图理解这一点,但在调用'XMLTYPE时获取ORA-06553:PLS-306:错误的参数或数量类型' –
我会在几分钟内添加一个小演示 –
@Used_By_Already,演示已准备就绪 –
请为数据库+版本 –