Too many points for ST_GEOMETRY to handle?

4748
3
02-04-2015 02:58 PM
ChenLiang
New Contributor II

Hi all,

I am writing a PL/SQL procedure to create a linestring from a set of given points in a point feature class with ST_GEOMETRY function calls and then insert into a line feature class. My script seems working only with a small number of points like 320 points (where CLOB char count is 10991). If I added more points (CLOB char count is 11041), the same script, specifically the ST_GEOMETRY creation statement

st_linefromtext(v_shp_clob, v_geo_srid));

, threw an error: ORA-20004: Error generating shape from text: Invalid text used to construct geometry (-1). A worse error appeared: ORA-20000: Failed to get Geometry text Memory when the number of points was 17840.

I didn't find any parameter on SDE or ST_GEOMETRY to specify the limitation. Oracle has too big numbers for CLOB size or BUFFER to pose this limit. Has anybody here run into this error and find a way to handle it?

My env is Oracle 11gR2 and SDE 10.1 on Linux

Thanks

0 Kudos
3 Replies
VinceAngelo
Esri Esteemed Contributor

This is properly an issue for Tech Support, but there are details you can add here *and* take there:

  • Which exact Oracle 11gR2 release, with what patch update (CPU)?
  • Which exact ArcGIS release (10.1 + SP? + patches)
  • Which exact Oracle client are you using?
  • Have you tried using SDE.ST_GeomFromText?

With all those low-level memory errors, I doubt this is exclusively due to an Esri issue.

- V

0 Kudos
ChenLiang
New Contributor II

A ticket was submitted to ESRI. I was wondering if anybody has stumbled on the same issue.

Oracle DB is Enterprise Edition Release 11.2.0.3.0 - 64bit

Oracle Client is 11.2.0.2.0 (32bit) - I don't think it is even a factor in this case

ArcSDE is 10.1 w/ SP1

I tried all related functions: ST_GeomFromText, ST_LINESTRING, ST_LineFromText, ST_MLineFromText, ST_MLineString. All threw the same error.

What do you think might be the issues then?

0 Kudos
VinceAngelo
Esri Esteemed Contributor

The general rules is that the client should always be at the level of the database or higher.  Using a 11.2.0.3 client with a 11.2.0.2 database would generally be considered safe, but I wonder if the root cause isn't due to using an older, unpatched client against a slightly newer (but also unpatched) database.

0 Kudos