Registrace Oracle pohledu s geodatabází

20. 4. 2019
  • ArcGIS 10.5
  • ArcGIS 10.6
  • ArcGIS 10.7
  • ArcGIS Pro 2.1
  • ArcGIS Pro 2.2
  • ArcGIS Pro 2.3

Od verze ArcGIS Desktop 10.5 lze nástroji geoprocessingu (nejen v ArcGIS Desktop, ale i v ArcGIS Pro) registrovat s SDE geodatabází nejen tabulky, ale i pohledy. Registrovat pohled je možné, pokud obsahuje pouze podporované datové typy, má maximálně jeden sloupec s geometrií, maximálně jeden typ geometrie, jeden souřadnicový systém a jeden unikátní sloupec jako ID (s vlastností not null). Při registraci pohledu v databázi Oracle lze však narazit na chybu, i když se data pohledu dají s daným připojením bez problému zobrazit:

ERROR 999999: Something unexpected caused the tool to fail. Contact Esri Technical Support (http://esriurl.com/support) to Report a Bug, and refer to the error help for potential solutions or workarounds.
Underlying DBMS error
Failed to execute (RegisterWithGeodatabase).

Příčin tohoto chybového hlášení v této situaci může být několik. Jedna z těch nejčastějších však je, že se pohled skládá i z dotazu do tabulek mimo schéma vlastníka pohledu, do nichž mu je povolen přístup příkazem:

GRANT SELECT ON jmeno_tabulky_referencovane_v_pohledu TO jmeno_vlastnika_pohledu;

Při pokusu o registraci dojde při udělování práva pro čtení z pohledu administrátorovi SDE k výjimce:

ORA-01720: grant option does not exist for 'OWNER_SCHEMA.TABLE_NAME'

Přenos práv pro čtení z pohledu je tedy tímto způsobem neproveditelný. Podrobně je tato problematika popsána ve článku o problematice udělování práv k pohledu na stránkách Oracle.

Celý problém má naštěstí jednoduché řešení – udělit práva k tabulce pohledu pomocí výrazu WITH GRANT OPTION (uživatel může práva předávat dále):

GRANT SELECT ON jmeno_tabulky_referencovane_v_pohledu TO jmeno_vlastnika_pohledu WITH GRANT OPTION;

S takto přidělenými právy lze registraci pohledu s geodatabází provést.

Autor: Martin Král