개발/DB
오라클 ORU-10027: buffer overflow, limit of 20000
Mr.mandu.
2017. 8. 29. 00:30
저는 sqlGate를 자주 사용합니다.
프로시저나 아니면 데이터가 많은 테이블에 접근할을때 다음과 같은 에러를 만났습니다.
ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes
ORA-06512: "SYS.DBMS_OUTPUT", 줄 32에서
ORA-06512: "SYS.DBMS_OUTPUT", 줄 97에서
ORA-06512: "SYS.DBMS_OUTPUT", 줄 112에서
ORA-06512: "FUN_GETUSERNAME", 줄 16에서
실제 화면은 다음과 같습니다.
처음에는 뭔지도 모르고 에러를 만나니까...
그냥 넘어가고 이랬거든요. 구문 틀린게 없는데 뭐라무라 에러가 나니깐.....
제가 해석한 의미는!
오라클에서 해당 내용을 처리하는데 출력되는 text?문자? 길이가 너무 길다!
그래서 출력할수 없다!, 제한된 메모리 사용량을 초과하여
오버 플로우를 발생시키는 것 같습니다.
그래서 해결방법은!
버퍼의 메모리 사이즈를 늘려주기위해 명령문을 차아봤습니다.
토드나 SQLGate에서
exec dbms_output.enable('10000000000');
이 명령문을 실행 시켜주시면 됩니다. 최대 값은....저도 뭔지 몰라서 최대값을 많이 주었습니다
혹은 DBMS_OUTPUT 문구를 삭제하여 시스템 출력문을 막아주는 방법도 있습니다.
그럼 모두 고생하세요!