Select to view content in your preferred language

St_Intersects error

2323
4
08-17-2012 06:50 AM
IngaMeirane
Emerging Contributor
Hi, we have installed arcgis 9.3.1 on oracle 10g database on Windows server 2003
i've created following query to find all records form tableA which territory intersects with tableB terrirotry:

select a.ObjectID
from SDEOWNER.tableA a
inner join SDEOWNER.tableB b                                                       
  on SDE.ST_Intersects (b.Shape, a.Shape) = 1;

On our test environment query runs well, but on our clients test database (same settings: 9.3.1 and Oracle 10g except runs on Unix environment) query returns following error message:

ORA-29902: error in executing ODCIIndexStart() routine
ORA-06521: PL/SQL: Error mapping function
ORA-06522: /u01/sde/sdeexe93/lib/libst_shapelib.so: undefined symbol: Gen_Cell_Array
ORA-06512: at "SDE.ST_GEOMETRY_SHAPELIB_PKG", line 943
ORA-06512: at "SDE.SPX_UTIL", line 2901
ORA-06512: at "SDE.SPX_UTIL", line 3146
ORA-06512: at "SDE.ST_DOMAIN_METHODS", line 291
29902. 00000 -  "error in executing ODCIIndexStart() routine"
*Cause:    The execution of ODCIIndexStart routine caused an error.
*Action:   Examine the error messages produced by the indextype code and
           take appropriate action.

Does anybody have any thoughts what could cause this ?
0 Kudos
4 Replies
VinceAngelo
Esri Esteemed Contributor
1) Have you applied any service packs (SP2 is terminal for 9.3.1) or patches to either environment?

2) Is the Unix version running the exact same SP/patch as on Windows?

3) Does the Oracle listener point to the same DLL as the LIBRARY paths within the instance?

- V
0 Kudos
IngaMeirane
Emerging Contributor
Windows and Unix versions both have SP2 installed.  I don't quite understand what do you mean by 'LIBRARY paths within the instance'? I guess i should mention that other ST_Shapelib functions (like st_area, st_min, st_max) on clients (Unix) server are working well.
I also ran such query trying to join different table (lets call it tableC), got the same error message. Then i tried to switch ST_Intersects arguments from ST_Intersects (c.Shape, a.Shape) to ST_Intersects (a.Shape, c.Shape) and query executed successfully, but unfortunately such change didn't work with tableB.
0 Kudos
VinceAngelo
Esri Esteemed Contributor
If it varies by table, you should make sure they all have spatial indexes constructed.

When ST_GEOMETRY is added to Oracle, a LIBRARY is created.  Incorrect or incompatible
library references (from an incorrect upgrade) could cause DLL errors.

The order of the parameters on an ST_INTERSECTS is important -- it dictates which
table's spatial index is used.

- V
0 Kudos
IngaMeirane
Emerging Contributor
Turns out that our client had forgotten to install Arcgis service packs on their machine, after they applied those the problem is gone. Thanks for your help!
0 Kudos