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 Wed 19 February 2020 15:24

mstcx
Participant actif
Lieu: Nîmes
Date d'inscription: 21 Feb 2008
Messages: 87

SQLExecutor

Bonjour,

J'ai un peu de mal à comprendre comment fonctionne SQLExecutor...?

Je souhaiterai faire une jointure dans une base de donnée (pgsql) avec une source différente (csv). Sauf que je ne sais pas comment appeler ma table csv dans ma requête ?
J'ai le même identifiant dans les 2 tables et souhaite récupérer la géométrie et d'autres champs dans a base de donnée.

Code:

select 
*
from "schema"."table"
where "table"."id"='@Value(id)'

Cette requête ne fonctionne et me renvoie le message suivant :
La requête SQL contient une expression ou un paramètre global qui ne permet pas d'être évalué sans une entité. Merci d'exécuter le traitement à la place.
C'est un peu lapidaire...

Merci pour vos lumières !

Hors ligne

 

#2 Wed 19 February 2020 21:58

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: SQLExecutor

Bonjour,

Dans ce cas il faut ajouter un reader pour le CSV et utiliser DatabaseJoinerpour faire la jointure.

Hors ligne

 

#3 Thu 20 February 2020 09:33

mstcx
Participant actif
Lieu: Nîmes
Date d'inscription: 21 Feb 2008
Messages: 87

Re: SQLExecutor

Merci pour votre réponse.
Effectivement Databasejoiner fait bien mieux l'affaire. Après consultation du support Vérémes, le problème venait aussi du fait que j'avais placé une étoile après le SELECT. Pour récupérer les champs il faut les écrire "en dur" dans le code.

SELECT
table.champ1,
table.champ2
FROM schema.table...

Hors ligne

 

#4 Thu 20 February 2020 13:31

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: SQLExecutor

Le fait d'utiliser SELECT * n'est pas gênant. Je viens de faire le test.
Par contre il faut de toutes façons préciser les attributs à exposer. Donc autant ne pas utiliser l'étoile et dès le SELECT préciser le nom des attributs.
De manière générale utiliser SELECT * est pratique pour tester mais pour être sûr de garder un résultat identique dans le temps il vaut mieux préciser le nom des champs.

Dernière modification par p.jeremie (Thu 20 February 2020 13:31)

Hors ligne

 

Pied de page des forums

Powered by FluxBB