Ciao

2014-04-08 18:44 GMT+02:00 Rocco Pispico <r.pisp...@gmail.com>:
> Ciao a tutti,
> in QGis quando si esporta da postgis a shapefile se i campi della tavola
> sono più lunghi di 10 caratteri vengono tagliati e fissato un nome con un
> numero progressivo.
> Ho provato ad impostare un alias nelle proprietà dei campi ma non viene
> mantenuto nell'export.
> Avete da suggerirmi un modo furbo e veloce per non dover dover toccare
> tavole, query e viste su una cinquantina di campi di un po' di tavole e allo
> stesso tempo non dover usare postgres come un dbf.
>
> Il fomato shapefile in output in questo lavoro è un vincolo.
> Grazie
>

puoi rinominare i campi in export con un alias, anziche' lasciarli
troncare al 10o carattere da PostgreSQL, usando la seguente sintassi
di ogr2ogr:

ogr2ogr myshape PG:"dbname='mydb' host='localhost' port='5432'
user='myuser' password='mypassword'" -sql "SELECT field1 as alias1,
the_geom FROM mytable"

oppure con pgsql2shp:

pgsql2shp -f "/path/to/shape" -h localhost -u myuser -P mypasswrord mydb
"SELECT field1 as alias1, the_geom FROM mytable'"

meglio ancora, definirti un OGR virtual format che puoi riusare anche
successivamente o per vedere direttamente su QGIS la tabella PostGIS
con gli stessi nomi che avresti sullo shapefile (pur rimanendo
invariati sul db), e quindi esportarli con tali alias:

<OGRVRTDataSource>
    <OGRVRTLayer name="remapped_layer">
        <SrcDataSource>PG:"dbname='mydb' host='localhost' port='5432'
user='myuser' password='mypassword'</SrcDataSource>
        <SrcSQL>SELECT field1 as alias1, the_geom FROM mytable</SrcSQL>
    </OGRVRTLayer>
</OGRVRTDataSource>

ciao
p

-- 
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti
skype: capooti
_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni 
dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013

Rispondere a