验证折线图层时出现 13356 错误。我知道我可以用它SDO_UTIL.REMOVE_DUPLICATE_VERTICES
来解决这个问题,但我将如何编写这个折线层的语法?
+----------------------+----------------------------------------+
| SDO_ROWID | STATUS |
+----------------------+----------------------------------------+
| (null) | Rows Processed <4035> |
| AAA2EVAANAAB8ccAAJ | 13356 [Element <1>] [Coordinate <3>] |
| AAA2EVAANAAB8cvAAK | 13356 [Element <1>] [Coordinate <5>] |
| AAA2EVAANAAB8cwAAD | 13356 [Element <1>] [Coordinate <4>] |
| AAA2EVAANAAB8dBAAJ | 13356 [Element <1>] [Coordinate <1>] |
| AAA2EVAANAAB8dBAAO | 13356 [Element <1>] [Coordinate <4>] |
| AAA2EVAANAAB8d/AAP | 13356 [Element <1>] [Coordinate <3>] |
+----------------------+----------------------------------------+
我可以写一个如下的语法:
update my_geometries
set geometry = sdo_util.remove_duplicate_vertices(geometry)
where rowid in (
select sdo_rowid
from GEOM_VALID_COLLECTORS --table that was created to store results
where substr(status,1,5) = '13356'
);
然后再次迁移到当前的重新验证:
--migrate to current
EXECUTE SDO_MIGRATE.TO_CURRENT('OTTAWACOLLECTORS', 'GEOMETRY', 4035);
--validate layer
CREATE TABLE Geom_Valid_Collectors (SDO_ROWID ROWID, STATUS VARCHAR2(2000) ); --some error, go back because I did this with the buildings accidentally
EXECUTE MDSYS.SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT ('OTTAWACOLLECTORS', 'GEOMETRY', 'Geom_Valid_Collectors');
SELECT * FROM Geom_Valid_Collectors;