Oracle 12c。
我有QUERY和XML:
SELECT xt.*
from xmltable('/root/persons/person'
passing xmltype('<root xmlns="import">
<persons>
<person>
<id>John Doe</id>
</person>
<person>
<id>Donald Duck</id>
</person>
</persons>
</root>')
COLUMNS
id VARCHAR2(10) PATH 'id'
) xt
,它不起作用。 如果我删除xmlns =“ import”,那么一切正常。 我尝试添加:
xmltable('/root[@xmlns="import"]/persons/person'
,仍然无法正常工作。我做错什么了吗?
答案 0 :(得分:2)
由于提到了名称空间,请在xquery中添加名称空间声明。尝试下面的代码。Refer the link for more details希望对您有所帮助。
SELECT xt.*
from xmltable( xmlnamespaces(default 'import' ),
'//persons/person' passing xmltype('<root xmlns="import">
<persons>
<person>
<id>John Doe</id>
</person>
<person>
<id>Donald Duck</id>
</person>
</persons>
</root>')
COLUMNS
id VARCHAR2(100) PATH 'id'
) xt