Oracle数据库执行存储过程的错误解出现了错误,错误信息如下: ORA-20000: ORU-10027: buffer overflow, limit of 10000 bytes$ }- o! W2 c" ~$ }8 O3 H
ORA-06512: at "SYS.DBMS_OUTPUT", line 32
0 J0 Q C- L4 u s3 M# X ORA-06512: at "SYS.DBMS_OUTPUT", line 972 {( Q% ~9 j& N: P% N% C/ Q2 K
ORA-06512: at "SYS.DBMS_OUTPUT", line 1120 ^9 q$ d; { a; }
ORA-06512: at line 18www.ExamW.CoM
: i1 [8 ^# f: a: q 经过一系列的分析以及查看网上的资料终于知道了问题的解决方法,出现的原因是因为我在存储过程中使用了dbms_output.put_line(); 由于过程中有循环,因此输出量比较大,致使缓存不够报错。" s* }# E6 y0 E/ Z. K1 j! \
网上的解决方法是set serveroutput on size 100000 (相当于把缓存设置大一点),但是我执行时候报错 ORA-00922: missing or invalid option,之后还是修改了自己的语句,既然是输出过多导致,我就将数据语句放在循环外面,这样只要输出语句小于缓存就可以了。/ v, ]$ ^3 n- `7 }
本文就介绍到这里了,希望本次的介绍能够对您有所收获! |