Received: from linuxbox.ilrspa.com ([194.243.125.130]) by postgresql.org (8.11.3/8.11.1) with ESMTP id f67B63a16197 for ; Sat, 7 Jul 2001 07:06:03 -0400 (EDT) (envelope-from carlino@ilrspa.com) Received: from ilrspa.com (carlino.ilrspa.com [194.243.125.138]) by linuxbox.ilrspa.com (8.11.0/8.8.7) with ESMTP id f67B5xc04457 for ; Sat, 7 Jul 2001 13:05:59 +0200 Message-ID: <3B46ED17.9F3EACA4@ilrspa.com> Date: Sat, 07 Jul 2001 13:05:59 +0200 From: Carlo Vitolo Reply-To: carlino@ilrspa.com X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.4.4-win4lin i686) X-Accept-Language: en MIME-Version: 1.0 To: pgsql-sql@postgresql.org Subject: Problem with function & trigger Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Archive-Number: 200107/80 X-Sequence-Number: 3864 This does not work. The error is ERROR: pg_atoi: error in "12.00": can't parse ".00" CREATE FUNCTION "togliscar" () RETURNS opaque AS 'BEGIN UPDATE magazzino SET quantita = (SELECT quantita FROM magazzino WHERE descrizione = NEW.descrizione ) - NEW.quantita WHERE descrizione = NEW.descrizione; RETURN NEW; END; ' LANGUAGE 'plpgsql'; CREATE TRIGGER "togliscarico" BEFORE INSERT ON "scarico" FOR EACH ROW EXECUTE PROCEDURE "togliscar" (); This works. CREATE FUNCTION "delscar" () RETURNS opaque AS 'BEGIN UPDATE magazzino SET quantita = (SELECT quantita FROM magazzino WHERE descrizione = OLD.descrizione ) + OLD.quantita WHERE descrizione = OLD.descrizione; RETURN OLD; END; ' LANGUAGE 'plpgsql'; CREATE TRIGGER "delscarico" BEFORE DELETE ON "scarico" FOR EACH ROW EXECUTE PROCEDURE "delscar" (); The field quantita is numeric(10,2). Both functions works if quantita is integer. Any hint? Bye!