【发布时间】:2021-01-31 04:13:27
【问题描述】:
我正在使用 Oracle 11 g,我需要知道一个特定点是否位于具有空间索引的表中另一个点的缓冲区内,我正在使用以下句子:
'''SELECT A.fieldX 从表 A 在哪里 SDO_OVERLAPBDYDISJOINT(sdo_geom.sdo_buffer(A.geometry,2,0.1),SDO_GEOMETRY(2001,NULL ,SDO_POINT_TYPE(497644.6,2432725.8,NULL),NULL,NULL)) = 'TRUE';'''
我得到以下错误:
13226。 00000 - “没有空间索引不支持接口” 原因:几何表没有空间索引。 行动:验证空间运算符中引用的几何表 上面有空间索引。
运算符 SDO_OVERLAPBDYDISJOINT 仅使用具有空间索引的表中的几何图形,我知道此错误是由缓冲区运算符引起的,但如果我颠倒顺序并将 SDO_POINT_TYPE 放在首位,我会遇到同样的错误。有没有办法在没有空间索引的情况下使用这个运算符或其他类似的运算符? 我不想使用 pl sql 因为我需要在 VBA 代码中使用该句子。 非常感谢!!!
【问题讨论】:
标签: vba oracle-spatial