今天,由Oracle 9201升级到9204后出现以下问题
-- 创建一个空间表
create table test (id number primary key , sp_geom mdsys.sdo_geometry);
-- 创建索引
create index test_idx on test(sp_geom) indextype is mdsys.spatial_index ;
-- 出现以下错误
ORA - 29855 : Fehler bei Ausführung der Routine ODCIINDEXCREATE
ORA - 13249 : Error executing stmt: begin mdsys.prvt_idx.execute_insert( NULL ,
NULL , ' VALUES ( '' SYS '' , '' MDIDX_INIT '' , 0, 0, 64, -1, NLS_UPPER( '' MDRT_6EE9$ '' ),
'' TEST1_SP_IDX '' , 1, '' SYS '' , '' "SP" '' , 0, 0, 2, 0, '' DEFAULT '' , '' DEFAULT '' , NULL, '' INDX '' ,
NULL, NULL, NULL, NULL, 2147483645, 2, '' DEFAULT '' , 10, NULL, NULL, NULL, NULL, '' FALSE '' ,
'' VALID '' , NULL) ' , NULL );
end ;
-- 创建一个空间表
create table test (id number primary key , sp_geom mdsys.sdo_geometry);
-- 创建索引
create index test_idx on test(sp_geom) indextype is mdsys.spatial_index ;
-- 出现以下错误
ORA - 29855 : Fehler bei Ausführung der Routine ODCIINDEXCREATE
ORA - 13249 : Error executing stmt: begin mdsys.prvt_idx.execute_insert( NULL ,
NULL , ' VALUES ( '' SYS '' , '' MDIDX_INIT '' , 0, 0, 64, -1, NLS_UPPER( '' MDRT_6EE9$ '' ),
'' TEST1_SP_IDX '' , 1, '' SYS '' , '' "SP" '' , 0, 0, 2, 0, '' DEFAULT '' , '' DEFAULT '' , NULL, '' INDX '' ,
NULL, NULL, NULL, NULL, 2147483645, 2, '' DEFAULT '' , 10, NULL, NULL, NULL, NULL, '' FALSE '' ,
'' VALID '' , NULL) ' , NULL );
end ;
原因是由于:
升级数据库后spatial没有升级
需要执行以下操作,用sys登陆到oracle
@ORACLE_HOME
/
md
/
admin
/
c901u920.sql
@ORACLE_HOME / md / admin / sdopatch.sql
@ORACLE_HOME / md / admin / sdopatch.sql
以后就没有问题了
看下组件的版本
SELECT
comp_name, version, status
FROM
dba_registry;
COMP_NAME VERSION STATUS
Spatial 9.2 . 0.1 . 0 LOADING
COMP_NAME VERSION STATUS
Spatial 9.2 . 0.1 . 0 LOADING
Cannot create spatial index after installing 9.2.0.4.0 patch