文档解释
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无缝地从二维变换为三维。