OracleSpatial 处理超过1000个点的几何对象时,报错Ora-00939: 函数的参数过多解决方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了OracleSpatial 处理超过1000个点的几何对象时,报错Ora-00939: 函数的参数过多解决方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1768字,纯文字阅读大概需要3分钟。
内容图文
oracle空间字段mdsys.sdo_geometry存储多边形,报错ora-00939:to many arguments for function
sql语句
update d_area set
coordinate=mdsys.sdo_geometry(2003,8307,null,mdsys.sdo_elem_info_array(1,1003,1),
mdsys.sdo_ordinate_array(
119.65415,29.14556,119.64824,....))
where id=123;
坐标少时更新没有问题,如果坐标对多了就会报错ora-00939:to many arguments for function;
用什么方式替代解决呢?
据说这是一个SQL级别的限制,当SDO_ORDINATES数组中插入一个超过1000个坐标的SDO_GEOMETRY时,可能引发该错误。
可以通过创建一个保存该几何体的PL/SQL变量(在下面的代码中被称为geom)来避免这一错误,之后将该变量绑定到update SQL语句中:
CREATE OR REPLACE PROCEDURE p_test is
DECLARE geom mdsys.sdo_geometry; -- PL/SQL variable to store the geometry with >999 ordinates
BEGIN
-- construct the geometry here
geom := mdsys.sdo_geometry(2003,
8307,
null,
mdsys.sdo_elem_info_array(1, 1003, 1),
mdsys.sdo_ordinate_array(119.65415,
29.14556,
119.64824
--,....写全多个坐标值
));
-- update the geometry in the d_area table using dynamic SQL
EXECUTE IMMEDIATE ‘update d_area set
coordinate=:gm where id = 123‘
USING geom;
END;
OracleSpatial 处理超过1000个点的几何对象时,报错Ora-00939: 函数的参数过多解决方法
标签:替代 ble 更新 creat exe 错误 test 报错 语句
本文系统来源:https://www.cnblogs.com/mol1995/p/12185930.html
内容总结
以上是互联网集市为您收集整理的OracleSpatial 处理超过1000个点的几何对象时,报错Ora-00939: 函数的参数过多解决方法全部内容,希望文章能够帮你解决OracleSpatial 处理超过1000个点的几何对象时,报错Ora-00939: 函数的参数过多解决方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。