Fehler bei PERFORM UPDATE

Ich versuche mich gerade an dem schreiben einer Funktion. Jedoch erhalte ich bei einem PERFORM UPDATE xxx immer einen für mich unerklärlichen Fehler.

PERFORM UPDATE pw_spieler_einheit
SET aktionspunkte = aktionspunkte - 2
WHERE id =  einheit_verteidigung;

wobei “einheit_verteidigung” eine Variable ist. Wenn ich den UPDATE in Anführungszeichen schreiben, funktioniert es einwandfrei. Jedoch werden dann ja die Variablen nicht ersetzt (<- oder irre ich mich da).

Wo liegt nun hier der Fehler?

Du wirst einen Query zusammensetzen und den dann ausführen müssen. Schreiben tust du das ganze in einen String, ausführen dann mit EXECUTE.

Man könnte auch das PERFORM einfach weglassen…

Andreas

Ich mache das jetzt so und scheint zu funktionieren:

EXECUTE 'UPDATE pw_spieler_einheit
SET aktionspunkte = (aktionspunkte - 2)
WHERE id = ' || einheit_verteidigung;

Zumindest wird kein Syntax-Fehler mehr angezeigt.