Oracle CREATE空间INDEX因“太多值”而失败

时间:2017-07-18 13:22:37

标签: oracle indexing spatial

尝试在任何SDO_GEOMETRY列上创建空间索引(尝试从多个用户(包括SYS))时,Oracle会失败并显示以下语句:

Error at line 1
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-00913: too many values
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 10

数据库已经过时了,并且过去创建了空间索引(已经存在可用的空间索引)。创建我们使用的索引的示例:

CREATE TABLE TEST_SPATIAL_INDEX (FID NUMBER, GEOM SDO_GEOMETRY); 

INSERT INTO USER_SDO_GEOM_METADATA 
VALUES ( 'TEST_SPATIAL_INDEX', 'GEOM',
MDSYS.SDO_DIM_ARRAY(
MDSYS.SDO_DIM_ELEMENT('X', 601000, 619000, 0.1),
MDSYS.SDO_DIM_ELEMENT('Y', 6116000, 6142000, 0.1),
MDSYS.SDO_DIM_ELEMENT('Z', -200, 200, 0.1)),
NULL);
COMMIT;

create index TEST_SPATIAL_INDEX_1 on TEST_SPATIAL_INDEX(GEOM) indextype is mdsys.spatial_index;

运行声明:

select * from registry$history;

返回:

25-02-2015 11:54:06.449000                        
APPLY SERVER                        
11.2.0.3 0
Patchset 11.2.0.2.0                                                             
PSU

我们在一台服务器下有两个实例(SID)(两者都是相同的ORACLE HOME),另一个是有效的。我们在NLS参数或Oracle版本等中找不到任何可见的差异,这些差异会将它们区分开来。什么想法可能是错的?

1 个答案:

答案 0 :(得分:1)

它可能由第三方备份软件 - “IBM Tivoli Storage Manager for Databases”引起。有在线备份数据库处于无效状态后的版本。 但是,重新启动后,可以创建oracle服务索引,直到备份再次中断它。