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

tableau plpgsql

Technique - Langages Procéduraux (PL) | tableau plpgsql

Par goutosig le 04/05/2007 - 14:47

bonjour,

je travaille avec postgis ; je voudrais faire une fonction qui prend en entrée une ligne et qui renvoie un tableau à 2 colonnes comprenant les cordonnées X et Y de chaque point composant la ligne.
J'ai écrit le code suivant:

DECLARE

nb int ;
route double precision [][];

BEGIN

nb := numpoints(g); --nb de points de la ligne d'entrée

FOR i IN 1..nb LOOP --je parcours la ligne du premier jusqu'au dernier point
route[i][1] := x(pointn(g,i)); --je mets X du iè point dans la ligne i, colonne 1
route[i][2] := y(pointn(g,i)); --je mets Y du iè point dans la ligne i, colonne 2
END LOOP;

RETURN route;

END;

Quand je lance ma fonction dans l'invite SQL, j'ai le message d'erreur suivant:

ERROR: array subscript out of range
État SQL :2202E
Contexte : PL/pgSQL function "linestring2points" line 12 at assignment

L'index de la fonction pointn commence à 1.

Pouvez-vous m'aider?
Merci,
G.

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

entree

goutosig/ = 4 Mai, 2007 - 15:10

J'ai oublié de dire que ma fonction prenait un argument g de type geometry.


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