PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

plpgsql - editer la base

Technique - Langages Procéduraux (PL) | plpgsql - editer la base

Par goutosig le 31/01/2007 - 19:25

bonjour,

je débute dans la prog pl/pgsql ;
je travaille sur postgre 8.2 sous windows, avec l'extension spatiale postgis.

J'ai des objets géometriques de type ligne que je voudrais simplifier en supprimant, pour chaque ligne, 4 points sur 5.
J'ai écrit une fonction, qui compile, qui prend en entrée une geometrie, qui boucle du deuxième à l'avant dernier point de cette geometrie et qui devrait supprimer des points.

voici le code :

CREATE OR REPLACE FUNCTION suppr__4sur5(geom geometry)
RETURNS geometry AS
$BODY$declare
nb_points integer := NumPoints(geom);
compteur integer := 1;
BEGIN

FOR boucle IN 2 .. nb_points-1 LOOP

IF compteur%5 != 0 THEN
PERFORM RemovePoint (geom, boucle-1);
compteur := compteur + 1;
END IF;

END LOOP;
RETURN geom;

END;$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION suppr__4sur5(geom geometry) OWNER TO colza_admin;

les fonctions numpoints et removepoints existent déjà ; respectivement, elles retournent le nb de points de la géométrie, et suppriment un point spécifié par l'index en deuxième paramètre.

j'ai appelé cette fonction avec select et avec update, aucun message d'erreur, mais les géométries gardent toujours le même nb de points.
est-ce que je dois mettre un update dans ma fonction? je trouverais ça bizarre car cela m'obligerait à entrer en paramètre le nom de la table.

Pouvez-vous m'aider?

merci

G.

© PostgreSQLFr, tous droits rĂ©servĂ©s.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.