oracle sde layers,清除sde空间垃圾数据
时间: 2023-06-20 19:05:23 浏览: 62
在 Oracle SDE 中,可以使用以下步骤来清除空间垃圾数据:
1. 通过 SQL 语句查找空间垃圾数据:
```sql
SELECT SDE.ST_DOMAIN(1), COUNT(*)
FROM SDE.GDB_ITEMS_VW G, SDE.LAYERS L
WHERE G.UUID = L.UUID AND G.TYPE = 'Feature Layer'
AND L.REGISTERED_WITH_GDB = 1
AND SDE.ST_NPoints(L.SHAPE) = 0
AND SDE.ST_GeometryType(L.SHAPE) = 'ST_POLYGON'
GROUP BY SDE.ST_DOMAIN(1)
```
这个 SQL 查询将列出所有属于“Feature Layer”类型的 SDE 图层,其 SHAPE 字段为空且几何类型为多边形的记录数。
2. 如果你确认这些记录是不需要的,则可以使用以下 SQL 语句删除它们:
```sql
DELETE FROM [schema_name].[table_name] WHERE SDE.ST_NPoints(SHAPE) = 0 AND SDE.ST_GeometryType(SHAPE) = 'ST_POLYGON'
```
其中 [schema_name] 和 [table_name] 分别是包含空间垃圾数据的图层所在的架构和表名。
请注意,在删除数据之前,请务必备份数据库。此外,如果你不确定这些记录是否是空间垃圾数据,请先进行测试,以免不必要的数据丢失。
希望这些步骤能够帮助你清除 Oracle SDE 中的空间垃圾数据。