... ich finde irgendwie kein close auf den Cursor. Declare cursor ist eine rein deklarative Compiler Anweisung, beim open wird dann ein impliziter prepare mit gemacht. Das müsste eigentlich noch ein warning (cursor state not valid) beim zweiten Aufruf bringen.
Darüber hinaus gibt es noch ein paar Dinge, die ich nicht verstehe:
- warum erfolgt die Rückgabe per ResultSet?
- warum erfolgt die Rückgabe nicht über in/out parameter? (alle Felder hin, die generierten Werte kommen als out verändert zurück)
- weshalb der cast auf den Timestamp?
- warum heißt der changed Timestamp Version (als Version taugt der nicht, das kann schief gehen!)?
- generell sollte man condition handler für error vorsehen, sonst düst man unversehens raus.

Dieter Bender