Re: KB-stack overflow
Dmitry Melekhov <[email protected]> Tue, 16 Sep 2003 14:52:44 +0500
| Newsgroups | gmane.comp.db.sapdb.general |
|---|---|
| Message-ID | <[email protected]> |
Becker, Holger wrote: > Dmitry Melekhov wrote: > > >>I'm newbiew with SAP DB. >>We try to migrate to SAP DB from Oracle. >> >>Here is error we got: >> >> General error;-1104 POS(2048) Too complicated SQL statement >>(KB-stack >>overflow). >> >>Is there any way to increase stack? > > > The only way to increase the stack which is relevant for this > error message is to increase the database parameter _PACKET_SIZE. > > Following dependency exist between _PACKET_SIZE and the stack size > _PACKET_SIZE <= 16384 -> stack size: 8192 > _PACKET_SIZE <= 65536 -> stack size: 16384 > _PACKET_SIZE > 65536 -> stack size: 32768 > Thank you! Looks like all is OK now. > But I'm interested in the command which will result in this stack > problem. Perhaps you could post it here. This is very easy :-) Don't ask me why our developer need to create such things. ;-) For instance, these views: CREATE VIEW "PEREKR0" ( "KODPODR", "GOD", "MES", "DEN", "TABN", "KRM", "GR", "CHAS", "NOCHN", "PRAZDN", "SV", "CELL", "CELL", "CELL", "CELL", "CELL", "CELL", "CELL", "CELL", "CELL", "CELL", "CELL", "CELL", "CELL", "CELL", "CELL", "CELL", "CELL", "CELL", "CELL" ) AS SELECT KODPODR, GOD, MES,DEN, TABN, KRM,GR,CHAS,NOCHN,PRAZDN,SV, CASE WHEN CHAS=0 OR CHAS IS NULL THEN '' ELSE CHAS END || CASE WHEN NOCHN=0 OR NOCHN IS NULL THEN '' ELSE '/' || NOCHN END || CASE WHEN PRAZDN=0 OR PRAZDN IS NULL THEN '' ELSE CASE WHEN NOCHN=0 OR NOCHN IS NULL THEN '/' ELSE '' END || '/' || PRAZDN END || CASE WHEN SV IS NULL THEN '' ELSE CASE WHEN (CHAS=0 OR CHAS IS NULL) AND (NOCHN=0 OR NOCHN IS NULL) AND (PRAZDN=0 OR PRAZDN IS NULL) THEN '' ELSE '/' END || SV END AS CELL FROM TABEL."tabel" WHERE KODPODR > '00000000' AND GOD > '0000' AND MES > '00' AND TABN > '00000' AND KRM > '00' CREATE VIEW "PEREKR" ( "KODPODR", "GOD", "MES", "TABN", "KRM", "GR", "d1", "d1", "d2", "d2", "d3", "d3", "d4", "d4", "d5", "d5", "d6", "d6", "d7", "d7", "d8", "d8", "d9", "d9", "d10", "d10", "d11", "d11", "d12", "d12", "d13", "d13", "d14", "d14", "d15", "d15", "TABEL" ) AS SELECT KODPODR, GOD, MES, TABN, KRM,GR, MAX(CASE WHEN DEN='1' THEN CELL ELSE '' END) AS "d1",MAX(CASE WHEN DEN='2' THEN CELL ELSE '' END) AS "d2",MAX(CASE WHEN DEN='3' THEN CELL ELSE '' END) AS "d3",MAX(CASE WHEN DEN='4' THEN CELL ELSE '' END) AS "d4",MAX(CASE WHEN DEN='5' THEN CELL ELSE '' END) AS "d5",MAX(CASE WHEN DEN='6' THEN CELL ELSE '' END) AS "d6",MAX(CASE WHEN DEN='7' THEN CELL ELSE '' END) AS "d7",MAX(CASE WHEN DEN='8' THEN CELL ELSE '' END) AS "d8",MAX(CASE WHEN DEN='9' THEN CELL ELSE '' END) AS "d9",MAX(CASE WHEN DEN='10' THEN CELL ELSE '' END) AS "d10",MAX(CASE WHEN DEN='11' THEN CELL ELSE '' END) AS "d11",MAX(CASE WHEN DEN='12' THEN CELL ELSE '' END) AS "d12",MAX(CASE WHEN DEN='13' THEN CELL ELSE '' END) AS "d13",MAX(CASE WHEN DEN='14' THEN CELL ELSE '' END) AS "d14",MAX(CASE WHEN DEN='15' THEN CELL ELSE '' END) AS "d15" ,MAX(CASE WHEN den='16' THEN cell ELSE '' END) AS "d16" ,MAX(CASE WHEN den='17' THEN cell ELSE '' END) AS "d17" ,MAX(CASE WHEN den='18' THEN cell ELSE '' END) AS "d18" ,MAX(CASE WHEN den='19' THEN cell ELSE '' END) AS "d19" ,MAX(CASE WHEN den='20' THEN cell ELSE '' END) AS "d20" ,MAX(CASE WHEN den='21' THEN cell ELSE '' END) AS "d21" ,MAX(CASE WHEN den='22' THEN cell ELSE '' END) AS "d22" ,MAX(CASE WHEN den='23' THEN cell ELSE '' END) AS "d23" ,MAX(CASE WHEN den='24' THEN cell ELSE '' END) AS "d24" ,MAX(CASE WHEN den='25' THEN cell ELSE '' END) AS "d25" ,MAX(CASE WHEN den='26' THEN cell ELSE '' END) AS "d26" ,MAX(CASE WHEN den='27' THEN cell ELSE '' END) AS "d27" ,MAX(CASE WHEN den='28' THEN cell ELSE '' END) AS "d28" ,MAX(CASE WHEN den='29' THEN cell ELSE '' END) AS "d29" ,MAX(CASE WHEN den='30' THEN cell ELSE '' END) AS "d30" ,MAX(CASE WHEN den='31' THEN cell ELSE '' END) AS "d31" FROM PEREKR0 WHERE KODPODR > '00000000' AND GOD > '0000' AND MES > '00' AND TABN > '00000' AND KRM > '00' GROUP BY KODPODR, GOD, MES, TABN, KRM,GR HAVING SUM(CHAS)>0 OR MAX(SV)>'_'