3

I have been loading a number of shapefiles into SQL server 2012 using ogr2ogr.exe and the MSSQLSpatial driver. Up until this point, I have been very successful with doing so.

However, I have now run into difficulty with certain files and the errors thrown by various tools are not terribly helpful in identifying what exactly is wrong with the shapefile.

The files in questions are between 270MB and 290MB big and most have a single layer with more than 80,000 features in that layer. However, size and feature count is not itself an issue, I believe, as a file that is part of this data set is 280MB big and has 111,000(ish) features in it's particular layer.

The problem files all load correctly and are viewable in QGIS, including any files/features thrown out by ogr2ogr.exe as causing an issue. They also load into MapInfo successfully and can be edited there just fine. Re-exporting the layer from QGIS as a shapefile does not fix the issue with loading via ogr2ogr.exe

I've also attempted to load it using Shape2SQL and that program just hangs outright after it reaches a certain point with no error messages thrown at all.

The specific message thrown by ogr2ogr.exe is:

ERROR 1: INSERT command for new feature failed. [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionWrite (send()).

ERROR 1: Unable to write feature < feature no> from layer < layer name>.

ERROR 1: Terminating translation prematurely after failed translation of layer < layer name> (use -skipfailures to skip errors)

The command line statement for ogr2ogr.exe I'm using is:

ogr2ogr.exe -overwrite -f MSSQLSpatial "MSSQL:server=...;database=...;trusted_connection=yes" "< filename>.shp" -t_srs "EPSG:4326" -lco "GEOM_TYPE=geography" -lco "SCHEMA=ETL" -lco "OVERWRITE=YES" -progress

The shapefiles are in WGS84 projection.

Does anyone know what tool I might be able to use from the GDAL toolkit, QGIS or MapInfo to fix the errors in these shapefiles so that they can be loaded by ogr2ogr.exe into SQL Server 2012? Or alternately is it my ogr2ogr.exe arguments?

Update:

I've managed to run the Vertices Counter plugin and the first feature that causes an issue has 5,558,760 vertices.

SteveC
5671 gold badge6 silver badges24 bronze badges
asked Nov 20, 2015 at 16:44
3
  • It could be basic issues with the spatial data such as very short lines, very small polygons or records without spatial data. Could you run a query on the dataset to see if it contains small features? Try having a look at the feature referred to in the error message Commented Nov 23, 2015 at 14:40
  • The first feature that it crashes out on is quite large. I'm not sure how to view details of features in QGIS but I'll investigate and update with an edit. Commented Nov 24, 2015 at 9:12
  • That's a lot of vertices - I don't know if ogr2ogr or SQL would run into an issue with that. Maybe try running it with -skipfailures and see what happens - you should get a set of features imported, and you can compare that to the full set to see if the number of vertices, or something else, is a common feature of the skipped features. Commented Apr 22, 2016 at 14:01

6 Answers 6

2

This worked for me in the ogr shell.

First change your directory to the folder that contains your shapefile (cd full path to shapefile folder)

ogr2ogr -overwrite -f "MSSQLSpatial" "MSSQL:server=...;database=...;trusted_connection=yes" test.shp -a_srs "EPSG:4326" -nln "test"
PolyGeo
65.5k29 gold badges115 silver badges350 bronze badges
answered Nov 20, 2015 at 17:20
3
  • This did not work.Same error as before unfortunately. Commented Nov 20, 2015 at 17:37
  • Do you have permission to write to the SQL server? Commented Nov 20, 2015 at 19:04
  • Yes. As stated in the question, I have been using this method on a number of other files to this specific database and server without issues up until now. I think the issue is with the file, not the server. I'm looking for a way to diagnose why it's not loading. Commented Nov 23, 2015 at 9:15
1

I eventually gave up trying to load the large files - it does not seem to be possible with any tool. The other side of the coin was that the features I did manage to load took over 1 hr to do a simple STIntersects query.

Solution:

I cut up the large shapefiles using ogr2ogr based on county geometries and then uploaded them and associated them with the county data in order to create a smaller set of geography objects to query.

This method worked like a charm and STIntersects query performance for the most complex shapefile is still in the region of 600ms which is acceptable for our purposes.

answered Apr 22, 2016 at 14:09
1

I resolved with the command: -FieldTypeToString All

The problem in my case was a column with numeric conversion problem. So I turned all columns (except for the geography, of course), and it resolved.

Mark Ireland
13.3k3 gold badges35 silver badges69 bronze badges
answered Jan 12, 2018 at 21:01
1

for me resolved by adding --config MSSQLSPATIAL_USE_BCP NO

answered Sep 8, 2021 at 20:35
0

I used to have the same problem, the fastest way was to use this tool.

http://www.dknezevic.com/blog/2014/10/import-shapefiles-into-sql-server.html

It's quick and easy to work with.

PolyGeo
65.5k29 gold badges115 silver badges350 bronze badges
answered Nov 24, 2015 at 14:08
2
0

I found that I had this error with a map of the administrative areas of the world.

The solution that worked for me was to downgrade from QGIS 2.18 (GDAL Version 2.1.1) to GGIS 2.12 (GDAL Version 1.11.3). Then it just worked fine.

answered Dec 7, 2017 at 16:37

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.