首页 > 代码库 > 关于执行ST_Geometry的st_centroid函数时报ORA-28579错误的问题

关于执行ST_Geometry的st_centroid函数时报ORA-28579错误的问题

环境

SDE版本:10./10.2/10.2.1/10.2.2

Oracle版本:11g R2 11.2.0.1

Windows版本:Windows Server 2008 R2

问题描述及原因

以全球的边界数据为样例数据,执行语句:

select sde.st_astext(sde.st_centroid(shape)) from sde.world;

报网络错误,错误编码ORA-28579

 技术分享

由于该错误编码在之前也遇到过,但执行的是st_astext函数,如下图所示:

 技术分享

经测试发现st_astext函数可以正常运行,没有错误。另外,执行常用的测试语句

select st_point(0,0,0) from dual;

也正常运行。

在解决的过程中,参考了support网站上的关于错误编码ORA-28579的解释,链接如下:

http://support.esri.com/en/knowledgebase/techarticles/detail/38823

当时涉及的版本是SDE 9.3.110,指出该问题是Oracle 的一个bug。由于该类问题在其他环境下所执行不同的函数时都会报此错误,初步判断是由于不稳定造成,应该是Oracle的一个Bug

解决方法

从优先选择解决问题的角度出发,以Oracle 11g r2 11.2.0.3版本为蓝本进行测试。在更换了底层数据库后,执行st_pointst_centroidst_astext等函数都可以正常运行。

所以建议使用11.2.0.3及以上版本即可解决该问题。

关于执行ST_Geometry的st_centroid函数时报ORA-28579错误的问题