[gdal-dev] OGR2OGR - Define output naming from concatenated queries from a DB

Mateusz Loskot mateusz at loskot.net
Thu Aug 7 11:42:03 EDT 2008


D wrote:
> Hi,
> 
> I have a question about the usage of OGR2OGR in defining an ESRI Shapefile
> output name. I am exporting Spatial data from Oracle Spatial (11g) from a
> single table to an ESRI Shapefile and would like to get the following naming
> syntax for my Shapefile:
> 
> 
> [select distinct FIELD1 from SHEMA.TABLE][select distinct FIELD2 from
> SHEMA.TABLE][fixed value -> 01]
> 
> .. the output would look like
> 
> 50000002806200701.shp
> 50000002806200701.shx
> 50000002806200701.dbf
> 
> The naming parts/chunks that are concatenated here are actually queries in
> the source database (Oracle).

D,

It's not possible to get it done with ogr2ogr only. You need to write a 
script.

> Any examples (sample scripts, procedures) or hints on how to implement this,
> would be very helpful.


Here you have a prototype of how it can be solve with Python:

#################################
import os
import cx_Oracle

connstr = 'system/pantera at localhost'
conn = cx_Oracle.connect(connstr)
cur = conn.cursor()

# build your SQL queries
cur.execute('SELECT DISTINCT NAME FROM TEST_POINTS')
row = cur.fetchone()
i = 0
while row is not None:
     # generate filename
     prefix = row[0]
     name = prefix + '_%02d' % i

     # call ogr2ogr and pass the generate name as output file name
     os.system('ogr2ogr -f "ESRI Shapefile" %s.shp ....' % name)
     ...

     # read next record
     row = cur.fetchone()
     i = i + 1

if cur is not None:
     cur.close()
if conn is not None:
     conn.close()
#################################

Best regards,
-- 
Mateusz Loskot, http://mateusz.loskot.net
Charter Member of OSGeo, http://osgeo.org


More information about the gdal-dev mailing list