#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