[gdal-dev] Why does OCI driver fail with SRID?

Jukka Rahkonen jukka.rahkonen at mmmtike.fi
Mon Nov 30 07:25:13 EST 2009


Short question: I cannot get ogr2ogr to co-operate with me and Oracle
Spatial if I want to set the table SRID by using its EPSG code.  I can do what I
want by using SQL*Plus but not with ogr2ogr. What am I doing wrong?

Longish description follows.

I was trying to use ogr2ogr that comes with MS4W 3.0 (dgal version 1.7.0dev) for

a) Importing a shapefile into Oracle 10g and give SRID at the same time.
b) Appending date into existing table with SRID set.

The SRID I would like to use is epsg:2393.  It is configured it in Oracle as can
be seen from the following SQL query:

select * from mdsys.cs_srs where srid=2393;

KKJ / Finland Uniform Coordinate System
      2393       2393
PROJCS["KKJ / Finland Uniform Coordinate System", 
GEOGCS [ "KKJ", DATUM ["Kartasto Koordinaati Jarjestelma 1966 
(EPSG ID 6123)", SPHEROID ["International 1924 (EPSG ID 7022)",
6378388.0, 297.0], -90.7, -106.1, -119.2, 4.09, 0.218, -1.05, 
1.37], PRIMEM [ "Greenwich", 0.000000 ], UNIT ["Decimal Degree",
0.01745329251994328]], PROJECTION ["Finland Uniform Coordinate 
System (EPSG OP 18193)"], PARAMETER ["Latitude_Of_Origin", 0.0],
 PARAMETER ["Central_Meridian", 27.0], PARAMETER 
["Scale_Factor", 1.0], PARAMETER ["False_Easting", 3500000.0],
 PARAMETER ["False_Northing", 0.0], UNIT ["Meter", 1.0]]

Case a) Importing data to new table with ogr2ogr
ogr2ogr -f "OCI" OCI:username/passwd at db:test -a_srs epsg:2393 test.shp

Result: Table is created and features are inserted, but without SRID set.
Ogr2ogr is trying to insert a new line into the table MDSYS.CS_SRS but it fails
because of insufficient privileges
ERROR 1: ORA-01031: insufficient privileges
 VALUES (1000003006,'PROJCS["KKJ / Finland Uniform Coordinate 
SPHEROID["International 1924",6378388,297]],PRIMEM["Greenwich",0],
UNIT["Decimal Degree",0.0174532925199433]],UNIT["metre",1],
 'KKJ / Finland Uniform Coordinate System' )

I wonder why org2ogr is trying to add the projection, because SRID 2393 is
already defined in the database, and why it would like to insert my SRID=2393  
with code "1000003006".

Case b) Appending data into table having SRID=2393
ogr2ogr -update -append -f "OCI" OCI:username/passwd at db:test
 -a_srs epsg:2393 test2.shp

This fails with Oracle error ""Layer SRID does not match geometry SRID". I can
make the insert to succeed by dropping the spatial index of the table, but then
the newly inserted features have SRID=null.

-Jukka Rahkonen

More information about the gdal-dev mailing list