具有多节点 xpath 的 oracle xmltable 表达式是否保留节点的物理顺序?
Is oracle xmltable expression with multinode xpath preserve physical order of node?
当对 XML 类型有关系视图时。我可以保证元素的顺序保持您可以在 XML 文档中找到的物理顺序吗?
示例:
select *
from xmltable('root/level1' passing xmltype ('<root><level1><a>first</a></level1><level1><a>second</a></level1></root>')
columns col varchar2(2000) path '/a'
);
我可以保证它总是
- 第一
- 秒
背景信息:我们必须保留 "client defined" 订单。但是在 XML 文档中我们没有关于这个顺序的任何属性。我们必须依赖 xml 文档中提供的物理顺序。
如果顺序反映物理顺序,那么我可以使用 rownum 进行排序。
在我的本地测试中订单被保留,但我没有找到任何关于这个事实的文档。
您的查询可以重写为 FLWR 表达式。
select *
from xmltable('for $i in ./root/level1 return $i ' passing xmltype ('<root><level1><a>first</a></level1><level1><a>second</a></level1></root>')
columns col varchar2(2000) path '/a'
);
现在您可以查看 FLWR 的 w3c 规范。FLWR Expressions
...and the order of the results is preserved in the output document....
Oracle 说 xml db
Oracle XML DB supports the latest version of the XQuery language specification, W3C XQuery 1.0 Recommendation. This section presents a brief overview of the language. For more information, consult a recent book on the language or refer to the standards documents that define it, which are available at http://www.w3c.org.
当对 XML 类型有关系视图时。我可以保证元素的顺序保持您可以在 XML 文档中找到的物理顺序吗?
示例:
select *
from xmltable('root/level1' passing xmltype ('<root><level1><a>first</a></level1><level1><a>second</a></level1></root>')
columns col varchar2(2000) path '/a'
);
我可以保证它总是
- 第一
- 秒
背景信息:我们必须保留 "client defined" 订单。但是在 XML 文档中我们没有关于这个顺序的任何属性。我们必须依赖 xml 文档中提供的物理顺序。
如果顺序反映物理顺序,那么我可以使用 rownum 进行排序。
在我的本地测试中订单被保留,但我没有找到任何关于这个事实的文档。
您的查询可以重写为 FLWR 表达式。
select *
from xmltable('for $i in ./root/level1 return $i ' passing xmltype ('<root><level1><a>first</a></level1><level1><a>second</a></level1></root>')
columns col varchar2(2000) path '/a'
);
现在您可以查看 FLWR 的 w3c 规范。FLWR Expressions
...and the order of the results is preserved in the output document....
Oracle 说 xml db
Oracle XML DB supports the latest version of the XQuery language specification, W3C XQuery 1.0 Recommendation. This section presents a brief overview of the language. For more information, consult a recent book on the language or refer to the standards documents that define it, which are available at http://www.w3c.org.