The vendor of our web mapping system uses syntax containing the identifier SDO_GEOM.SDO_GEOMETRY and similar. A simplified example using the SDO point constructor as in ...
select sdo_geom.sdo_geometry(2001, 81989, sdo_geom.sdo_point_type(531599, 184530, null), null, null) from dual;
This syntax stopped working in the TEST database after I applied the April 2015 CPU patches. It generates an ORA-00904: "SDO_GEOM"."SDO_GEOMETRY": invalid identifier, which in fact I would have expected. The SDO_GEOM package in the the MDSYS schema, often referenced without the schema qualifier through the public synonym, does not contain a type or function SDO_GEOMETRY. I have never used that syntax and would have written instead ...
select mdsys.sdo_geometry(2001, 81989, mdsys.sdo_point_type(531599, 184530, null), null, null) from dual;
.. which of course continues to work. However, to my surprise, I found that the vendor's syntax, which generates the ORA-00904 in all post-patch databases, works perfectly well in all our pre-patch databases.
The same applies to all other types in the MDSYS schema (SDO_ELEM_INFO_ARRAY, SDO_ORDINATE_ARRAY ...).
I face the odd situation where I not only don't understand why something stopped working; first of all I don't understand why the vendor's syntax ever worked.
We are using Oracle 11.2.0.4 EE with Oracle Spatial on Windows Server 2008 R2 64-bit. The patches that were applied areĀ
1) Patch 20544696: WINDOWS DB BUNDLE PATCH 11.2.0.4.15
2) Patch 20225988: WINDOWS ORACLE JAVAVM COMPONENT BUNDLE PATCH 11.2.0.4.3
Regards,
Torsten