#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