sql - Oracle XMLTABLE,具有属性的根
问题描述
甲骨文 12c。
我有查询和 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'
仍然无法正常工作。难道我做错了什么?
解决方案
由于提到了命名空间,因此在您的 xquery 中添加命名空间声明。试试下面的代码。有关详细信息,请参阅链接希望它有所帮助。
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
推荐阅读
- android - 在 Android 中以编程方式使背景“透视”
- java - 如何使用 TestNg 记录测试历史?
- javascript - 如何在没有 instagram API 的情况下从 instagram 获取公共用户的所有帖子
- java - 如何以编程方式检查 RMI 类加载器是否已启用
- kubernetes - Kubernetes 消息消费者可扩展性
- javascript - Angular HttpInterceptor 不适用于 forkJoin
- html - 无法对齐弹性框中的元素
- vba - Excel - UsedRange 中的任何单元格更改值时的条件格式
- android - 在android中使用Visualizer类获取波形数据
- airflow - 在气流中使用 ExternalTaskSensor 时,有没有办法从外部 DAG 中的任务中获取结果?