#1 Tue 01 December 2020 15:51
- Gey Laure
- Participant occasionnel
- Lieu: Toulouse
- Date d'inscription: 5 Sep 2005
- Messages: 13
User attributes - liste champs d'une table
Bonjour,
Je souhaite récupérer la liste des champs contenus dans une base de données postgis.
Sachant qu'en entrée, j'ai donc une bdd postgis avec X tables.
En sortie je voudrai dans un format tableur :
- créer et nommer chaque onglet par le nom des tables, onglet 1 = "table1", onglet n = "table n"
- pour chaque onglet, lister les champs de la table d'appartenance (ce qui ressemble à l'onglet "user attributes" du feature type)
Onglet "table1" : champs1; champs2; champs3;.....; champs108;
Onglet "table2" : champs1;....champs50;
Merci d'avance à vous,
bonne journée,
Laure
Hors ligne
#2 Wed 02 December 2020 11:11
- Hydrolithe
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Apr 2010
- Messages: 223
Re: User attributes - liste champs d'une table
Bonjour,
J'ai testé rapidement en mettant un Creator suivi d'un SQLExecutor avec comme requête :
Code:
SELECT table_name, column_name FROM information_schema.columns WHERE table_schema = 'your_schema' AND table_name = 'your_table'
La requête est à adapter selon les besoins.
Bien penser à exposer les attributs issus de la requête dans le SQLExecutor.
Enfin une sortie Excel avec comme nom de feuille l'attribut table_name.
Pierre
Hors ligne
#3 Wed 02 December 2020 13:07
- p.jeremie
- Participant assidu
- Lieu: Valence
- Date d'inscription: 10 Sep 2017
- Messages: 427
Re: User attributes - liste champs d'une table
J'ai fait quasiment la même chose, mais avec un SQLCreator, qui évite d'avoir un Creator puis un SQLExecutor.
La requête utilisée de mon côté est peu plus précise (jointure avec information_schema.tables pour filtrer les vues et conserver uniquement les tables) :
Code:
SELECT c.table_schema, c.table_name, c.column_name FROM information_schema.columns c inner join information_schema.tables t on c.table_name = t.table_name and c.table_schema = t.table_schema where t.table_type= 'BASE TABLE' order by c.table_schema, c.table_name, c.column_name
Et effectivement, il faut préciser les attributs à exposer dans le SQLCreator également.
Hors ligne
#4 Wed 02 December 2020 13:59
- xav
- Participant assidu
- Date d'inscription: 27 Oct 2005
- Messages: 280
Re: User attributes - liste champs d'une table
Bonjour,
sinon, vous pouvez utiliser le port Schéma du featurereader, il permet de ressortir toutes les infos sur la structure des jeux de données (postgres ou autre)
Bonne journée
XAvier
Xavier Lang
Information géographique et observatoire - DSI Communautaire
Cap Atlantique
Hors ligne
#5 Wed 02 December 2020 18:13
- antoine guillot
- Participant actif
- Date d'inscription: 5 Sep 2008
- Messages: 62
Re: User attributes - liste champs d'une table
Bonjour,
L'option du featurereader est bonne si on veut éviter le sql. "Schema, any format" est aussi un format qui fonctionne mais il demande qqs astuces pour les bases de données.
Bonne soirée,
Antoine.
Hors ligne
#6 Mon 07 December 2020 17:07
- Gey Laure
- Participant occasionnel
- Lieu: Toulouse
- Date d'inscription: 5 Sep 2005
- Messages: 13
Re: User attributes - liste champs d'une table
Bonjour et merci pour vos retours.
j'ai utilisé le port <Schema > du FeatureReader
J'ai ensuite fait un listExpolder suivi d'un AttributeKeeper.
Au final j'obtiens la liste des tables / des variables et leur typage.
C'est parfait merci à vous!
Laure
Hors ligne