无法成功执行ODCIIndexCreate例程。 - Oracle Spatial Indexing

时间:2016-12-13 12:29:13

标签: oracle indexing spatial

我有两个oracle空间表,即restaurantspersons。这两个表的结构是:

CREATE TABLE restaurants(
 id NUMBER PRIMARY KEY,
 name VARCHAR2(32),
 shape SDO_GEOMETRY
);

CREATE TABLE persons(
 p_id NUMBER PRIMARY KEY,
 p_name VARCHAR2(32),
 p_shape SDO_GEOMETRY
);

然后,在填充每个表之后,我想为每个表创建空间索引。 restaurants表的以下指令已成功执行。

CREATE INDEX restaurants_spatial_idx
ON restaurants(shape)
INDEXTYPE IS mdsys.spatial_index;

但是,当我为persons表写道时:

CREATE INDEX persons_spatial_idx
ON persons(p_shape)
INDEXTYPE IS mdsys.spatial_index;

这给了我在sql developer 3.2.20中的以下错误:

从命令行340开始出错:

CREATE INDEX persons_spatial_idx

ON人(p_shape)

INDEXTYPE是mdsys.spatial_index

命令行错误:340列:14

错误报告: SQL错误:ORA-00955:现有对象已使用名称 00955. 00000 - “名称已被现有对象使用”

原因:
动作:

由于这是说我已经和索引名为persons_spatial_idx,我使用以下命令删除了这个索引:DROP INDEX persons_spatial_idx;然后当我再次尝试创建索引时,它产生了以下错误:

从命令行的第340行开始出错:

CREATE INDEX persons_spatial_idx     人(p_shape)     INDEXTYPE是mdsys.spatial_index

命令行出错:340列:14

错误报告:

SQL错误:ORA-29855:执行ODCIINDEXCREATE例程时发生错误

ORA-13249:空间索引中的内部错误:[mdidxrbd]

ORA-13249:空间索引出错:索引构建失败

ORA-13249:空间索引出错:[mdrcrtxfergm]

ORA-13249:空间索引出错:[mdpridxtxfergm]

ORA-13200:空间索引中的内部错误[ROWID:AAAFGnAABAAALHpAAA]。

ORA-13206:创建空间索引时的内部错误[]

ORA-13365:图层SRID与几何SRID

不匹配

ORA-06512:at“MDSYS.SDO_INDEX_METHOD_10I”,第10行

  1. 00000 - “执行ODCIINDEXCREATE例程时出错”
  2. *原因:无法成功执行ODCIIndexCreate例程。

    *操作:检查例程是否已正确编码。

    感谢阅读。

1 个答案:

答案 0 :(得分:0)

该消息表明名称为PERSONS_SPATIAL_IDX的对象已存在。 您可以使用以下查询来查找现有索引:

select *
from all_indexes
where index_name = 'PERSONS_SPATIAL_IDX'