首页 > 代码库 > ArcSDE10.2.2使用SQL操作ST_Geometry时报ORA-28579或ORA-20006错误

ArcSDE10.2.2使用SQL操作ST_Geometry时报ORA-28579或ORA-20006错误

ArcSDE10.2.2使用SQL操作ST_Geometry时报ORA-28579或ORA-20006错误

1、测试环境说明

ArcSDE版本:10.2.2

Oracle版本:12.1.0.1和11.2.0.1

Windows版本:Windows Server 2008 R2

测试数据:中国400W省界面数据

2、SQL操作ST_Geometry测试

测试语句非常简单,只是简单的查询图层中的几何坐标点信息,执行SQL语句如下:

select st_astext(shape) from china;

select st_astext(shape) from china where objected<4;

在两个不同版本的Oracle数据库上测试上述语句时,执行的错误分别如下:

其他测试结果如下:

select st_astext(shape) from china where objectid=1;

objected=1对应的是黑龙江省行政边界,执行第一次报ORA-28579,之后再执行正常。

select st_astext(shape) from china where objectid=33;

objected=33对应的是香港行政边界,执行正常。

3、原因分析

当查询数据中点坐标数太多时会报错,像查询黑龙江、全要素等。

4、替代方案

上述测试语句在ArcSDE10.2.1版本中未发现,可使用如下的两种替代方案解决报错的问题:

(1)将ST_Geometry部署的库文件替换成10.2.1版本,地理数据库仍然使用10.2.2版本。

(2)部署ArcSDE10.2.1版本地理数据库和对应版本ST_Geometry。

ArcSDE10.2.2使用SQL操作ST_Geometry时报ORA-28579或ORA-20006错误