原因:
当SDE用户或者ST_GEOMETRY属性类型被删除,相关表包含ST_GEOMETRY属性表和ST_SPATIAL_INDEX被标记为无效。 相关表的无效是因为相关的ST_GEOMETRY类型不再存在 Oracle可以防止删除被引用域索引的属性,如果删除被引用的域索引,则引发Oracle错误,如下示例所示: SQL> ALTER TABLE sewers DROP (shape);
ALTER TABLE sewers DROP (shape)
*
ERROR at line 1:
ORA-29884: domain index is defined on the column to be dropped
当ST_GEOMETRY类型或者SDE用户被删除后,删除相关表的属性和继续执行DROP操作请求,Oracle会忽略相关的错误信息。
1 个回复
易智瑞技术支持
赞同来自:
如果 SDE 用户被删除之前,删除所有相关表具有 st_geometry 属性和空间索引,表被标记为无效,并变得不可用。 例如如果SYS或者SYSTEM用户删除了SDE用户,然后查询或者浏览包含ST_GEOMETRY属性表和空间索引的,Oracle会引发ORA-24372错误。 下面的例子就是在SDE用户被删除以后,利用SQL*Plus 浏览某个表引发ORA-24372错误 SQL> DESCRIBE sewers
ERROR:
ORA-24372: invalid object for describe
如果包含 st_geometry 属性表并没有空间索引,Oracle会直接删除属性(导致数据丢失)
原因:
当SDE用户或者ST_GEOMETRY属性类型被删除,相关表包含ST_GEOMETRY属性表和ST_SPATIAL_INDEX被标记为无效。 相关表的无效是因为相关的ST_GEOMETRY类型不再存在 Oracle可以防止删除被引用域索引的属性,如果删除被引用的域索引,则引发Oracle错误,如下示例所示: SQL> ALTER TABLE sewers DROP (shape);
ALTER TABLE sewers DROP (shape)
*
ERROR at line 1:
ORA-29884: domain index is defined on the column to be dropped
当ST_GEOMETRY类型或者SDE用户被删除后,删除相关表的属性和继续执行DROP操作请求,Oracle会忽略相关的错误信息。
解决方法: 解决方法是从备份中还原 SDE 用户或从 Oracle 实例中删除受影响的用户。
不能删除受影响的无效表。
创建时间:2008-02-25
最近更新: 2009-10-08
【原文链接】
http://support.esrichina.com.cn/2008/0225/726.html
要回复问题请先登录或注册