caichunjia 2017-04-21 09:54 采纳率: 0%
浏览 534

请教各位高手Oracle Spatial的问题,大集合如何处理?

Oracle Spatial中SDO_Geometry里SDO_ORDINATES,存储空间数据。现在有几十个多边形,5,6万个x、y。
在程序和plsql里执行报错“PLS-00123: 程序太大”。减少到3万(x和y的总数)多个x、y,就可以insert。多了就报错。一下是代码。
请教大家,像这种大集合,集合数量很多的,有什么好的处理方式?如何解决这个问题?

BEGIN
DECLARE geom0 SDO_GEOMETRY;
BEGIN
geom0 := SDO_GEOMETRY (2003, 111, NULL, SDO_ELEM_INFO_ARRAY(1,1003,1,1,1003,1),
SDO_ORDINATE_ARRAY (105.000906,0.000411,............n) );//此处有10几万个集合,这里报错了。
EXECUTE IMMEDIATE 'INSERT INTO table(id,SHAPE) VALUES (''1'', :gm )' USING geom0; END;
END;

  • 写回答

1条回答 默认 最新

  • $encoding 2023-03-26 19:32
    关注

    表PLS-00123的具体错误信息:

    PLS-00123: 程序太大

    这个错误信息通常出现在代码块或存储过程等程序单元太大时。导致这个错误的原因可能是代码太复杂,拥有过多变量和表达式,以至于编译器不能编译过程。对于你所面临的问题,可能是数据量太大,导致存储空间不足,进而导致PL/SQL程序编译失败。

    为了解决这个问题,你可以考虑以下方案:

    1.分批次插入数据。尝试分割数据块,然后逐个插入。这样可以把大的数据块分解成多个小的数据块,每个数据块的大小可以适应程序和数据库的限制。

    2.增加主存或数据库空间。你可以考虑增加内存或硬盘空间,以便能更好地存储数据。如果你的计算机已经使用了多数物理内存,那么你可以使用大容量硬盘或者分布式文件系统等。

    3.使用更快的查询方案。你可以尝试 Oracle Spatial 中的更快的查询方案来操作数据库,例如使用一些高效的索引算法(如r树),或者使用空间分区等方法。

    希望以上信息能对你有所帮助。

    评论

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R