如何计算表中所有Oracle变量的元素数量?
发布时间:2021-02-23 13:09:45 所属栏目:站长百科 来源:网络整理
导读:我有这样一张桌子: 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 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |