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

Printemps des cartes 2024

#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: 222

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: 380

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

 

Pied de page des forums

Powered by FluxBB