oracle数据库无法显示图层,ArcMap 无法在Oracle中创建图层案例

最近同事在客户的现场使用ArcMap无法创建图层的问题,简单记录一下处理过程。

软件版本环境是:

ArcGIS Desktop 10.2.1

Oracle 11.2.0.4

由于保密原因,无法提供错误截图,只能提供错误代码。

错误代码为ora-29881

[oracle@bigdataserver ~]$ oerr ora 29881

29881, 00000, "failed to validate indextype"

// *Cause: Indextype cannot be compiled.

// *Action : Try to compile the indextype which is referenced by

// the domain index.

是indextype出的问题,因此首先想到是创建图层后要创建空间索引,空间索引为域索引,其indextype为st_spatial_index.

建议先对其进行重新编译:

SQL> alter indextype st_spatial_index compile;

Indextype altered.

正常重新编译后,同事反馈问题依然存在。

因此问题不在这个indextype身上,应该是别的indextype有问题,建议同事查询用户下的无效对象

SQL> select object_name,object_type from user_objects where status='INVALID';

同事反馈返回四条记录,分别是:

XMLDOCIX4_TX

XMLDOCIX3_TX

XMLDOCIX2_TX

XMLDOCIX1_TX

并且类型都是索引。

接着让同事使用alter index xmldocix1_ix rebuild;重建索引结果也报ora-29881。至此问题找到了,是这四个索引导致。

继续查看这四个索引的定义:

SQL> select dbms_metadata.get_ddl('INDEX','XMLDOCIX1_TX','SDE') from dual;

DBMS_METADATA.GET_DDL('INDEX','XMLDOCIX1_TX','SDE')

--------------------------------------------------------------------------------

CREATE INDEX "SDE"."XMLDOCIX1_TX" ON "SDE"."SDE_XML_DOC1" ("XML_DOC_VAL")

INDEXTYPE IS "CTXSYS"."CONTEXT"

SQL> select dbms_metadata.get_ddl('INDEX','XMLDOCIX2_TX','SDE') from dual;

DBMS_METADATA.GET_DDL('INDEX','XMLDOCIX2_TX','SDE')

--------------------------------------------------------------------------------

CREATE INDEX "SDE"."XMLDOCIX2_TX" ON "SDE"."SDE_XML_DOC2" ("XML_DOC_VAL")

INDEXTYPE IS "CTXSYS"."CONTEXT"

SQL> select dbms_metadata.get_ddl('INDEX','XMLDOCIX3_TX','SDE') from dual;

DBMS_METADATA.GET_DDL('INDEX','XMLDOCIX3_TX','SDE')

--------------------------------------------------------------------------------

CREATE INDEX "SDE"."XMLDOCIX3_TX" ON "SDE"."SDE_XML_DOC3" ("XML_DOC_VAL")

INDEXTYPE IS "CTXSYS"."CONTEXT"

SQL> select dbms_metadata.get_ddl('INDEX','XMLDOCIX4_TX','SDE') from dual;

DBMS_METADATA.GET_DDL('INDEX','XMLDOCIX4_TX','SDE')

--------------------------------------------------------------------------------

CREATE INDEX "SDE"."XMLDOCIX4_TX" ON "SDE"."SDE_XML_DOC4" ("XML_DOC_VAL")

INDEXTYPE IS "CTXSYS"."CONTEXT"

这四个索引果然也都是domain索引,是用来进行全文检索的索引。

继续让同事查看CONTEXT是否是正常的。

SQL> select status from all_objects where owner='CTXSYS' and object_type='INDEXTYPE' and object_name='CONTEXT'; STATUS -------

VALID

同事反馈的结果是VALID,那就是CONTEXT本身的问题,就是索引本身由于不明原因导致失效了。建议同事将这四个索引删除后重建。

删除后重建问题解决。

文章来源:http://blog.csdn.net/liufeng1980423/article/details/62881240

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值