Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 11 October 2012 18:25

bernez
Participant occasionnel
Date d'inscription: 4 Mar 2010
Messages: 19

POSTGIS, intersection de couches

Bonjour,

J'essaie d'intersecter 2 couches dans postgis mais j'obtiens une message d'erreur :

"ERREUR:  entrée manquante de la clause FROM pour la table « matable1 »
LINE 9: ...matable2"."BVACTION_U", area2d(intersection(matable1...
                                                             ^

********** Erreur **********

ERREUR: entrée manquante de la clause FROM pour la table « matable1 »
État SQL :42P01
Caractère : 360"
Je n'arrive pas à trouver le pb.
voici le sql :

Code:

- View: ma_vue

-- DROP VIEW ma_vue;

CREATE OR REPLACE VIEW ma_vue AS 
 

 SELECT "matable1".gid,"matable1"."PACAGE", "matable1"."NUM_ILOT", "matable1"."SURF_ILOT","matable1".the_geom, "matable2".gid as gid2,"matable2"."BVACTION_U", area2d(intersection(matable1.the_geom, "matable2".the_geom)) / 10000::double precision AS i2
 FROM "matable1", "matable2"
  WHERE intersects("matable1".the_geom, matable2.the_geom);

  
ALTER TABLE ma_vue OWNER TO postgres;

Pouvez vous m'éclairer ?

Hors ligne

 

#2 Thu 11 October 2012 18:42

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1235
Site web

Re: POSTGIS, intersection de couches

Bonsoir,

vous appelez parfois "matable1" d'autre fois matable1 (sans les guillemets).

Faites le test en supprimant tous les guillemets doubles de votre requête ou en en mettant là ou ils ne sont pas (dans la fonction area2d(intersection(matable1...).

Les guillemets ont pour objectif de rendre PostgreSQL sensible à la casse sur les noms des objets.

Un exemple : si votre table s'appelle Matable1, avec un M majuscule

Alors la requête

Code:

select * from "Matable1"

fonctionnera
et la requête 

Code:

select * from "matable1"

ne fonctionnera pas

Dernière modification par Mathieu BOSSAERT (Mon 15 October 2012 16:13)


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

#3 Fri 12 October 2012 11:05

bernez
Participant occasionnel
Date d'inscription: 4 Mar 2010
Messages: 19

Re: POSTGIS, intersection de couches

C'était bien cela le problème.
Merci beaucoup

Hors ligne

 

#4 Mon 15 October 2012 15:45

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: POSTGIS, intersection de couches

Mathieu,

Si le nom de la table a une majuscule seule select * from "Matable1" fonctionnera car tes deux exemples donnent une table entièrement en majuscule wink

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#5 Mon 15 October 2012 16:14

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1235
Site web

Re: POSTGIS, intersection de couches

Yves a écrit:

Mathieu,

Si le nom de la table a une majuscule seule select * from "Matable1" fonctionnera car tes deux exemples donnent une table entièrement en majuscule wink

Y.


Merci Yves, j'ai corrigé.


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

Pied de page des forums

Powered by FluxBB