Ich habe Probleme mit der Syntax von Postgresql, hauptsächlich mit Rückkehr, während Schleife und Cursor. Wenn ich nichts zurückgeben will, was soll ich schreiben? Was sollte meine while-Schleife sein, um den Cursor zu durchlaufen?Syntaxfehler für Funktion in Postgresql
CREATE FUNCTION price(category integer, reduce real, minimum integer)
RETURNS void;
DECLARE name VARCHAR(MAX);
DECLARE total integer;
DECLARE number integer;
BEGIN
DECLARE C1 CURSOR FOR
SELECT people, quantity FROM store WHERE categories = category;
OPEN C1;
FETCH C1 INTO name, number;
total = SELECT SUM(quantity) FROM store WHERE categories = category;
WHILE (condition) LOOP
IF(total > minimum)
THEN UPDATE store SET (price = price - reduce) WHERE categories = category;
END IF;
FETCH C1 INTO name, number;
END LOOP;
CLOSE C1;
END;
LANGUAGE plpgsql;
1) Nur 'Rückkehr;' ohne Parameter; 2) Verwenden Sie 'FOUND' Variable: [Beispiel] (http://www.postgresqltutorial.com/plpgsql-cursor/#crayon-56ea6d043addd111161561) – Abelisto