PDA

View Full Version : MCH3203 mit SQL



lorenzen
09-07-03, 09:21
Wir haben massive Probleme im Bereich SQL. V5R2; PTF-Stand: TL03161 inkl. Hiper und Group, sowie DB-PTF vom 03.07.03.

1. Ein SQL-Select Statement liefert über ODBC, Easycom oder JDBC (ISeries Nav) ein gültiges Ergebnis, über das interactive SQL liefert DASSELBE Statement KEINEN Satz!!!!

2. Ein anderes SQL-Select Statement (welches seit einem Jahr unverändert lief) liefert folgenden Systemfehler:

Funktionsfehler X'1720' in Maschineninstruktion. Interne Speicherauszugkennzeichnung 010016F2.
Datei DBOPTRACE in Bibliothek QTEMP erstellt.
Objekt DBOPTRACE in QTEMP Art *FILE wurde gelöscht.
*** DBOP open FAILED. Exception from call to SLICÜ ***.
Interner Fehler im Abfrageprozessor.
SQL-Systemfehler.

HINWEIS: Wird das "order by" aus dem Statement entfernt, dann kommt der Fehler nicht!

Fehler 1 kommt auf ALLEN LPAR's
Fehler 2 kommt NUR auf zwei LPAR's, auf einer anderen NICHT


Gruß
Sven Lorenzen

horschma
09-07-03, 16:50
Hallo Sven,
da das SQL unter V5R2 zur Zeit wohl eine Großbaustelle bei der IBM ist, es gibt quasi täglich neue PTF's, solltest du dein Problem bei der IBM melden.

Falls Ihr keinen Wartungsvertrag habt, poste mal dein Statement, und falls notwendig die dazugehörigen Tabellendefinitionen.
Da ich im Moment gerade diverse PMR's bezgl. SQL offen habe kann ich das problem vielleicht mit unterbrigen.

Thomas

lorenzen
09-07-03, 17:41
Hallo Thomas,

das mit der Baustelle scheint wirklich so zu sein. Man kann die Fehler gar nicht mehr nachvollziehen. Und da wir ein großes C/S-System mit ganz viel SQL gerade echt eingeführt haben, ist das für uns eine äußerst unglückliche Situation. Deshalb erstmal Danke für das Angebot mit dem "unterbringen".

Hier kommt das Select für Fehler Nr. 1:

SELECT DISTINCT vkko.VKKOVKNR, artstm.ARPRLI, MIN (vkpo.VKPOLDAT) LDAT FROM
TCD435MD/VKKOPF vkko JOIN TCD435MD/VKPOPF vkpo ON (vkko.VKKOMAND = vkpo.VKPOMAND
AND vkko.VKKOVKNR = vkpo.VKPOVKNR) JOIN TCD435MD/ARTSTMPF artstm
ON (vkpo.VKPOMAND = artstm.ARMAND AND vkpo.VKPOARNR = artstm.ARARNR
AND artstm.ARSTAT = '')
WHERE vkpo.VKPOMAND = 35 AND vkpo.VKPOVKNR = 1084780001
AND (SELECT prva.PRVAWEVK FROM TCD435AD/PRVARTPF prva WHERE vkko.VKKOMAND =
prva.PRVAMAND AND vkko.VKKOVART = prva.PRVAVART AND vkko.VKKOVUART =
prva.PRVAVUART AND vkko.VKKOVEPA = prva.PRVAVEPA AND artstm.ARPRLI =
prva.PRVAPRLI AND artstm.ARLEIST = prva.PRVALEIST) = 'J'
GROUP BY vkko.VKKOVKNR,artstm.ARPRLI

Und hier kommt das Select für Fehler Nr. 2:
Interessant dabei: OHNE "order by" Klausel läufts!

Select distinct GEZUVART,
CASE
WHEN GEZUVART='ZLNR' THEN 1
WHEN GEZUVART='VLNR' THEN 2
WHEN GEZUVART='LINR' THEN 3
WHEN GEZUVART='ZKNR' THEN 4
WHEN GEZUVART='VKNR' THEN 5
WHEN GEZUVART='KDNR' THEN 6
WHEN GEZUVART='LGSNR' THEN 7
WHEN GEZUVART='STRNR' THEN 8
WHEN GEZUVART='PLZ' THEN 9
WHEN GEZUVART='ORT' THEN 10 ELSE 11 END AS PLATZ ,
CASE WHEN GEZUVART in ('ZLNR','VLNR','LINR','ZKNR','VKNR','KDNR') THEN 'KV' ELSE ' ' END AS VERKNUEPF ,
VW.GEVWPRIO, VW.GEVWVWNR, VW.GEVWADNR, VW.GEVWVNR, VW.GEVWVZUS, VW.GEVWAB,
STM.GESTTYP, STM.GESTNR, STM.GESTART, STM.GESTUART, STM.GESTMATC, STM.GESTSLNR
From TCD435MD/LIVKKOPF
JOIN TCD435MD/VKERGPF VKERG ON VKERG.ALSTAT = ' ' And VKERG.ALMAND=LIVKMAND And VKERG.ALART='VKKOPF' And VKERG.ALWERTA=LIVKVKNR And VKERG.ALKEY='KUNDENNUMMER'
JOIN TCD435MD/GEBZUPF ON
GEZUSTAT = ' ' and GEZUMAND=35
AND (
GEZUVART='VKNR' and GEZUVWAL='' and GEZUVWNA=LIVKVKNR and GEZUVWNB=0 or
GEZUVART='ZKNR' and GEZUVWAL='' and GEZUVWNA=LIVKVKNR and GEZUVWNB is Not Null or
GEZUVART='KDNR' and GEZUVWAL='' and GEZUVWNA=VKERG.ALKDNR and GEZUVWNB=0 or
GEZUVART='LGSNR' and GEZUVWAL='' and GEZUVWNA=35005233 and GEZUVWNB=0 or
GEZUVART='STRNR' and GEZUVWAL='' and GEZUVWNA=982368 and GEZUVWNB=0 or
GEZUVART='PLZ' and GEZUVWAL='38723' and GEZUVWNA=0 and GEZUVWNB=0 or
GEZUVART='ORT' and GEZUVWAL='' and GEZUVWNA=55203001 and GEZUVWNB=0 or
GEZUVART='BL' and GEZUVWAL='NIE' and GEZUVWNA=0 and GEZUVWNB=0 )
JOIN TCD435MD/GEBSTMPF STM ON STM.GESTMAND=GEZUMAND AND STM.GESTSLNR=GEZUSLNR
LEFT JOIN TCD435MD/GEBVWPF VW ON VW.GEVWSTAT = ' ' AND VW.GEVWMAND=GEZUMAND AND VW.GEVWSLNR=GEZUSLNR
WHERE (
LIVKMAND=35
AND (
LIVKLINR=35005233 ) )
Order by STM.GESTTYP, PLATZ, VW.GEVWPRIO, STM.GESTNR
For Read Only


Gruß Sven