Создание дополнительных программных объектов в базе геоданных |
Выполнение данного пункта требуется только для баз геоданных, в которые предполагается запись данных внешними клиентами, не являющимися продуктами ArcGIS. Если база геоданных будет предоставляться внешним клиентам только на чтение, данный пункт можно пропустить. Поле OBJECTID, предопеределенное для всех таблиц с пространственными данными в базе геоданных, пре дназначено для ведения уникального идентификатора записи. Это поле в зависимости от исходных настроек базы геоданных может быть автоинркементным (заполняемым для новых записей автоматически). Но, как правило, за формирование новых значений в этом поле отвечает приложение ArcGIS, то есть автоматического заполнения нет. При создании новых записей в таблицах пространственных данных внешними клиентами, не являющимися приложениями семейтсва ArcGIS, необходимо реализовать получение нового значения для поля OBJECTID. Чтобы получение нового значения для поля OBJECTID как внешними клиентами, так и приложениями ArcGIS выполнялось по одним правилам, в базе данных Oracle создаются триггеры на каждой таблице пространственных данных, зарегистрированной в базе геоданных. Функция триггера – сформировать новое значение для поля OBJECTID, если при добавлении новой записи это значение не было задано. При формировании нового значения для поля OBJECTID в триггерах используется штатная функция NEXT_ROWID базы геоданных из пакета GDB_UTIL. Для создания необходимых триггеров необходимо подключится к базе данных Oracle, в которой развернута база геоданных, от имени пользователя SDE, и выполнить SQL-скрипт make_triggers_for_objectid.sql (например, с помощью приложения Oracle SQL Developer). |