[gdal-dev] ogr2ogr -sql and -nln
Even Rouault
even.rouault at spatialys.com
Wed Mar 8 05:27:00 PST 2017
On mercredi 8 mars 2017 06:09:44 CET Mike wrote:
> I'm getting this
> Warning 1: layer names ignored in combination with -sql.
>
> However, I need to use the -sql query as I'm adding fields and populating
> them as I go.
>
> The source dataset cannot be edited.
>
> I'm trying to combine several datasets into various tables in PostGIS,
> where there's a name difference between the source layer and the PostGIS
> table name.
>
> my command is in this format.
> ogr2ogr -f PostgreSQL -a_srs "EPSG:4326" PG:dbname=SomeDB <insert some
> options> Sourcedata -nlt POLYGON -skipfailures -explodecollections -sql
> "SELECT *,'VALUE1' AS valuefield, 1 as anotherfield FROM <layer> WHERE
> OGR_GEOMETRY='POLYGON' OR OGR_GEOMETRY='MULTIPOLYGON'" <layer>
>
The issue is that you are using both -sql " " and layer_name, which are indeed exclusive. Either
you import from a SQL statement or you import from a source layer_name. If you specify -sql
"SELECT ... FROM layer_name", you don't need to specify it as a source layer_name.
To do what you want, use -sql "SELECT ... from <layer>" -nln <layer>_suffix
(note the -nln switch)
> I wish to not put it in a table named <layer> in my PostGIS/SomeDB, but
> rather <layer>+somesuffix
>
> This is easy with -nln, but when I added the -sql, I get the warning above,
> and it seems to drop it in just <layer> and not <layer>+somesuffix.
>
> How can I accomplish what I want?
> This is ultimately run on many datasets, so it will be appending to
> existing tables (or create them if they didnt exist yet).
>
> -Mike
--
Spatialys - Geospatial professional services
http://www.spatialys.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20170308/1155ce64/attachment-0001.html>
More information about the gdal-dev
mailing list