Re: Te

From: "Thomas Zuberbuehler" <tzuberbuehler(at)datacomm(dot)ch>
To: "Stefan Kaltenbrunner" <stefan(at)kaltenbrunner(dot)cc>, akretschmer(at)spamfence(dot)net
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Te
Date: 2006-11-18 14:54:22
Message-ID: e545098a0611180654g708f1eecs3d31cd32fd0e5f33@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Vielen lieben Dank Euch beiden! Ohne Euch hätte ich wahrscheinlich
noch Stunden an diesem Problem gearbeitet!

Ich poste hier mal noch den funktionierenden Code, damit nachfolgende
Leute mit ähnlichen Probleme ein Codebeispiel haben bzw. finden.

Viele Grüsse
Thomas

<code>
CREATE OR REPLACE FUNCTION getSurfacing() RETURNS TRIGGER AS '

DECLARE

rows FLOAT;
rec RECORD;

nature FLOAT;
asphalt FLOAT;
undefined FLOAT;

BEGIN

IF (select count(*) from pg_tables where tablename=''htable'') THEN
EXECUTE ''DROP TABLE '' || ''htable'';
END IF;

CREATE LOCAL TEMPORARY TABLE htable AS (
SELECT s.name FROM hikeroute h, surfepm s
WHERE s.the_geom && setSRID(box2d(h.the_geom)::box2d, 21781)
AND h.id = NEW.id
AND within(s.the_geom, h.the_geom)
);

EXECUTE ''SELECT count(*) FROM htable'' INTO rows;

EXECUTE ''SELECT count(*) FROM htable WHERE name ~* '' || ''
''''Hartbelag'''' '' || '''' INTO asphalt;
asphalt := (100/rows)*(asphalt);

EXECUTE ''SELECT count(*) FROM htable WHERE name ~* '' || ''
''''Naturbelag'''' '' || '''' INTO nature;
nature := (100/rows)*(nature);

undefined := 100 - nature - asphalt;

INSERT INTO roadsurfacing VALUES(NEW.gid, nature, asphalt, undefined);

RETURN NEW;

EXCEPTION
WHEN division_by_zero THEN
RAISE NOTICE ''caught division_by_zero !!'';
RETURN OLD;

END;

' LANGUAGE plpgsql;
</code>

--
Thomas Zuberbuehler
http://www.zubi.li

In response to

  • Re: Te at 2006-11-18 14:47:29 from Stefan Kaltenbrunner

Responses

  • Re: Te at 2006-11-18 14:58:08 from Andreas Kretschmer
  • Re: Te at 2006-11-18 15:06:36 from Stefan Kaltenbrunner

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Andreas Kretschmer 2006-11-18 14:58:08 Re: Te
Previous Message Stefan Kaltenbrunner 2006-11-18 14:47:29 Re: Te