Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.tools -> ora-20000, oru-10027 buffer overflow, limit of 2000 bytes
Hello all,
I have an oracle error raised: ora-20000, oru-10027 raised on the following pl/sql code. I have the set the serveroutput on to 5000. It still doesn't resolve the error. If I increase it to 1000000 it still gets the error.
Any ideas why the error is raise? Your help is much appreciated.
pl/sql code:
set echo off
set serveroutput on size 10000
set timing off
set sqlnumber on
/* dump_latest_released_boms.sql for Agile 3.2, 4.0, 5.0, 6.0 */
/* Time-stamp: "oracle_dump_all_boms.sql 19 January 2000 13:40:33
JOHNO" */
/* It is sensitive to inconsistencies between revision and change
effective and release dates */
/* If these dates are inconsistant, it does not dump all your bom data
*/
/* This inconsistency is sometimes found in legacy data. */
/* NOTICE: */
/* This has been tested for the uses it was adapted for, but */
/* this comes with no warranty expressed or implied that this meets */
/* any other requirements. It may require customization. */
/* Test everything before you put it in production. */
/* Changes */
/* Changed so it loops through all items in the item table. */ /* Multiple changes to output format */ /* Added timing (in milliseconds) */output, for Eric; */
/* 13 Mar 1998 /*
/* Added rev.effective_date */
/* April 21 1998 */
/* Extended and edited comments. */
/* April 22, 1998
/* Reformatted to 75 columns, for printing. */
/* April 30, 1998 */
/* Undid the formatting. Make it as wide as it wants */
/* June 3, 1998 */
/* Added "clear columns" to foolproof the formatting */ /* Removed effective date, assy rev, comp rev, and RD from
/* Added change_in.released_date to output at Credence's
request. */
/* July 28, 1998 */
/* Added test for deleted_flag, hoping to speed it up. */ /* Added error_code and error_msg to exception messages */ /* Reinserted RD processing, for Heatherly */missing comma). */
/* 15 December 1999 - johno */
/* Renamed two fields for aesthetic reasons; */ /* Fixed problem preventing refdesigs from outputting (a
drop table output_bom;
create table output_bom (
bom_id number primary key, assy_number varchar2(30), comp_number varchar2(30), find_number number, seq number, quantity varchar2(20), assy_rev varchar2(20), comp_rev varchar2(20), ref_desig varchar2(3000), text01 varchar2(5), Module_ind varchar2(1), comp_type varchar2(1), effectiveDate date, dateIn date, dateOut date);
create or replace procedure get_rd(bomID IN number, list OUT varchar2) is
cursor csr is select label from refdesig where bom = bomID order by id;
str varchar2(20); tmp varchar2(2000); first number; error_code number := SQLCODE; error_msg varchar2(300) := SQLERRM; begin open csr; first := 1; loop fetch csr into str; if csr%notfound then exit; end if; if first = 1 then tmp := str; first := 0; else tmp := tmp || ',' || str; end if; end loop; close csr; list := tmp; exception when others then dbms_output.put_line('Exception called in get_rd(): ' || error_code || ', ' || error_msg || '.');end;
cursor csr is select bom.id, bom.item, bom.item_number, bom.find_number, bom.seq, bom.quantity, bom.change_in, bom.change_out, bom.prior_bom, bom.text01, bom.text02, bom.list01, rev.rev_number, change1.release_date, rev.effective_date, change2.release_date from bom , item , change change1, change change2, rev where bom.item = itemID and item.item_number (+)= bom.item_number and change1.id (+)= bom.change_in and change2.id (+)= bom.change_out and rev.item (+)= item.id and rev.latest_flag (+)= 1 order by bom.item, bom.find_number; cursor csr0 is select rev.release_date, rev.change, rev.rev_number, item.item_number from rev , item where rev.item = itemID and item.id = itemID and rev.latest_flag = 1; bomID number; assID number; compNum varchar2(30); findNum number; seqNum number; qty varchar2(20); changeIn number; changeOut number; priorBom number; revNum varchar2(20); refDesig varchar2(3000); txt01 varchar2(5); Mod_ind Varchar2(1); cmp_type Varchar2(1); dateIn date; effectiveDate rev.effective_date%type; dateOut date; assNum varchar2(30); assRev varchar2(20); relDate date; latest number; error_code number := SQLCODE; error_msg varchar2(300) := SQLERRM; begin open csr0; fetch csr0 into relDate, latest, assRev, assNum; if not csr0%notfound then open csr; loop fetch csr into bomID, assID, compNum, findNum, seqNum, qty, changeIn, changeOut, priorBom, txt01, mod_ind, cmp_type, revNum, dateIn, effectiveDate, dateOut; if csr%notfound then exit; end if; if ((changeIn = 0 or dateIn is not null and dateIn <= relDate) and (dateOut is null or dateOut > relDate))then
get_rd(bomID, refDesig); insert into output_bom (bom_id, assy_number, comp_number, find_number, seq, quantity, assy_rev, comp_rev, ref_desig, text01, Module_ind, comp_type, effectiveDate, dateIn) values (bomID, assNum, compNum, findNum, seqNum, qty, assRev, revNum, refDesig, txt01, mod_ind, cmp_type, effectiveDate,dateIn); end if; end loop; close csr; commit; end if; close csr0; exception when others then dbms_output.put_line('Exception called in get_bom(): ' || error_code || ', ' || error_msg || '.');end;
/* johno */
/* Changed it from a one-shot thing to a loop. */
/* cursor csr is select id from item where item_number
= '&assembly_number'; */
/* cursor csr is select id from item; */
declare
cursor csr is select id from item where nvl(delete_flag,0) != 1; itemID number; error_code number := SQLCODE; error_msg varchar2(300) := SQLERRM;
open csr; loop fetch csr into itemID; exit when csr%NOTFOUND; get_bom(itemID); end loop; close csr; exception when others then dbms_output.put_line('Exception called in main(): ' || error_code || ', ' || error_msg || '.');
end;
/
show error
drop procedure get_rd;
drop procedure get_bom;
/* Please, make all output and formatting changes below. */
clear columns
clear breaks
/* Display column headers */
ttitle off
clear columns
/* set heading off */
set heading on
set pagesize 50000
/* Avoid line-wrap */
set linesize 5000
/* As you wish */
set echo off
spool c:\ag_bom_dump.txt
select bom_id, assy_number, assy_rev, find_number, comp_number, comp_rev, seq, ltrim(quantity) qty, effectiveDate dateIn, dateOut, ref_desig, text01, Module_ind, comp_type
/* select distinct(assy_number) from output_bom; */
/* drop table output_bom; */
spool off
Sent via Deja.com http://www.deja.com/
Before you buy.
Received on Thu Aug 24 2000 - 15:08:38 CDT