加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

如何计算表中所有Oracle变量的元素数量?

发布时间:2021-02-23 12:43:44 所属栏目:站长百科 来源:网络整理
导读:我有这样一张桌子: CREATE TABLE spatial_data ( id NUMBER PRIMARY KEY,geometry SDO_GEOMETRY); SDO_GEOMETRY有一个带有以下类型的字段sdo_ordinates: TYPE SDO_ORDINATE_ARRAY作为NUMBER的VARRAY(1048576) 我可以得到指定对象的点数: select count(*)f

我有这样一张桌子:

CREATE TABLE spatial_data (
  id NUMBER PRIMARY KEY,geometry SDO_GEOMETRY);

SDO_GEOMETRY有一个带有以下类型的字段sdo_ordinates:

TYPE SDO_ORDINATE_ARRAY作为NUMBER的VARRAY(1048576)

我可以得到指定对象的点数:

select count(*)
from table(
    select s.geometry.sdo_ordinates
    from spatial_data s
    where s.id = 12345
);

我如何计算几个物体?这是不可能的

where s.id in (1,2,3,4,5)

我真的很在乎性能.也许PL / SQL会是正确的选择?

解决方法

我认为你可以用一个查询来做到这一点:

select s.id,count(*)
  from spatial_data s,table(s.geometry.sdo_ordinates)
 group by s.id

或者你可以写一个plsql简单函数,它返回SDO_ORDINATE_ARRAY VARRAY的count属性:

create or replace function get_count(ar in SDO_ORDINATE_ARRAY) return number is
begin
   return ar.count;
end get_count;

甚至更好地将成员函数添加到返回count属性的SDO_GEOMETRY TYPE

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!