ORA-20085:不同的 SRID

问题描述 投票:0回答:1

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

首先我检查了 srid 6 的

ST_spatial_references
表,但找不到它。地理数据库 1 中存在与 srid 6 内容相同的 srid 30002。

然后我在

ST_Spatial_references
表中手动为 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 6。有人可以帮助我吗?

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

谢谢你。

database oracle spatial arcgis spatial-index
1个回答
2
投票

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

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

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

    更新 b SET b.shape.srid = 6

  • 将 ST_GEOMETRY_COLUMNS 表中表的 SRID 更新为 6

  • 使用 ArcCatalog 创建空间索引

必须对每个表执行此操作(当然第一步除外,该步骤只需执行一次)。

© www.soinside.com 2019 - 2024. All rights reserved.