记录:
Oracle空间函数范围查询查看官方文档得出以下这两种方式,测试中的到的结果是方式二得到的结果值比较接近实际值。具体原因是什么暂时没时间研究,清楚的同学可在评论中指教一下。
方式一:
SELECT * FROM TABLE_NAME T
WHERE SDO_ANYINTERACT(
T.GEOMETRY,
MDSYS.SDO_GEOMETRY(2003,4326, NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),
MDSYS.SDO_ORDINATE_ARRAY(#{minX}, #{minY}, #{maxX}, #{maxY})
)) = 'TRUE'
方式二:
SELECT * FROM TABLE_NAME T
WHERE SDO_FILTER(
T.GEOMETRY,
MDSYS.SDO_GEOMETRY(2003, 4326, null,
MDSYS.SDO_ELEM_INFO_ARRAY(1, 1003, 3),
MDSYS.SDO_ORDINATE_ARRAY(#{minX}, #{minY}, #{maxX}, #{maxY})
)) = 'TRUE';