【发布时间】:2015-11-02 07:42:30
【问题描述】:
在 Oracle DB 上,我有一个包含 SDO_GEOMETRY 对象的表。我想在数据库中查询那些边数少于 x 的多边形。从理论上讲,使用类似的查询会很容易
SELECT * FROM myTable t WHERE LENGTH(t.geometry.sdo_ordinates) < x
显然 LENGTH 函数是为 char 和
t.geometry.sdo_ordinates 是 oracle.sql.ARRAY 所以这不起作用。不应该有一种简单的方法来选择 Oracle 中的长度或数组吗?不知何故,我无法正确使用语法。
PS:我用下面的查询解决了我的搜索,仍然是原来的问题,不是有数组大小/长度函数吗?
SELECT * FROM myTable t WHERE LENGTH(t.geomety.Get_WKT()) < (x * c)
【问题讨论】:
-
你试过用:
t.geometry.sdo_ordinates.COUNT? -
是的,我实际上尝试过
t.geometry.sdo_ordinates.COUNT,但它不起作用。