ORACLE 操作空间字段 报ORA-29877/ORA-29875错误的处理

网友投稿 334 2022-11-04


ORACLE 操作空间字段 报ORA-29877/ORA-29875错误的处理

oracle里,对用arcgis创建的空间字段进行赋值,

update SDE.PE_BASE set SHAPE=sde.ST_PointFromText('point(118.25 103.21)',0) where objectid=203;

报错:

ORA-29877: 无法执行 ODCIINDEXUPDATE 例行程序ORA-20085: Insert Spatial Reference SRID 0 does not match SDE.PE_BASE.SHAPE registered Spatial Reference SRID 4326ORA-06512: 在 "SDE.ST_DOMAIN_METHODS", line 2014ORA-06512: 在 "SDE.ST_DOMAIN_METHODS", line 2386

从错误提示可以得知,这是坐标系不匹配问题。其实sde.ST_PointFromText是一个函数,第二个参数就是让我们指定坐标系的。我执行的那条SQL语句,给出的坐标点,采用的是常用的空间地理坐标系,编号为4326,大家一定不会陌生。因此,将SQL修改一下即可:

update SDE.PE_BASE set SHAPE=sde.ST_PointFromText('point(118.25 103.21)',4326) where objectid=203;

oracle并不天然支持空间数据库,需要引用第三方库。arcgis就提供了这样的库。看上去很神秘,但其实,sde.ST_PointFromText不就是一个函数嘛,是一个专门的函数而已。

有关坐标系的一些心得,可看拙作:​​​arcgis for jsapi开发:坐标系、经纬度与平面坐标的互换​​


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:黄历查询万年历API(黄历查询万年历查询2022年6月2日吉日,吉时,宜,忌)
下一篇:Spring整合SpringMVC + Mybatis基础框架的配置文件详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~