ORA-20085: 不同的 SRID

ORA-20085: Different SRID's

这是我的案例。我有 2 个地理数据库。第二个是稍后创建的。我使用 ArcCatolog 将 geodatabase-1 中的所有 table 导入到 geodatabase-2。我将 srid 6 用于我的地理数据库 1 及其标准。但在地理数据库 2 中,tables 和索引是使用不同的 srid 导入的。我必须将所有几何列和空间索引的 srid 更改为 6。

首先,我检查了 ST_spatial_references table 的 srid 6,但没找到。地理数据库 1 中存在与 srid 6 内容相同的 srid 30002。 然后我在 ST_Spatial_references table 中手动为 srid 6 创建一个条目。之后我尝试使用以下查询创建空间索引。

 CREATE INDEX SDE.INDEX_NAME ON SDE.TABLE_NAME (SHAPE)
 INDEXTYPE IS SDE.ST_SPATIAL_INDEX
 PARAMETERS('st_grids=1:0:0 st_srid=6')
 NOPARALLEL;

并得到这个错误。 ORA-20085: 不同的 SRID '6' 不匹配。

我需要正确创建 ID 为 6 的 srid 条目。并将所有 tables 和空间索引设置为 srid 6。有人能帮我吗?

注意:srid 30002 和 6 在 ST_SPATIAL_REFERENCES table 中的内容完全相同,除了 id 列。

谢谢。

您看到该错误的原因是 table 的 SRID(在 ST_GEOMETRY_COLUMNS table 中定义)与包含的几何图形之一不匹配在其中(在每个记录的几何字段中定义)。

如果您确实需要更改 table 的 SRID(即使您不应该乱用 SRID,因为它们由 SDE 内部管理),请按照以下步骤操作:

  • 使用 SRID=6
  • 在 ST_SPATIAL_REFERENCE table 中创建条目
  • 使用 ArcCatalog 删除 table 上的任何现有空间索引。如果它不起作用,请尝试重新创建它,然后将其删除。
  • 使用以下 SQL 命令更新 table 中包含的几何图形:

    更新 b 集 b.shape.srid = 6

  • 更新ST_GEOMETRY_COLUMNS中table的SRID为6 table

  • 使用 ArcCatalog 创建空间索引

每个 table 都必须执行此操作(当然第一步除外,它只需执行一次)。