Original User: camilopenuelaun
I try to perform an intersection between a polygon layer and a point by executing this query:
select ci.ID_LAYER from LAYER_INTERSETCION ci where sde.st_intersects (ci.SHAPE, sde.st_geometry('POINT ( ' || TO_CHAR(-74.05132048299964,'99999D99999','NLS_NUMERIC_CHARACTERS = ''.,'' ') || ' ' || TO_CHAR(4.6735023130004265,'99999D99999','NLS_NUMERIC_CHARACTERS = ''.,'' ') || ' )', 2)) = 1
The database server is Oracle 11g2 64 bits, running under Ms Windows 7 professional, ArcSde 10, I'm sure this query is right because I executed it in another server with the same oracle and arcsde (Ms Windows Server 2008 R2 64 bits), and it works fine.
The returned message is:
Error SQL: ORA-29902: error al ejecutar la rutina ODCIIndexStart()
ORA-01405: el valor de la columna recuperada es NULL
ORA-06512: en "SDE.ST_GEOMETRY_SHAPELIB_PKG", línea 943
ORA-06512: en "SDE.SPX_UTIL", línea 2925
ORA-06512: en "SDE.SPX_UTIL", línea 3190
ORA-06512: en "SDE.ST_DOMAIN_METHODS", línea 296
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.
I tried to solve this by installing the arcsde service pack 5, initially, after the installation, the arcsde service couldn't start, the message was:
Error starting esri_sde service(0)
Could not start ArcSDE -- Check Network, $SDEHOME disk, DBMS settings and dbinit.sde
I uninstalled and reinstalled arcsde and the service pack several times, finally the service could start, however the problem persists.
---
Edit: I fixed it by uninstalling and making a clean install of oracle, arcsde and its service pack.