FAQ: How does ArcSDE handle SDO_GEOMETRY containing type 0 application-specific elements?


How does ArcSDE handle SDO_GEOMETRY containing type 0 application-specific elements?


Oracle Spatial and Oracle Locator geometries stored in SDO_GEOMETRY are usually composed of primitive elements: points, lines, and polygons. Applications may also create special purpose geometries, by inserting application-specific elements combined with at least one primitive element. Application-specific elements are used to represent information that cannot be represented using the primitive elements. An example of special purpose geometry is one that represents a utility pole. The pole location and height could be represented with the pole location in a point element, and the pole height, type, or composition in an application-specific element.

Application-specific elements are known as type 0 elements. They are elements that have SDO_ETYPE values of zero that are found in the SDO_ELEM_INFO member of the SDO_GEOMETRY type.

The purpose of any type 0 element is generally known only to the application that created it. It is impossible for other applications to correctly guess the meaning of these elements. Consequently, other applications usually cannot display or modify geometries with type 0 elements that they did not create themselves. Applications that create such geometries typically preclude their data from being shared, except with applications that understand the meaning of these particular type 0 elements. Type 0 elements are ignored by Oracle Spatial functions, and are not spatially indexed. A numeric interpretation value is included in each type 0 element and can be any numeric value. The application is responsible for the meaning and validity of these interpretation values.

ArcSDE does not encode any geometry using type 0 elements. ArcSDE ignores any type 0 elements in geometries it encounters. ArcSDE does not forward the type 0 elements of geometries to ArcSDE client applications, but it does forward the primitive elements. For example, if a geometry contains a point element and a type 0 element, the point element would be forwarded as a point geometry to the client application.

If ArcSDE is used to update tables with geometries containing type 0 elements, those elements will not be preserved after editing, even if only the attribute columns are edited. Therefore, in situations where type 0 elements must be preserved, ArcSDE administrators must make sure that users don't have UPDATE privileges on tables that contain these geometries. Newly inserted geometries do not contain type 0 elements.

Prior to ArcSDE 8.1 Service Pack 1, ArcSDE rejected any geometry containing type 0 elements. The service pack and later versions of ArcSDE behave as described above. If necessary, see the Related Information to download the service pack.

For more information about the Oracle Spatial schema, please refer to the Oracle Spatial Users Guide and Reference.

Related Information