PDA

View Full Version : embedded SQL geht nicht



Robi
06-12-11, 11:18
Hi *all
folgendes SQL Statement ist interaktiv ist nach 4-5 Sekunden durch, liefert aber null Werte.
:RRTT1 = 16
:RRJJ1=2011
:RRMM1=11
D09HDDTG-J M und T = 2011 11 30

Als embeddet sql hört es nicht mehr auf

C/EXEC SQL
C+ SELECT COUNT(*), SUM(A.HFRAHO) INTO :KIANZA :IND1, :MK_11_F :IND2
C+ FROM HISTFP A, MANDAP, HISTDP, AKTENP
C+ WHERE A.HFRARA > 0 AND A.HFDLOJ = 0 AND A.HFDABT = :RRTT1 AND
C+ AZKEY1 = A.HFKEY1 AND AZKEY2 = A.HFKEY2 AND AZKEY3 = A.HFKEY3 AND
C+
C+ AZMANR = MAMDNR AND AZMAAN = MAAUNR AND MAKZFO = 0 AND
C+ AZGESA > 10 AND
C+ ((13-A.HFDABM)+12*(:RRJJ1-(A.HFDABJ+1))+A.HFDABM)*A.HFRAHO/
C+ CASE WHEN A.HFRAZI = 0 THEN 1 ELSE A.HFRAZI END <=
C+ (SELECT SUM(HDZAHL) FROM HISTDP WHERE
C+ HDDAJJ*10000+HDDAMM*100+HDDATT>=A.HFDABJ*10000+A.HFDABM*100+A.HFDABT AND
C+ HDDAJJ*10000+HDDAMM*100+HDDATT >=
C+ :D09HDDTGJ*10000+:D09HDDTGM*100+:D09HDDTGT AND
C+ HDSTOR = 0 AND HDKZZE = 1 AND
C+ HDKEY1 = A.HFKEY1 AND HDKEY2 = A.HFKEY2 AND HDKEY3 = A.HFKEY3)
C/END-EXEC

Im WRKACTJOB steht der Job auf

Programm Anweisung Prozedur
QSQRUN2 QSYS 14152 F_EMBSELL
QSQRUN2 QSYS 19554 F_GETBLK
QDBGETMQO QSYS 2899 QDBGETMQO

und bewegt sich nicht. CPU geht auf über 50 %

Sieht da jemand die Ursache?
Danke
Robi

PS: Das selbe Statement, nur mit der Abfrage
MAKZFO = 1 anstatt 0 (Zeile 7, hinten) läuft embeddet normal durch. ( je nach Datumseingrenzung, mit und ohne Ergebnis)

andreaspr@aon.at
06-12-11, 11:47
Vielleicht sind die Sitzungsattribute unterschiedlich.
Im STRSQL hast du oft andere als im Embedded SQL (Datenkopie zulassen usw.)

Es wäre auch interessant was Visaul Explain dazu sagt. Dort sind auch Meldungen enthalten, wenn die Engine beim Lesen der Daten einen umweg gehen muss.

BenderD
06-12-11, 11:56
QDBGETMQO ist Herrn google im Zusammenhang mit Bugs und PTF bekannt.

D*B

Robi
06-12-11, 15:55
@andreaspr
Hilft mir leiden nix, ist ne Kundenmaschine, Visual Explain steht mir auf den Servern nicht zur Verfügung.

@Dieter
Danke
habe veranlasst das PTF's gezogen werden. Mal sehn was es bringt.
Ist ne V7R1 Kiste und der PTF Stanmd ist höchstens 5 Wochen alt.

Robi