尝试在任何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版本等中找不到任何可见的差异,这些差异会将它们区分开来。什么想法可能是错的?
答案 0 :(得分:1)
它可能由第三方备份软件 - “IBM Tivoli Storage Manager for Databases”引起。有在线备份数据库处于无效状态后的版本。 但是,重新启动后,可以创建oracle服务索引,直到备份再次中断它。