zoukankan      html  css  js  c++  java
  • ora29902和ora29903错误

    如题的错误一般都是源于空间索引或者是本身数据对象有误造成的。

    --ORA-29902: 执行 ODCIIndexStart() 例行程序中出错
    SELECT /*b.gwm_fid, b.gwm_fno, b.gwm_vno, a.gwm_tileid tileid, b.districtid*/COUNT(1)
      FROM gs_tile_p a, vi_building_p b
     WHERE b.gwm_vno = 26127
       AND b.deletetag = 0
       AND b.gwm_status = 0
       AND sdo_relate(a.gwm_geometry, b.gwm_geometry, 'MASK = ANYINTERACT') =
           'TRUE'

    导致这个问题的原因是:表中存在geometry对象为空的记录。

    如何查出这个问题:采用数据二分法,逐步缩小数据范围,最终定位到出问题的数据
     解决办法:删除geometry为空的记录。


    --ORA-29903: error in executing ODCIIndexFetch() routine
    SELECT b.gwm_fid, b.gwm_fno, b.gwm_vno, a.gwm_tileid tileid, b.districtid
      FROM gs_tile_p a, vf_fibresegment_l b
     WHERE b.gwm_vno = 25441
       AND b.deletetag = 0
       AND b.gwm_status = 0
       AND sdo_relate(a.gwm_geometry, b.gwm_geometry, 'MASK = ANYINTERACT') =
           'TRUE'
       AND   b.gwm_fid IN (52217527,52217529)
    这几条数据有问题,但是查不出是什么问题

    验证数据的有效性
     
    SELECT c.gwm_fid,
           c.name,
           sdo_geom.validate_geometry_with_context(c.gwm_geometry, 0.005)
      FROM vf_fibresegment_l c
     WHERE c.gwm_fid IN (52217527, 52217529);
    经分析,发现出现了13356 [Element <1>] [Coordinate <8>]这个错误,即ora-1356:有重复点值。

    如果想对整个图层一起验证,可用VALIDATE_LAYER_WITH_CONTEXT函数

    --删除重复点sdo_util.remove_duplicate_vertices
     UPDATE f_fibresegment_l t
        SET t.gwm_geometry =
            (SELECT sdo_util.remove_duplicate_vertices(a.gwm_geometry, 0.005)
               FROM f_fibresegment_l a
              WHERE a.gwm_fid IN (52217527, 52217529)
                AND a.gwm_fid = t.gwm_fid)
      WHERE t.gwm_fid IN (52217527, 52217529);

    再次验证都是有效的图形,但是仍然无法执行分析,问题依旧


    再次对对其中一条数据进行分析,发现出错的位置在哪段,然后再找了一条之前已经分析过的再次进行分析发现也是提示这个错误。恍然大悟,应该是用于分析的gs_tile_p 这个基表的索引出问题了。
    找到问题就好办了,对该表的空间索引进行重建
    alter index rebuild index_name online;
    重建后再次分析如上语句果然成功了。

    一直没有怀疑到gs_tile_p表空间索引有问题,是因为其他分析了很多数据都没问题,没想到空间索引还会部分有问题。

     
  • 相关阅读:
    November 07th, 2017 Week 45th Tuesday
    November 06th, 2017 Week 45th Monday
    November 05th, 2017 Week 45th Sunday
    November 04th, 2017 Week 44th Saturday
    November 03rd, 2017 Week 44th Friday
    Asp.net core 学习笔记 ( Area and Feature folder structure 文件结构 )
    图片方向 image orientation Exif
    Asp.net core 学习笔记 ( Router 路由 )
    Asp.net core 学习笔记 ( Configuration 配置 )
    qrcode render 二维码扫描读取
  • 原文地址:https://www.cnblogs.com/lanzi/p/2391895.html
Copyright © 2011-2022 走看看