Настройка базы геоданных для доступа к пространственным данным внешних клиентов |
Данный пункт выполняется, когда база геоданных ArcSDE уже развёрнута в БД Oracle. Для обеспечения возможности доступа внешних клиентов к базе геоданных необходимо выполнить подключение и настройку библиотеки ST_SHAPELIB.DLL. Данная библиотека предоставляется в составе продуктов ArcGIS и предназначена для работы с форматом пространственных данных St_Geometry (ArcSDE). Перед выполнением настройки библиотеки ST_SHAPELIB.DLL в БД Oracle она должна быть размещена на сервере СУБД Oracle, и должны быть выполнены определённые настройки в конфигурационных файлах СУБД Oracle (см. раздел Настройка сервера БД Oracle). После этого в отношении базы данных Oracle, в которой размещена база геоданных ArcSDE, следует выполнить следующие действия. Предполагается, что база геоданных ArcSDE создана в базе данных Oracle в схеме пользователя SDE. Для выполнения приведённых ниже команд используется любой интерпретатор SQL-запросов Oracle. Например, Oracle SQL Developer.
GRANT EXECUTE ON dbms_pipe TO SDE; GRANT EXECUTE ON dbms_lock TO SDE; GRANT EXECUTE ON dbms_lob TO SDE; GRANT EXECUTE ON dbms_utility TO SDE; GRANT EXECUTE ON dbms_sql TO SDE; GRANT EXECUTE ON utl_raw TO SDE; GRANT EXECUTE ON utl_recomp TO sde; GRANT CREATE LIBRARY TO SDE; GRANT EXECUTE ON DBMS_CRYPTO TO SDE.
SELECT * FROM user_libraries WHERE LIBRARY_NAME='ST_SHAPELIB';
Проверка корректности пути к внешней библиотеке:
CREATE or REPLACE LIBRARY ST_SHAPELIB AS 'C:\\ArcGIS\\st_shapelib.dll'; или, если сервер работает под управлением ОС Linux или UNIX: CREATE or REPLACE LIBRARY ST_SHAPELIB AS ' /user/arcgis/libst_shapelib.so';
ALTER PACKAGE sde.st_geometry_shapelib_pkg COMPILE REUSE SETTINGS; EXEC dbms_utility.compile_schema( 'SDE' );
SELECT object_name FROM user_objects WHERE status = 'INVALID';
Проверка отсутствия некорректно зарегистрированных объектов:
Объектов, имеющих статус 'INVALID', быть не должно. Тем более не должно быть статуса 'INVALID' у пользовательского типа данных St_Geometry.
Например: SELECT SDE.ST_AsText( SDE.ST_GeomFromWKB ( SDE.ST_AsBinary( SDE.ST_GeomFromText ( 'POINT(334895.21690000 2326812.63830000)', 3405)), 3405)) as MYTEST FROM DUAL;
Запрос должен отработать без ошибок.
Проверка работоспособности функций подключённой библиотеки:
Если итоговые проверки говорят о том, что библиотека ST_SHAPELIB подключена к БД Oracle некорректно, следует повторить все шаги с самого начала, руководствуясь дополнительной документацией по размещению баз геоданных ArcGIS в Oracle.
|