Oracle中的PLS-00123 program too large问题
2020-06-18 15:27
260 查看
Oracle数据库中的PLS-00123 program too large问题
先说结论:是由于执行的sql脚本太长或者太大导致的问题
由于一个异常结果可能是由多种原因导致的,所以一个异常的解决方法是不一定通用的,我只能说说我遇到的问题以及解决方法,以此分享我的经验总结;
原因:
在开发时我们的环境是Oracle的11g版本,原本没问题的sql在切换Oracle版本为Oracle10g出现了PLS-00123 program too large异常,经排查,是由于我们的sql是采用了批量添加,即循环一个集合来实现批量添加的,由于集合太大导致sql拼接也太大太长,而Oracle10g对sql的大小是有限制的,所以出现了此错误。
<!--遍历集合,批量更新数据--> <foreach collection="labelList" item="obj" separator=";" open="begin" close=";end;" index="index"> update ENT_LABEL set id = #{obj.resourceId,jdbcType=DECIMAL}, eid = #{obj.eid,jdbcType=VARCHAR}, yh = #{obj.qyzzCyjh,jdbcType=VARCHAR} ........... where id = #{obj.id,jdbcType=DECIMAL}
最后的解决方案就是将大集合平均拆成小集合,这样拼接的sql较小,也不再报错,但也增加了数据库的连接次数;
相关文章推荐
- 解决RStudio中"plot.new() : figure margins too large"问题
- java call oracle procudure setBoolean问题PLS-00306: wrong number or types of arguments in call to
- 超长的Jenkinsfile的Method code too large问题对应方法
- 解决com.mysql.jdbc.PacketTooBigException: Packet for query is too large (3158064)问题
- nginx 出现413 Request Entity Too Large问题的解决方法
- nginx 问题 413 Request Entity Too Large的解决方法
- http post request header is too large 问题
- virtualbox装系统遇到的报错问题Unable to load R3 module D:\Program Files\Oracle\VirtualBox/VBoxDD.DLL (VBox
- Bitmap too large to be uploaded into a texture问题的解决方法
- program too big to fit in memory的问题解决
- nginx、Apache、IIS中413 Request Entity Too Large问题的解决方法
- nginx 出现413 Request Entity Too Large问题的解决方法
- nginx 出现413 Request Entity Too Large问题的解决方法
- 解决ElasticSearch深度分页机制中Result window is too large问题
- nginx 出现413 Request Entity Too Large问题的解决方法
- Java代码解决ElasticSearch的Result window is too large问题
- 解决com.mysql.jdbc.PacketTooBigException: Packet for query is too large (3158064)问题
- Linux mount Windows共享后编译出现“Value too large for defined data type”的问题 (zz)
- 解决com.mysql.jdbc.PacketTooBigException: Packet for query is too large (3158064)问题
- 解决MySql Error: Packet for query is too large... 问题