无法访问 Oracle Spatial Operators
Not able to access Oracle Spatial Operators
当我尝试使用 Oracle Spatial operators 时,它抛出
ORA-13226: interface not supported without a spatial index.
虽然使用 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 运算符会抛出上述错误。
select *
from test_sdo_geometry
where SDO_WITHIN_DISTANCE(SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(151.16567373275757, -33.9031022157086, null), null, null), SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(151.16567373275757, -33.9031022157086, null), null, null), 'distance=10 unit=M')='TRUE'
order by 1;
根据 Oracle 11g Documentation,如果 table 没有空间索引或者查询的维数 window 与维数不匹配,则运算符将被禁用创建索引时指定。
因此,必须完成两个步骤才能使用 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;
当我尝试使用 Oracle Spatial operators 时,它抛出
ORA-13226: interface not supported without a spatial index.
虽然使用 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 运算符会抛出上述错误。
select * from test_sdo_geometry where SDO_WITHIN_DISTANCE(SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(151.16567373275757, -33.9031022157086, null), null, null), SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(151.16567373275757, -33.9031022157086, null), null, null), 'distance=10 unit=M')='TRUE' order by 1;
根据 Oracle 11g Documentation,如果 table 没有空间索引或者查询的维数 window 与维数不匹配,则运算符将被禁用创建索引时指定。
因此,必须完成两个步骤才能使用 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;