未能成功执行ODCIINDEXCREATE例程. - 甲骨文空间索引



我有两个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开发人员3.2.20中的以下错误:

命令340的错误:

创建索引Persons_spatial_idx

在人(p_shape)

indexType是mdsys.spatial_index

命令行的错误:340列:14

错误报告: SQL错误:ORA-00955:现有对象已经使用了名称00955. 00000-"名称已经由现有对象使用"

原因:
动作:

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

从第340行开始的错误:

创建索引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:在" mdsys.sdo_index_method_10i",第10行

  1. 00000-"在执行ODCIINDEXCREATE例程中发生错误"

*原因:未能成功执行odciindexcreate例程。

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

感谢您的阅读。

该消息说具有名称PERSONS_SPATIAL_IDX的对象已经存在。您可以使用以下查询查找现有索引:

select *
from all_indexes
where index_name = 'PERSONS_SPATIAL_IDX'

最新更新