Bug: Unable to define a query layer in ArcGIS where the data source uses an st_geometry subtype in Oracle
Description
When attempting to define a query layer in ArcGIS Desktop, one can encounter the following Oracle error:
Error: ORA-21500: internal error code, arguments: [%s],[%s],[%s],[%s],[%s],[%s],[%s],[%s]The error is encountered when the table's geometry attribute is st_geometry and is either defined as a subtype (st_point, st_polygon, st_linestring, etc.) or the st_geometry attribute values were created using a subtype constructor (st_point, st_pointfromtext, etc.).
Cause
When ArcGIS accesses the query layer, the binding used in Oracle to fetch the geometry binds an st_geometry type. Because the attribute or values returned from the attribute do not map to st_geometry, the Oracle internal error is encountered.
By definition, a type binding should support its subtype definitions. This limitation is currently a bug within Oracle's server.
Workaround
Convert the geometry attribute field from the subtype (for example, st_point) to the supertype st_geometry.
If the attribute is already st_geometry, convert any geometry values which were created with a subtype to st_geometry, by using the st_geometry constructor.
Related Information
- Metalink Note (Oracle Web site, login required)
- Bug NIM063576
- Bug: Underlying Oracle DBMS error ORA-21500 with ST_Geometry attributes
- ArcGIS Desktop Help: ST_Geometry
- ArcGIS Desktop Help: ST_Geometry in Oracle
Last Published : 9/24/2019
Article ID: 000011333
Software: ArcMap 10.4.1, 10.4, 10.3.1, 10.3, 10.2.2, 10.2.1, 10.2, 10.1, 10