ORA-54558: 3D SRID is not found for the corresponding 2D SRID ORACLE 报错 故障修复 远程处理


文档解释

ORA-54558: 3D SRID is not found for the corresponding 2D SRID

Cause: In extruding a 2D polygon into a 3D geometry, the SRID conversion function did not find an equivalent 3D SRID of the 2D SRID.

Action: Specify a 2D SRID that has a 3D equivalent

ORA-54558:3D SRID 未找到对应的2D SRID

错误说明

ORA-54558:3D SRID未找到对应的2D SRID错误是ORACLE数据库管理系统中的一种错误,它表明尝试查询三维原点坐标和空间参考系统(SRID)时,没有找到对应的二维SRID。此错误是在使用基于Oracle Spatial的功能时报告的,例如通过用于地理信息系统(GIS)空间分析和导航的多维建模和反演引擎(CUME)。当使用Oracle Spatial地理特征或其他地理信息时报告此错误。

常见案例

Oracle数据库管理系统常见的案例之一,会发生ORA-54558:3D SRID未找到对应的2D SRID错误,往往发生在没有正确配置事先定义好的空间参考系统(SRID)和系统原点坐标(SPC)之间的映射关系时。由于SRID在Oracle中是整数值,因此会有许多可能的2D和3D映射,所以如果没有确保SRID映射是正确的,就会发生此错误。此外,尝试检索具有不存在的SRID的空间分析功能也可能会报告此错误。

解决方法

要解决ORA-54558:3D SRID未找到对应的2D SRID错误,建议首先创建正确的2D SRID和3D SRID之间的映射关系。具体来说,可以使用定义SQL语句设置SRID和系统原点坐标之间的映射,语法如下:

ALTER SESSION SET MDSYS.SDO_GEOM_SYMBOL_CONFIG = 2D 3D ;

此外,可以通过定义SQL语句来确保存在正确的SRID:

SELECT SRID FROM MDSYS.GSR_SRRIC WHERE SRID = ;

此外,如果SRID的数据处于正确的格式,可以使用以下语句来删除SRID:

DELETE FROM MDSYS.GSR_SRRIC WHERE SRID = ;

最后,可以尝试使用Oracle扩展视图MDSYS.GSR_SRRIC(前提是SRID存在),该视图可以帮助管理Oracle Spatial相关数据库SRID,从而实现SRID无缝地从二维变换为三维。

总结

ORA-54558:3D SRID未找到对应的2D SRID错误表明尝试查询三维原点坐标和系统参考系统(SRID)时,没有找到对应的二维SRID。问题通常发生在没有正确配置事先定义好的SRID和SPC之间的映射关系或者尝试检索不存在的SRID的空间分析功能时。解决方法包括:确保事先定义好正确的2D和3D SRID之间的映射关系;确保SRID存在;并使用MDSYS.GSR_SRRIC扩展视图来协助管理Oracle Spatial相关数据库SRID,从而实现SRID无缝地从二维变换为三维。