ORA-20085:不同的SRID

时间:2015-03-25 09:56:42

标签: database oracle spatial arcgis spatial-index

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

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

 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条目。并更改设置为srid的所有表和空间索引6.任何人都可以帮助我吗?

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

谢谢。

1 个答案:

答案 0 :(得分: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创建空间索引

必须对每个表进行此操作(当然,第一步必须只执行一次)。