ArcGIS Desktop

  • Документация
  • Поддержка

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

Вызовы функции ST_Geometry

  • PostgreSQL
  • Oracle
  • SQLite

Функции ST_Geometry в Oracle и PostgreSQL реализованы в языке структурированных запросов (SQL). Это язык уровня базы данных. В Oracle это процедурный язык структурированных запросов (PL/SQL). В PostgreSQL – это PL/pgSQL.

При осуществлении доступа к столбцам ST_Geometry в базе данных Oracle либо PostgreSQL с использованием функций SQL вы обращаетесь к базе данных напрямую, поэтому в базе данных должен быть доступ к функциям ST_Geometry. В Oracle база данных также запускает процесс extproc.

В SQLite функции ST_Geometry реализованы в C в библиотеке ST_Geometry. Вы должны обращаться к библиотеке ST_Geometry, чтобы использовать функции ST_Geometry.

PostgreSQL

Библиотека st_geometry должна находиться в директории установки PostgreSQL, чтобы позволить PostgreSQL получить доступ к функциям ST_Geometry. Вам необходимо скопировать файл st_geometry.dll (Windows) в папку lib в директории установки PostgreSQL. На сервере Linux: скопируйте файл st_geometry.so (Linux) в директорию /usr/lib/pgsql на сервере PostgreSQL. Оба этих файла находятся в папке DatabaseSupport для установленного клиентского приложения ArcGIS.

Oracle

Функции реализованы на языке PL/SQL, который вызывает функции из внешних файлов совместно используемых библиотек, написанных на языке программирования C. Функции вызываются из PL/SQL по псевдониму, который представляет собой соответствие между названием библиотеки – в случае с ST_Geometry в Oracle это ST_SHAPELIB – и именем файла библиотеки. (Для получения более подробных сведений о команде Oracle CREATE LIBRARY см. документацию). Когда в первый раз вызывается функция пространственного типа, для которой требуется ST_SHAPELIB, база данных запрашивает listener запустить процесс extproc для сессии SQL. Процессу extproc сообщается расположение ST_SHAPELIB, имя функции, которую необходимо вызвать, и ее параметры. Процесс extproc загружает ST_SHAPELIB и вызывает функцию. Когда внешняя функция завершает работу, extproc возвращает результаты и продолжает работать, ожидая новых вызовов функции во время текущей сессии. Процесс extproc завершается по завершении сессии SQL.

Для того чтобы данный механизм работал, необходима следующая конфигурация:

  • Базе данных необходимо знать расположение файла с библиотекой ST_SHAPELIB, чтобы отправить эту информацию listener и далее – процессу extproc.
  • Если file_spec для библиотеки ST_SHAPELIB в таблице user_libraries не соответствует физическому местоположению файла ST_SHAPELIB на сервере, операторы и функции ST_Geometry не будут работать. Поэтому необходимо с помощью команды CREATE LIBRARY обновить определение библиотеки в пользовательских библиотеках Oracle, чтобы в них указывался правильный путь к файлу, содержащему ST_SHAPELIB.
    Примечание:

    Изменение определения пути библиотеки делает некорректными содержимое пакетов, которые связаны с ней; поэтому содержимое пакетов некоторых встроенных процедур ArcSDE должно быть перекомпилировано с использованием Oracle.

  • База данных должна знать о сервисе, обрабатывающем запросы и передающем их процессу extproc. Эта настройка сохраняется в файле tnsnames.ora.
  • Процессу extproc должно быть разрешено загружать файл, содержащий ST_SHAPELIB. Это делается путем определения переменной среды EXTPROC_DLLS в файле listener.ora (Oracle 10g) или в файле extproc.ora (Oracle 11g).
  • Пользователь extproc (обычно запускаемый из-под пользователя, который владеет ORACLE_HOME) должен иметь права на чтение для того расположения, где находятся файлы библиотеки, и права доступа на выполнение этих файлов.
  • Если вы изменили файл listener.ora, необходимо перезапустить процесс listener.

SQLite

Необходимо указать расположение и загрузить библиотеку ST_Geometry, чтобы SQLite-клиент мог получить доступ к функциям SQL. Вы можете указать местоположение библиотеки в клиентских системных переменных PATH (Windows) или LIBPATH (Linux) при загрузке библиотеки либо ввести путь при загрузке библиотеки ST_Geometry. Для получения инструкций см. раздел Загрузка библиотеки SQLite ST_Geometry.

Связанные разделы

  • Настройка Oracle extproc для доступа к базе геоданных с использованием SQL

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог сотрудников
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2017 Esri. | Конфиденциальность | Правовая информация