【问题标题】:ORA-20085: Different SRID'sORA-20085: 不同的 SRID
【发布时间】:2015-03-25 09:56:42
【问题描述】:

这是我的情况。我有 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。有人可以帮帮我吗?

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

谢谢。

【问题讨论】:

    标签: database oracle spatial arcgis spatial-index


    【解决方案1】:

    您看到该错误的原因是表的 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 创建空间索引

    这必须为每个表完成(当然除了第一步,它只需要完成一次)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-29
      • 2021-05-20
      • 1970-01-01
      • 1970-01-01
      • 2014-03-23
      相关资源
      最近更新 更多