Wenn du einen Cursor erstellst obwohl du nur einen Satz benötigst, musst du auch alle Sätze (auch wenn es nur 1 wird) in einer Schleife verarbeiten (die Syntax weiß ich im Moment nicht).
Sonst bleibt der Cursor offen und kann im Wiederholungsfall nicht noch mal verwendet werden.
Der Return muss also hinter das End!
Alternativ geht auch ein "select ... into ....", dann gibt's keinen Cursor.