Skip to main content

Добавление типа ST_Geometry в базу данных Oracle

Доступно с лицензией Standard или Advanced.

Администратор базы данных может добавить тип Esri ST_Geometry, подтип и функции в базу данных Oracle с помощью инструмента геообработки Создать пространственный тип или скрипта Python, который вызывает функцию ArcPy CreateSpatialType.

После добавления типа ST_Geometry в свою базу данных вы можете использовать его для хранения пространственных данных.

И инструмент, и функция создают пользователя sde в базе данных. Пользователь sde является владельцем типа ST_Geometry, подтипов, функций и таблиц.

Примечание:

При развертывании на сервере Microsoft Windows, для библиотеки ST_Geometry требуется Microsoft Visual C++ Redistributable Package (x64). См. Требования ArcGIS к базе данных Oracle, чтобы узнать о требующейся версии пакета. Если данный пакет отсутствует на сервере, загрузите его с сайта Microsoft и установите.

Используйте инструмент геообработки Создать пространственный тип

Чтобы запустить инструмент геообработки Создать пространственный тип для установки типа ST_Geometry в базе данных Oracle, выполните следующие шаги:

  1. Загрузите библиотеку st_shapelib (Windows) или libst_shapelib (Linux) из My Esri и переместите ее в местоположение на сервере Oracle.

    Используйте библиотеку, соответствующую операционной системе вашего сервера Oracle.

    Директория на сервере, где расположена библиотека, должна быть доступна с клиентских компьютеров, с которых запускается инструмент Создать пространственный тип или скрипт. Если вы размещаете библиотеку на компьютере с UNIX или Linux, убедитесь, что администратор базы данных имеет права на чтение директории и права на запуск файла библиотеки.

    Если опция загрузки отсутствует, свяжитесь с администратором вашей организации ArcGIS.

  2. Откройте проект в ArcGIS Pro, откройте панель Каталог и подключитесь к базе данных в качестве системного администратора базы данных Oracle sys.

    Файл подключения к базе данных (.sde) создан в вашей папке проекта.

  3. Откройте инструмент геообработки Создать пространственный тип.

    Вы можете воспользоваться окном Поиск, чтобы найти инструмент или открыть его из группы инструментов Рабочая область набора инструментов Управление данными.

  4. Добавьте подключение к базе данных, созданное на шаге 2, в текстовое поле параметра Входное подключение к базе данных.

  5. Введите пароль пользователя базы данных sde в поле параметра Пароль пользователя SDE.

  6. При необходимости в текстовом поле параметра Имя табличного пространства укажите имя табличного пространства, которое будет использоваться в качестве табличного пространства пользователя sde по умолчанию.

    Инструмент Создать пространственный тип создает табличное пространство объемом 400 Mб в местоположении хранилища по умолчанию Oracle. Чтобы контролировать местоположение или размер табличного пространства, сначала создайте табличное пространство в Oracle и укажите существующее табличное пространство в параметре Имя табличного пространства. Инструмент сделает это существующее рабочее пространство используемым по умолчанию для пользователя sde.

  7. Для параметра Путь к библиотеке геометрии ST_Geometry укажите путь к директории на сервере Oracle, где вы разместили файл libst_shapelib.so или st_shapelib.dll, включая имя файла.

    Например, если вы разместили файл libst_shapelib.so в директории libraries на сервере Linux с именем boxy, вам нужно ввести /boxy/libraries/libst_shapelib.so.

  8. Щелкните Запустить.

Тип ST_Geometry, подтипы и функции создаются в схеме пользователя SDE, а в Oracle создается запись для библиотеки геометрии.

Если вы планируете использовать функцию ST_Transform для выполнения географических преобразований, вы должны скопировать папку pedata из директории установки ArcGIS Pro, разместить ее на сервере Oracle и установить переменную среды PEDATAHOME на сервере, которая указывает на это местоположение.

Использование функций Arcpy

На любом компьютере с ArcGIS Pro или ArcGIS Server используйте функцию ArcPy CreateDatabaseConnection для создания файла подключения к базе данных (.sde), который подключается к базе данных Oracle от имени пользователя Oracle sys. Затем используйте файл .sde и функцию ArcPy CreateSpatialType для создания типа Esri ST_Geometry, подтипа и функций в базе данных.

  1. Загрузите библиотеку st_shapelib (Windows) или libst_shapelib (Linux) из My Esri и переместите ее в местоположение на сервере Oracle.

    Убедитесь, что вы используете библиотеку, соответствующую операционной системе вашего сервера Oracle.

    Директория на сервере, где расположена библиотека, должна быть доступна с клиентских компьютеров, с которых запускается скрипт. Если вы размещаете библиотеку на компьютере с UNIX или Linux, убедитесь, что администратор базы данных имеет права на чтение директории и права на запуск файла библиотеки.

  2. Запустите функцию CreateDatabaseConnection для создания файла .sde.

    Вы должны подключиться от имени пользователя Oracle sys и сохранить учетные данные.

    В следующем примере файл подключения с именем dbadminconnection создается в директории с именем TempFiles. Экземпляр Oracle — oserve, а учетные данные пользователя sys предоставлены и сохранены вместе с файлом.

    import arcpy
    arcpy.management.CreateDatabaseConnection(
       "/user/TempFiles",
       "dbadminconnection.sde",
       "ORACLE",
       "oserve/ORCL",
       "DATABASE_AUTH",
       "sys",
       "D0B3tt3r",
       "SAVE_USERNAME"
    )
    
  3. Запустите функцию ArcPy CreateSpatialType для установки типа ST_Geometry в базе данных Oracle.

    В этом примере используется файл подключения из предыдущего шага. Пароль и табличное пространство предоставлены для пользователя SDE (pw0rd4sde и sdetblsp соответственно). Указано местоположение библиотеки ST_Geometry.

    import arcpy
    arcpy.management.CreateSpatialType(
       "suserconnection.sde",
       "pw0rd4sde",
       "sdetblsp",
       "/net/oserve/ora/shape/libst_shapelib.so"
    )
    

Тип ST_Geometry, подтипы и функции создаются в схеме пользователя SDE, а в Oracle создается запись для библиотеки геометрии.

Если вы планируете использовать функцию ST_Transform для выполнения географических трансформаций, вы должны скопировать папку pedata из директории установки ArcGIS Pro, разместить ее на сервере Oracle и установить переменную среды PEDATAHOME на сервере, которая указывает на это местоположение.