【问题标题】:Oracle CREATE spatial INDEX fails with "too many values"Oracle CREATE 空间索引因“值太多”而失败
【发布时间】:2017-12-23 09:32:30
【问题描述】:

当尝试在任何 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 版本等方面找不到任何明显的差异,这会使它们与众不同。有什么想法可能是错的吗?

【问题讨论】:

    标签: oracle indexing spatial


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-12
      • 2015-12-18
      • 1970-01-01
      • 2017-09-16
      • 2019-03-11
      • 1970-01-01
      • 2017-07-10
      相关资源
      最近更新 更多