问题描述

公司这边用了Oracle Spatial来存储GIS数据信息,今天在某表上创建空间索引时报了下面的错:

此处举例说明:

假如有表TEST,其中有一列SHAPE存储维度信息。

CREATE INDEX IDX_TEST_SHAPE ON TEST(SHAPE) INDEXTYPE IS MDSYS.SPATIAL_INDEX;

在百度根本找不到相关解决方案,后来FQ到谷歌上查了几圈发现都不是很匹配,最后在Oracle官方社区找到了解决方案:

https://community.oracle.com/thread/2435630

原因分析

就是说该表中存储的维度信息有部分是非法的,导致域索引无法创建成功。

解决问题

办法就是利用Oracle的SDO_GEOM包中的VALIDATE_LAYER_WITH_CONTEXT方法来找出异常数据并删除,然后重建域索引就好了!

SDO_GEOM包相关参考:

http://docs.oracle.com/cd/E11882_01/appdev.112/e11830/sdo_objgeom.htm#BGHIAAIF

具体操作步骤SQL:

--1.创建测试表,用于存储分析结果数据
CREATE TABLE val_results (sdo_rowid ROWID, result varchar2(1000));
--2.执行分析过程
CALL SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT('TEST','SHAPE','VAL_RESULTS');
--3.找出异常数据
SQL> SELECT * from val_results where length(result) < 10; SDO_ROWID
------------------
RESULT
------------------------
AAABXNAABAAAK+YAAC 13011 (这一列就是异常代码,前面拼上ORA-百度一下就能查出具体异常描述) ---此处我查出:
ORA-13011: value is out of range..
Cause: A specified dimension value is outside the range
defined for that dimension. Action: Make sure that all values to be encoded are within
the defined dimension range. --意思就是这条数据中存储的维度值超出了范围 --4.删除前面创建失败的索引(虽然创建时候报错了,但字典里已经有了该索引信息只不过是FAILED状态不可用)
drop index idx_test_shape force; --5.删除这条数据
delete from test where rowid='AAABXNAABAAAK+YAAC';
commit; --6.再次创建索引
CREATE INDEX IDX_TEST_SHAPE ON TEST(SHAPE) INDEXTYPE IS MDSYS.SPATIAL_INDEX;

特此奉上,希望大家碰到了少走弯路!不谢!

解决Oracle创建空间索引报错ORA-29855,ORA-13249,ORA-29400,ORA-01426的更多相关文章

  1. Oracle创建dblink报错:ORA-01017、ORA-02063解决

    Oracle环境:oracle 10.2.0.1 创建的 public dblink 连接oracle 11.2.0.3 ORA-01017: invalid username/password; l ...

  2. Mysql备份迁移——MySqlBackup(.net)——(无法解决视图嵌视图报错)

    这里是利用MySqlBackup,可以再nuget中下载. 无法解决视图嵌视图报错的问题,只导表跟数据比较合适,如果有视图嵌视图,请参照Mysql备份迁移——Mysqldump(.NET调用Mysql ...

  3. [转]ORACLE 11G 导出报错(EXP-00003)未找到段 (0,0) 的存储定义

    http://blog.csdn.net/qq_19524879/article/details/51313205 ORACLE 11G 导出报错(EXP-00003)未找到段 (0,0) 的存储定义 ...

  4. Oracle Online Patching报错"This is not a RAC setup. OPatch cannot determine the local node name"

    Oracle Online Patching报错"This is not a RAC setup. OPatch cannot determine the local node name&q ...

  5. 解决vue安装less报错Failed to compile with 1 errors的问题

    1.创建vue项目后安装less,执行 npm install less less-loader --save-dev 下载版本为:less-loader@6.1.0 , less@3.11.3,重启 ...

  6. 解决eclipse spring配置报错:cvc-elt.1: Cannot find the declaration of element

    解决eclipse spring配置报错:cvc-elt.1: Cannot find the declaration of element 'beans'.Referenced file conta ...

  7. 解决一个报表EdmFunction报错问题

        最近测试组提了一个bug,说是某个报表点击查询报错,查看错误log,错误信息如下. 类型"Ticket.Data.SqlFuns"上指定的方法"Boolean C ...

  8. 安装Oracle 11gR2,报错:[INS-06101] IP address of localhost could not be determined

    安装Oracle 11gR2,报错:[INS-06101] IP address of localhost could not be determined 出现这种错误是因为主机名和/etc/host ...

  9. 解决cookies存储中文报错问题

    URLEncoder.encode("username", "UTF-8"); URLDecoder.decode("123", " ...

  10. 解决element-ui upload组件报错 Avoid using non-primitive value as key, use string/number value instead

    到底是啥错呢,就是要求你的key必须是string或者number类型 那么解决就是找到这个报错的key(在node_modules/element-ui/lib/element-ui.common. ...

随机推荐

  1. 【ES系列】(一)简介与安装

    首发博客地址 首发博客地址 系列文章地址 教学视频 为什么要学习 ES? 强大的全文搜索和检索功能:Elasticsearch 是一个开源的分布式搜索和分析引擎,使用倒排索引和分布式计算等技术,提供了 ...

  2. [转帖]MySQL Connect/J 8.0时区陷阱

    https://juejin.cn/post/6844904023015817224   最近公司正在升级Spring Boot版本(从1.5升级到2.1),其间踩到一个非常隐晦的MySQL时区陷阱, ...

  3. [转帖]新一代垃圾回收器ZGC的探索与实践

    1. 引入 1.1 GC之痛 很多低延迟高可用Java服务的系统可用性经常受GC停顿的困扰. GC停顿指垃圾回收期间STW(Stop The World),当STW时,所有应用线程停止活动,等待GC停 ...

  4. [转帖]/etc/profile 和 /etc/profile.d/ 的区别

    https://my.oschina.net/calmsnow/blog/2989570   /etc/profile 是文件, /etc/profile.d/ 是目录,用在设置环境变量方面,/etc ...

  5. 给python脚本传递命令行参数

    记录一下给python脚本传参数的几种方式 最简单的方式 在cmd/bat脚本中调用python脚本传递参数 #传递参数 python test.py arg1 arg2 arg3 #在python中 ...

  6. TienChin 活动管理-修改活动接口

    前端 activity.js 直接替换现有的,最求速度了,后面在详细一个个记录,不在过多解释了. import request from '@/utils/request' /** * 查询活动列表 ...

  7. 深度学习应用篇-计算机视觉-语义分割综述[6]:DeepLab系列简介、DeepLabV3深入解读创新点、训练策略、主要贡献

    深度学习应用篇-计算机视觉-语义分割综述[6]:DeepLab系列简介.DeepLabV3深入解读创新点.训练策略.主要贡献 0.DeepLabV3深入解读 1.DeepLab系列简介 1.1.Dee ...

  8. 6.4 Windows驱动开发:内核枚举DpcTimer定时器

    在操作系统内核中,DPC(Deferred Procedure Call)是一种延迟执行的过程调用机制,用于在中断服务例程(ISR)的上下文之外执行一些工作.DPC定时器是基于DPC机制的一种定时执行 ...

  9. Python PyWin32 模块

    Python的生产效率极高,通过使用pypiwin32模块可以快速调用windows API函数,结合Python的高效开发能力,同等时间内比C++能更快的达到目标,pypiwin32模块封装了Win ...

  10. iOS测试包的安装方法

    iOS测试包根据要安装的机器类型可以分为2种: .app模拟器测试包 .ipa真机测试包 .app模拟器测试包的安装方式 方式一:Xcode生成安装包 1.Xcode运行项目,生成app包 2.将AP ...