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
, 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
This is properly an issue for Tech Support, but there are details you can add here *and* take there:
With all those low-level memory errors, I doubt this is exclusively due to an Esri issue.
A ticket was submitted to ESRI. I was wondering if anybody has stumbled on the same issue.
Oracle DB is Enterprise Edition Release 126.96.36.199.0 - 64bit
Oracle Client is 188.8.131.52.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?
The general rules is that the client should always be at the level of the database or higher. Using a 184.108.40.206 client with a 220.127.116.11 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.