最近在做根据空间范围查询时ORA-13226
。
于是对表创建图形索引
Create index T_INDEX on t_tx_test(shape) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
image.png
网上百度解决,这里顺便纪录一下。
原因
空间表中有不规范的坐标信息造成的。
解决办法
删除不规范的数据
--1.创建测试表,用于存储分析结果数据
CREATE TABLE val_results (sdo_rowid ROWID, result varchar2(1000));
--2.执行分析过程
CALL SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT('T_TX_TEST','SHAPE','val_results');
--3.找出异常数据
SELECT * from val_results where length(result) < 10;
image.png
SELECT * from t_tx_TEST where rowid in (
'AAAaBUAAyAAAz3HAAf',
'AAAaBUAAyAAAz/SAAE'
)
image.png
删除不规范数据
DELETE from t_tx_TEST where rowid in (
'AAAaBUAAyAAAz3HAAf',
'AAAaBUAAyAAAz/SAAE'
)
重新创建索引
Create index T_TX_test_INDEX on t_tx_test(shape) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
引用:
网友评论