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树),或者使用空间分区等方法。

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

    评论

报告相同问题?

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境