we are trying to use STV_Export2Shapefile but are getting an error (see attached error msg)
dbadmin=>
dbadmin=> SELECT STV_Export2Shapefile(* USING PARAMETERS shapefile = 'SAC_Blocks2.shp',overwrite = true, shape='Polygon')OVER() from NLAD_DM.sl_Blocks_int;
ERROR 3399: Failure in UDx RPC call InvokeProcessPartition(): Error calling processPartition() in User Defined Object [STV_Export2Shapefile] at [src/Export2ShapeFile.cpp:105], error code: 0, message: Unable to export [ST_MultiPolygon] as [Polygon].
dbadmin=>
dbadmin=>
dbadmin=>
dbadmin=> SELECT STV_Export2Shapefile(* USING PARAMETERS shapefile = 'SAC_Blocks2.shp',overwrite = true, shape='MultiPolygon')OVER() from NLAD_DM.sl_Blocks_int;
ERROR 3399: Failure in UDx RPC call InvokeProcessPartition(): Error calling processPartition() in User Defined Object [STV_Export2Shapefile] at [src/Export2ShapeFile.cpp:105], error code: 0, message: Unable to export [ST_Polygon] as [MultiPolygon].
dbadmin=>
Best Answer
-
Thank you Casey_S ! Used your query to find 2 multi-polygons in the set of 5361 polygons. This data came from the census bureau. Re-ran the original query without them in the input and it completed successfully.
type | gid | COUNT
-----------------+------+-------
ST_MultiPolygon | 1397 | 1
ST_MultiPolygon | 131 | 1
(2 rows)then ran without the 2 multi-polygons -
SELECT STV_Export2Shapefile(* USING PARAMETERS shapefile = 'SAC_Blocks2.shp',overwrite = true, shape='Polygon')OVER() from NLAD_DM.sl_Blocks_int WHERE GID not in ('1397','131');Thank you again for your help !!!
0
Answers
Also, tested the polygons and they tested valid using -
dbadmin=> SELECT ST_IsValid(geom), count(1) from NLAD_DM.sl_Blocks_int where ST_IsValid(geom)='t' GROUP BY ST_IsValid(geom);
ST_IsValid | count
------------+-------
t | 5361
(1 row)
Hi jackparsons13,
Are all of the polygons in
NLAD_DM.sl_Blocks_int
MULTIPOLYGONs? STV_Export2Shapefile can only use a single spatial object type as input.To check run this command:
=> SELECT ST_GeometryType(geom) as type, COUNT(*) FROM NLAD_DM.sl_Blocks_int GROUP BY ST_GeometryType(geom);
Let me know what that returns.
-C