Zitat Zitat von Fuerchau Beitrag anzeigen
commit = *chg;

Beachte noch folgendes:
Bei einem Rollback / Commit wird der aktuelle Cursor geschlossen!
Man kann den Cursour zwar mit "declare cursor meincursour with hold for" definieren, das hilft aber nur beim Commit. Beim Rollback wird der Cursor dann auch geschlossen.
Ich behelfe mir dann mit einem Savepoint und einem Rollback to Savepoint retain cursor.
Dann bleibt beim Rollback der Cursor auch offen.

Wenn du einen Rollback in der Prozedur machst, hat du keine Chance den Cursor offen zu halten.
SQL-Prozeduren sollten auch keinen Commit/Rollback machen, sondern die Anwendung, die die Prozedur verwendet.
... beim rollback muss dann ebenfalls hold angegeben werden und (wenn ich das richtig erinnere) muss der cursor for dem fetch next repositioniert werden.

D*B