【问题标题】:Not able to access Oracle Spatial Operators无法访问 Oracle Spatial Operators
【发布时间】:2016-09-28 05:01:20
【问题描述】:

当我尝试使用 Oracle Spatial operators 时,它会抛出

ORA-13226:没有空间索引的接口不支持。

虽然使用 SDO_GEOM 程序,但它工作正常。 例如

select *
from test_sdo_geometry
where SDO_GEOM.WITHIN_DISTANCE(sdo, 25, SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(151.16567373275757, -33.9031022157086, null), null, null), 0.05, 'unit=M')='TRUE'
order by 1;

但使用 Oracle 运算符会引发上述错误。

 选择 *
来自 test_sdo_geometry
其中sdo_within_distance(sdo_geometry(2001,8307,sdo_point_type(151.1656737321575757,null),null,null),sdo_geometry(2001,8307,sdo_point_type(151.16567327575757,-33.9031022157086,null),null,null),'距离= 10单位=M')='真'
按 1 排序; 

【问题讨论】:

    标签: oracle oracle11g geocoding


    【解决方案1】:

    根据Oracle 11g Documentation,如果表没有空间索引或查询窗口的维数与创建索引时指定的维数不匹配,则禁用该运算符。

    因此,要使用SDO_GEOM.WITHIN_DISTANCE,必须完成两个步骤:

    1/ 您必须更新名为 USER_SDO_GEOM_METADATA 的元数据视图。在创建空间索引之前,这是必需的。示例可以在Spatial Data Types and Metadata 页面上找到。

    2/ 您必须按照用于索引空间数据的 SQL 语句页面上提供的说明为“SDO”字段创建空间索引:

    CREATE INDEX TEST_SDO_GEOMETRY_IDX ON TEST_SDO_GEOMETRY (SDO)
    INDEXTYPE IS MDSYS.SPATIAL_INDEX;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-05
      • 1970-01-01
      • 2014-04-08
      • 2019-05-17
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 2015-03-17
      相关资源
      最近更新 更多