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。