Добавление типа 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, выполните следующие шаги:
Загрузите библиотеку
st_shapelib(Windows) илиlibst_shapelib(Linux) из My Esri и переместите ее в местоположение на сервере Oracle.Используйте библиотеку, соответствующую операционной системе вашего сервера Oracle.
Директория на сервере, где расположена библиотека, должна быть доступна с клиентских компьютеров, с которых запускается инструмент Создать пространственный тип или скрипт. Если вы размещаете библиотеку на компьютере с UNIX или Linux, убедитесь, что администратор базы данных имеет права на чтение директории и права на запуск файла библиотеки.
Если опция загрузки отсутствует, свяжитесь с администратором вашей организации ArcGIS.
Откройте проект в ArcGIS Pro, откройте панель Каталог и подключитесь к базе данных в качестве системного администратора базы данных Oracle sys.
Файл подключения к базе данных (
.sde) создан в вашей папке проекта.Откройте инструмент геообработки Создать пространственный тип.
Вы можете воспользоваться окном Поиск, чтобы найти инструмент или открыть его из группы инструментов Рабочая область набора инструментов Управление данными.
Добавьте подключение к базе данных, созданное на шаге 2, в текстовое поле параметра Входное подключение к базе данных.
Введите пароль пользователя базы данных sde в поле параметра Пароль пользователя SDE.
При необходимости в текстовом поле параметра Имя табличного пространства укажите имя табличного пространства, которое будет использоваться в качестве табличного пространства пользователя sde по умолчанию.
Инструмент Создать пространственный тип создает табличное пространство объемом 400 Mб в местоположении хранилища по умолчанию Oracle. Чтобы контролировать местоположение или размер табличного пространства, сначала создайте табличное пространство в Oracle и укажите существующее табличное пространство в параметре Имя табличного пространства. Инструмент сделает это существующее рабочее пространство используемым по умолчанию для пользователя sde.
Для параметра Путь к библиотеке геометрии ST_Geometry укажите путь к директории на сервере Oracle, где вы разместили файл
libst_shapelib.soилиst_shapelib.dll, включая имя файла.Например, если вы разместили файл
libst_shapelib.soв директорииlibrariesна сервере Linux с именем boxy, вам нужно ввести /boxy/libraries/libst_shapelib.so.Щелкните Запустить.
Тип 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, подтипа и функций в базе данных.
Загрузите библиотеку
st_shapelib(Windows) илиlibst_shapelib(Linux) из My Esri и переместите ее в местоположение на сервере Oracle.Убедитесь, что вы используете библиотеку, соответствующую операционной системе вашего сервера Oracle.
Директория на сервере, где расположена библиотека, должна быть доступна с клиентских компьютеров, с которых запускается скрипт. Если вы размещаете библиотеку на компьютере с UNIX или Linux, убедитесь, что администратор базы данных имеет права на чтение директории и права на запуск файла библиотеки.
Запустите функцию
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" )Запустите функцию 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 на сервере, которая указывает на это местоположение.