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 26 February 2015 10:39

Romary
Participant assidu
Lieu: Epinal
Date d'inscription: 17 Jun 2011
Messages: 211

[Pgsql 9.3 PostGis 2.1] Export format dbf

Bonjour,
J'ai construit ma base de données urbanisme pour répondre aux prescriptions du standard CNIG 10/2014.
Ce standard demande à générer un fichier dbf par document d'urbanisme. Ce fichier est extrait d'un table sans géométrie.
Je parviens avec l'outil pgsql2shp en ligne de commande a générer le dbf de la table complète. Cependant impossible de générer ce dbf à partir d'une requête avec clause Where (sûrement du fait que ça soit une table non géométrique).

Y'a-t-il un autre moyen (en ligne de commande car j'ai besoin d'automatiser)?

Cordialement,
Ry

Hors ligne

 

#2 Thu 26 February 2015 11:20

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: [Pgsql 9.3 PostGis 2.1] Export format dbf

Bonjour,

Quelle version de PG utilisez vous ?

Edit: hihi, c'est écrit en gros dans le titre du message....
Donc pas normal que ca ne marche pas.

Chez moi (9.3.4, postgis 2.1.2), pgsql2shp génère un dbf seul si la requete ne contient pas de colonne géo:
countries: table spatiale
test: table non spatiale:

Code:

Nicolas1s-Mac-Pro:tmp nicolas$ pgsql2shp -f testdbf nicolas "select * from test"
Initializing...
Done (postgis major version: 2).
Output shape: Null Shape
Dumping: X [3 rows].

-> testdbf.dbf est généré avec le contenu de la table

Nicolas1s-Mac-Pro:tmp nicolas$ pgsql2shp -f testdbf nicolas "select gid, name, region from countries"
Initializing...
Done (postgis major version: 2).
Output shape: Null Shape
Dumping: XXX [209 rows].

-> pareil: dbf seul

Sinon, ogr2ogr permet aussi de convertir une table PG en fichier DBF, avec tout plein d'options de conversion (www.gdal.org)

Nicolas

Dernière modification par Nicolas Ribot (Thu 26 February 2015 12:01)

Hors ligne

 

#3 Fri 27 February 2015 15:55

Romary
Participant assidu
Lieu: Epinal
Date d'inscription: 17 Jun 2011
Messages: 211

Re: [Pgsql 9.3 PostGis 2.1] Export format dbf

Bonjour,
Pouvez-vous essayer de nouveau en insérant une clause where dans la requête? C'est cela qui bloque pour moi apparemment.
Cordialement,
Ry

Hors ligne

 

#4 Fri 27 February 2015 16:34

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: [Pgsql 9.3 PostGis 2.1] Export format dbf

Bonjour,

Oui décidément, j'ai lu votre message trop vite...

Avec des clauses where, ca marche pareil:

Code:

Nicolas1s-Mac-Pro:tmp nicolas$ pgsql2shp -f testdbf nicolas "select gid, name, region from countries where name like 'F%'"
Initializing...
Done (postgis major version: 2).
Output shape: Null Shape
Dumping: X [7 rows].

-> J'ai bien un dbf ouvrable dans LibreOffice avec uniquement les 7 pays commencant par F dans mon dataset. (la colonne gid n'est pas présente dans le DBF: c'est la PK => pas exportée en shapefile je pense

Et sur une table purement attributaire:

Code:

Nicolas1s-Mac-Pro:tmp nicolas$ pgsql2shp -f testdbf nicolas "select * from test where id=1"
Initializing...
Done (postgis major version: 2).
Output shape: Null Shape
Dumping: X [1 rows].

-> DBF avec toutes les colonnes de ma table, une seule ligne.

Quelle est votre requete et votre clause where ?
La requete marche en SQL.
Elle ne renvoie pas des champs de type exotique en dehors de la geometrie (tableaux, blob) ?

Nico

Hors ligne

 

#5 Tue 03 March 2015 13:01

Romary
Participant assidu
Lieu: Epinal
Date d'inscription: 17 Jun 2011
Messages: 211

Re: [Pgsql 9.3 PostGis 2.1] Export format dbf

Bonjour,
Voici la commande que je veux exécuter :

Code:

pgsql2shp.exe -f \\SERVEUR-SIG\doc_urba\54\54043_PLU_20140221\DOC_URBA.shp -p 5432 -h serveur_sig -u utilisateur  bd_sig_ccmm "SELECT * FROM doc_urba.v_shp_doc_urba WHERE  \"IDURBA\" like'54043%'"

La requête fonctionne directement dans la fenêtre sql de postgresql.
La commande fonctionne s'il n'y a pas de clause where.

Ry

Hors ligne

 

#6 Tue 03 March 2015 13:46

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: [Pgsql 9.3 PostGis 2.1] Export format dbf

Bonjour,

Avez-vous essayé de générer le fichier en local plutot que sur un disque réseau ?
La colonne s'appelle bien IDURBA en majuscule dans la table ? (je vous conseille de ne pas mettre de casse aux champs des tables, c'est plus simple d'utilisation).
Si vous la passez en minuscule et reessayez l'export (...FROM doc_urba.v_shp_doc_urba WHERE  idurba like '54043%') ca marche ?

Nicolas

Hors ligne

 

#7 Tue 03 March 2015 14:17

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: [Pgsql 9.3 PostGis 2.1] Export format dbf

Quel est le message renvoyé par pgsql2shp, au fait ?

Hors ligne

 

#8 Mon 13 July 2015 14:58

Romary
Participant assidu
Lieu: Epinal
Date d'inscription: 17 Jun 2011
Messages: 211

Re: [Pgsql 9.3 PostGis 2.1] Export format dbf

Bonjour,

Me revoilà sur cet export.
Je n'ai pas de message d'erreur. Il ne me trouve aucune ligne lorsque la commande est exécutée depuis un "batch".
La même commande lancer directement depuis l'invite de commande fonctionne (il me trouve une ligne).
Là je ne comprends plus.

Je viens de détecter le bug : j'utilise une requête avec un "like 'valeur%' ". Cette requête interprétée dans le batch supprime le %...
Je ne vois pas comment le maintenir.

Ry

Dernière modification par Romary (Mon 13 July 2015 16:43)

Hors ligne

 

#9 Mon 13 July 2015 17:05

Romary
Participant assidu
Lieu: Epinal
Date d'inscription: 17 Jun 2011
Messages: 211

Re: [Pgsql 9.3 PostGis 2.1] Export format dbf

Finalement il suffisait de mettre un double %% dans le like pour que ça fonctionne.
ouf

Merci Nicolas pour ton aide.

Ry

Hors ligne

 

Pied de page des forums

Powered by FluxBB