Error: ORA-29900: operator binding does not exist
If the st_geometry type or operators are not fully qualified with the SDE owner and Oracle spatial is installed in the Oracle database, the following Oracle error is returned:
"ORA-29900: operator binding does not exist"
SQL> SELECT COUNT(DISTINCT objectid)
2 FROM service_pnts, water
3 WHERE st_intersects (service_pnts.shape,water.shape) = 1;
WHERE st_intersects (service_pnts.shape,water.shape) = 1
ERROR at line 3:
ORA-29900: operator binding does not exist
ORA-06553: PLS-306: wrong number or types of arguments in call to 'SDO_ANYINTERACT'
If the st_geometry operator is not fully qualified when public synonyms for the st_geometry type and operators do not exist, and Oracle spatial is installed in the Oracle database, Oracle maps st_geometry operators to its own st_geometry type owned by the MDSYS user.
Solution or Workaround
Always fully qualify all st_geometry operators with the type and operator owner SDE, for example, sde.st_point or sde.st_intersects.
- What are the best practices for writing SQL in Oracle with ST_Geometry attributes?
- ORA-00932: inconsistent datatypes: expected SDE.ST_GEOMETRY got MDSYS.ST_POINT