Редактирование неверсионных данных в базе геоданных в Oracle с использованием SQL

Вы можете использовать SQL для обновления, добавления и удаления данных в неверсионных таблицах базы геоданных, если они не участвуют в объектах поведения базы геоданных. Сведения о типах данных и поведении базы геоданных, которые нельзя редактировать с помощью SQL, доступны в разделе Какие типы данных могут редактироваться с помощью SQL?.

ПримечаниеПримечание:

Если для неверсионной таблицы, предназначенной для редактирования с помощью SQL, включено архивирование, можно вместо самой таблицы редактировать ее архивное представление. Представление автоматически обновит конкретные поддерживаемые ArcGIS поля. См. раздел Что такое архивное представление и связанные с ним разделы для получения подробной информации.

Все данные, которые были зарегистрированы в базе геоданных, имеют уникальное непустое управляемое системой поле ObjectID (Row ID). Вам необходимо предоставить уникальное значение для ObjectID, когда вы используете SQL для добавления записей в неверсионные таблицы в базе геоданных. Можете воспользоваться процедурой Next_RowID для вставки значения в поле ObjectID с помощью SQL.

Используйте функцию Next_RowID из пакета sde.gdb_util, чтобы создать новое, уникальное значение для ObjectID.

Функция Next_RowID использует два параметра: владелец таблицы и имя таблицы. Зная владельца таблицы и имя таблицы, можно создать выражение SQL для заполнения поля ObjectID.

ПримечаниеПримечание:

Следующее доступное значение ObjectID необязательно является следующим последовательным числом после последнего добавленного ObjectID. ObjectID для некоторых пользовательских приложений присваивается пакетно, поэтому следующий доступный ObjectID может быть намного больше, чем последний использованный идентификатор. Также, любые неиспользованные идентификаторы ObjectID из пакетов возвращаются в общее множество доступных значений, что означает, что следующее доступное значение ObjectID может на самом деле быть меньшим числом, чем последний добавленный вами идентификатор.

Шаги:
  1. Войдите в базу данных из редактора SQL, например, SQL*Plus.

    Выполните вход как пользователь с правами доступа на редактирование данных.

  2. Включите функцию sde.gdb_util.next_rowid с именами владельца и таблицы в выражение INSERT, чтобы заполнить поле ObjectID следующим доступным значением.

    В данном примере линейный сегмент ST_Geometry добавляется в класс объектов STREAMS.

    INSERT INTO eng2.streams (OBJECTID,NAME,SHAPE) 
     VALUES (
      sde.gdb_util.next_rowid('ENG2', 'STREAMS'), 
      'TRANQUIL', 
      sde.ST_GEOMETRY('linestring (750 150, 750 750)', 4326) 
     );
    
  3. Вы можете продолжить редактирование или, если вы закончили редактирование, внести изменения в базу данных (операция COMMIT).

Если таблица содержит поле GUID или Global ID, необходимо также указать уникальное значение в этом поле. Подробнее см. Next_GlobalID.

Связанные темы

5/25/2014