gpt4 book ai didi

sql - 获取 oracle.sql.array 的长度

转载 作者:行者123 更新时间:2023-12-04 21:05:43 29 4
gpt4 key购买 nike

在 Oracle 数据库上,我有一个包含 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)

最佳答案

不,没有简单的 sql 函数来计算数组的元素。

然而正如前面提到的 here ,另一个想法是PL/SQL脚本。

create or replace function get_count(ar in SDO_ORDINATE_ARRAY) return number is
begin
return ar.count;
end get_count;
t.geometry.sdo_ordinates.COUNT是 PL/SQL attribute可以在函数/过程中使用。因此,这是 不是普通 SQL 中可用的函数 .

属性:
value.someAttribute

功能:
doSomething(value)

说明:函数有返回值,过程没有。 Source

关于sql - 获取 oracle.sql.array 的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31918773/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com