PDA

View Full Version : Unterschied Interaktives SQL/Embedded SQL?



USDAVIS
15-09-08, 10:00
Hallo *ALL,

folgendes merkwürdiges Problem auf einer i5 170 mit V4R4:

Wenn ich folgenden Befehl interaktiv (d.h. über STRSQL) eingebe, funktioniert das tadellos:

update KrtPca
set (KpRkb, KpKrg, KpRgb, KpKrh, KpRhb) =
(select distinct KtNam, KtGrp, RgBez, RgHgr, RhBe
from Sktstm
inner join KrtGrp on
SktStm.Firma = KrtGrp.RgFir and
SktStm.KtGrp = KrtGrp.RgGrp
inner join KrtHgr on
KrtGrp.RgFir = KrtHgr.RhFir and
KrtGrp.RgHgr = KrtHgr.RhHgr
where SktStm.Firma = KrtPca.KpFir and
SktStm.Konto = KrtPca.KpKrt)
where exists (select * from sktstm where
KrtPca.KpFir = SktStm.Firma and
KrtPca.KpKrt = SktStm.Konto)

Derselbe Befehl in einem SQLRPGLE führt zu einer Endlosschleife mit der sich wiederholenden Meldung:

Datenabbildungsfehler in Teildatei KRTPCA
Nullwerte in Spalte SEL0002 in Tabelle KRTPCA in QS36f nicht erlaubt.

Um das Einfügen von Nullwerten zu verhindern habe ich ja extra die Exists-Abfrage eingebaut. Interaktiv funktioniert es, beim Programm scheint er dies komplett zu verschlucken und läuft überdies noch in einer Endlosschleife.

Hat jemand eine Erklärung für dieses Phänomen?

Gruss
Ulli