Hi!
Gibt’s hier auch Leute, die sich mit DB2 auskennen?
Folgendes Problem:
Ich lese Daten aus einer Tabelle einer DB2-Datenbank mittels dynamischem SQL. Dafür baue ich mir den Cursor auf und stelle für das Fetch entsprechende Host-Variablen zur Verfügung.
Nun hole ich den ersten Datensatz ab und lese mit Schlüsselfeldern in einer Zieltabelle, ob der Satz bereits vorhanden ist. Wenn dem so ist, führe ich ein Update durch. Wird der Satz nicht gefunden, soll ein Insert durchgeführt werden. Danach hole ich mittels Fetch den nächsten Datensatz.
Sowohl Update wie Insert funktionieren problemlos. Das Problem tritt jedoch nach dem Insert auf. Der Fetch nach dem Insert geht mit SQLCODE = -518 kaputt (EXECUTE Statement enthält ein nicht korrekt präpariertes Statement).
Diese Fehlermeldung ist eigentlich Quatsch, da das SQL bereits vorher über PREPARE der Datenbank bekanntgegeben wurde und ja auch schon funktioniert hat.
Ich vermute, dass das Insert einen Autocommit ausführt und dadurch mein Cursor zerschossen wird.
Kann man da irgendwas machen?
Grüße
Heinrich