English

Error: ORA-13375 The layer is of type [string] while geometry inserted has type [string]

Error Message

When inserting features (geometries) into ArcSDE for Oracle 9i Spatial feature classes that have a spatial index that was created with the LAYER_GTYPE Oracle Spatial index creation keyword, the following error can occur:

"ORA-13375 The layer is of type [string] while geometry inserted has type [string]"

Cause

Several factors must be considered to understand why this error occurs.

1. When Oracle Spatial is used to create a spatial index in Oracle 9i, the LAYER_GTYPE Oracle Spatial index creation parameter can be used to constrain the table to contain only a certain type of geometry. When this constraint is in place, only that type of geometry, or nil geometry, can be inserted into the table. If another type of geometry is inserted, the ORA-13375 error is thrown. This constraint is imposed by the spatial index.

(Note: The meaning of this spatial index creation keyword changed from Oracle 8i to Oracle 9i. In Oracle 8i, it was used by Oracle Spatial to optimize index processing for point-only data.)

2. The representation of a nil geometry changed from Oracle 8i to Oracle 9i.

Oracle 8i: SDO_GEOMETRY(0, NULL, NULL, NULL, NULL)
Oracle 9i: SDO_GEOMETRY(NULL, NULL, NULL, NULL, NULL)

The representation of a nil geometry used by Oracle 8i is not recognized by Oracle 9i, and vice versa.

3. The ArcSDE ADDs table (part of the ArcSDE versioning architecture) is created with the same type of spatial index as the base table, including the LAYER_GTYPE Oracle Spatial index creation keyword. When a row is inserted into this table, it can, at first, contain a nil feature.

(Note: If versioning is not used, this error would occur anyway when the new nil geometry was inserted into the base table.)

4. ArcSDE 8.2 (and earlier) software uses the Oracle 8i representation of a nil geometry and recognizes the Oracle 8i meaning of the LAYER_GTYPE keyword.

Solution or Workaround

This is a known issue with ArcSDE. It will be fixed in an upcoming release.

In the meantime, avoid using the Oracle Spatial index creation parameter LAYER_GTYPE when creating Oracle Spatial tables for use with ArcSDE through SQL or third-party software.

ArcSDE does not use this parameter when creating spatial indexes unless the SDO_LAYER_GTYPE parameter is used in DBTUNE. Therefore, you should also avoid using this keyword in DBTUNE if you are not using Oracle 8i.