Skip to Main Content

Breadcrumb

Question and Answer

Tom Kyte

Thanks for the question.

Asked: November 24, 2009 - 10:51 pm UTC

Last updated: November 26, 2009 - 9:58 am UTC

Version: 10.2.0

Viewed 10K+ times! This question is

You Asked

Hi Tom,

I hit the below error from an oracle application I developed.

"ORA-20000: ORU-10027: buffer overflow, limit of 10000 bytes"

I am aware that max buffer limit is '1000000'. I am not sure where does the application gets '10000' value from?
I have checked the whole sourcecode already. I don't set this value anywhere.

When i tried to simulate myself thro a small declare, begin and end procedure, i could only get the same error only if i had deliberately set dbms_output.enable(10000). Else i dont hit the error.

Now i have 2 questions.

Application level: Since i hit the buffer overflow, is there any way i can store content of the buffer somewhere? (to trace on my application errors)

Oracle level: of course, how to utilize the 1000000 buffer size and not 10000?
Does oracle sets this value automatically depending on environment conditions?

Appreciate your kind answers.

Mal.




and Tom said...

ops$tkyte%ORA10GR2> set serveroutput on size unlimited
ops$tkyte%ORA10GR2>



In your login.sql file or glogin.sql (global logon.sql) - you must be setting serveroutput on size 10000

You can control it using serveroutput - and in 10g and above, it can be set to unlimited.

Is this answer out of date? If it is, please let us know via a Comment

More to Explore

PL/SQL demos

Check out more PL/SQL tutorials on our LiveSQL tool.

PL/SQL docs

PL/SQL reference manual from the Oracle documentation library