laptop and a wrench

Erro

"ORA-22308: operation not allowed on evolved type" occurs during the upgrade of the geodatabase when the ST_DOMAIN_METHODS type has evolved, specifically while upgrading from ArcGIS Server 10.6.1 to ArcGIS Server 10.8.1.

Última Publicação: April 22, 2021 ArcSDE/Enterprise Geodatabase
Número de ID do Erro BUG-000136908
EnviadoJanuary 21, 2021
Última ModificaçãoJuly 10, 2025
Aplica-se àArcSDE/Enterprise Geodatabase
Versão encontrada10.8.1
Sistema OperacionalN/A
Versão do Sistema OperacionalN/A
StatusWill Not Be Addressed

Informações Adicionais

We apologize for not being able to address this issue during the current product support cycle. If it continues to impact your work in a supported release, please contact Technical Support.

Solução Provisória

Note: both workarounds need confirmation from development before using.

Workaround 1: Reset the ST_DOMAIN_METHODS type after the 1st upgrade attempt.

1. Query the DBA_TYPE_VERSIONS table as sys to see the edits made to 'ST_DOMAIN_METHODS' that are raising the evloved type Oracle error.

 

SELECT * FROM DBA_TYPE_VERSIONS

WHERE Owner = 'SDE'

AND TYPE_Name = 'ST_DOMAIN_METHODS'

2. As the SDE user upgrade the geodatabase to ArcGIS 10.8.1 which is expected to fail.

3. In sqlplus as SDE alter the ST_DOMAIN_METHODS type to reset the version back to 1:

alter TYPE SDE."ST_DOMAIN_METHODS" reset

/

4. Query the DBA_TYPE_VERSIONS table as sys to see the decrease of the entries for the 'ST_DOMAIN_METHODS' and now there are 136 records.

 

SELECT * FROM DBA_TYPE_VERSIONS

WHERE Owner = 'SDE'

AND TYPE_Name = 'ST_DOMAIN_METHODS'

5. As the SDE user upgrade the geodatabase to ArcGIS 10.8.1 which successful this 2nd time.

Workaround 2: Drop and recreate the sde.ST_SPATIAL_INDEX indextype and the ST_DOMAIN_METHODS and ST_DOMAIN_STATS types.

1. Drop the existing ST_GEOMETRY spatial indexes in the SDE and Data (COB) Owner schemas.

  • Before dropping the indexes created two scripts. The first includes all the create statements for all the spatial indexes. The second script would include all the DROP statements for the spatial indexes using the information in the sde.ST_GEOMETRY_INDEXES table.

2. Get the ddl of the ST_SPATIAL_INDEX indextype: 

select dbms_metadata.get_ddl('INDEXTYPE','ST_SPATIAL_INDEX','SDE') from dual;

DBMS_METADATA.GET_DDL('INDEXTYPE','ST_SPATIAL_INDEX','SDE')           

--------------------------------------------------------------------------------

 CREATE OR REPLACE INDEXTYPE "SDE"."ST_SPATIAL_INDEX" FOR 

"SDE"."ST_BUFFER_INTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY", NUMBER),

"SDE"."ST_CROSSES" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

"SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

"SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", NUMBER, NUMBER, NUMBER, NUMBER),

"SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", NUMBER, NUMBER, NUMBER, NUMBER, VARCHAR2),

"SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY", VARCHAR2),

"SDE"."ST_EQUALS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

"SDE"."ST_INTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

"SDE"."ST_ORDERINGEQUALS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

"SDE"."ST_OVERLAPS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

"SDE"."ST_RELATE" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY", VARCHAR2),

"SDE"."ST_TOUCHES" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

"SDE"."ST_WITHIN" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY")

USING "SDE"."ST_DOMAIN_METHODS" 

WITHOUT ARRAY DML

WITH LOCAL RANGE PARTITION   

3. Drop the existing ST_SPATIAL_INDEX indextype.

drop indextype sde.ST_SPATIAL_INDEX;

4. Drop the existing ST_DOMAIN_METHODS and ST_DOMAIN_STATS types.

DISASSOCIATE STATISTICS FROM PACKAGES SDE.st_domain_operators;

drop type sde.ST_DOMAIN_METHODS;

drop type SDE.ST_DOMAIN_STATS force;

5. Re-generate ST_DOMAIN_METHODS and ST_DOMAIN_STATS using the SQL Libraries that come with the ArcGIS Desktop install and grant the appropriate privileges. (Note: By default, the libraries can be found in C:\Program Files (x86)\ArcGIS\Desktop10.6\lib).

To recreate the types as SDE:

​SQLPLUS sde/<password>@<host>/<db_name>

start '<lib_directory>\st_domain_stats.sts' SDE

start '<lib_directory>\st_domain_stats.stb' SDE

start '<lib_directory>\st_domain_methods.sts' SDE

start '<lib_directory>\st_domain_methods.stb' SDE

6. Grant appropriate privileges on the types: ​

grant EXECUTE on sde.ST_DOMAIN_METHODS to public;

grant EXECUTE on sde.ST_DOMAIN_STATS to public;

grant EXECUTE on sde.spx_util to public;

7. Re-create the ST_SPATIAL_INDEX indextype using the ddl obtained in step 2.

 CREATE OR REPLACE INDEXTYPE "SDE"."ST_SPATIAL_INDEX" FOR 

"SDE"."ST_BUFFER_INTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY", NUMBER),

"SDE"."ST_CROSSES" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

"SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

"SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", NUMBER, NUMBER, NUMBER, NUMBER),

"SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", NUMBER, NUMBER, NUMBER, NUMBER, VARCHAR2),

"SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY", VARCHAR2),

"SDE"."ST_EQUALS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

"SDE"."ST_INTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

"SDE"."ST_ORDERINGEQUALS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

"SDE"."ST_OVERLAPS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

"SDE"."ST_RELATE" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY", VARCHAR2),

"SDE"."ST_TOUCHES" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

"SDE"."ST_WITHIN" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY")

USING "SDE"."ST_DOMAIN_METHODS" 

WITHOUT ARRAY DML

WITH LOCAL RANGE PARTITION   

8. Grant appropriate privileges on the indextype: ​

GRANT EXECUTE ON sde.ST_SPATIAL_INDEX TO PUBLIC;

​9. Compile the SDE objects to ensure there are no invalid objects

exec sys.utl_recomp.recomp_serial('SDE');

10. Re-create the ST_GEOMETRY spatial indexes.

Execute the sql created in step 1 i.e. Create_spatial_indexes.sql

11. After recreating all the above database object types and the spatial indexes you can connect to the database first and confirm that all the indexes drawing, rebuilding and creation is successful as the data owner.

12. Once you've confirmed everything is working successfully you can connect to the geodatabase as SDE from ArcCatalog 10.8.1 and upgrade the geodatabase.

Etapas para Reproduzir

ID do Erro: BUG-000136908

Software:

  • ArcSDE/Enterprise Geodatabase

Seja notificado quando o status de um erro mudar

Baixe o Aplicativo de Suporte da Esri

Descubra mais sobre este tema

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com Suporte Técnico

Baixe o Aplicativo de Suporte da Esri

Ir para as opções de download