Вы можете использовать SQL для обновления, добавления и удаления данных в неверсионных таблицах базы геоданных, если они не участвуют в объектах поведения базы геоданных. Сведения о типах данных и поведении базы геоданных, которые нельзя редактировать с помощью SQL, доступны в разделе Какие типы данных могут редактироваться с помощью SQL?.
Все данные, которые были зарегистрированы в базе геоданных, имеют уникальное непустое управляемое системой поле ObjectID (Row ID). Вам необходимо предоставить уникальное значение для ObjectID, когда вы используете SQL для добавления записей в неверсионные таблицы в базе геоданных. Можете воспользоваться процедурой Next_RowID для вставки значения в поле ObjectID с помощью SQL.
Используйте функцию Next_RowID из пакета sde.gdb_util, чтобы создать новое, уникальное значение для ObjectID.
Функция Next_RowID использует два параметра: владелец таблицы и имя таблицы. Зная владельца таблицы и имя таблицы, можно создать выражение SQL для заполнения поля ObjectID.
- Войдите в базу данных из редактора SQL, например, SQL*Plus.
Выполните вход как пользователь с правами доступа на редактирование данных.
- Включите функцию 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) );
- Вы можете продолжить редактирование или, если вы закончили редактирование, внести изменения в базу данных (операция COMMIT).
Если таблица содержит поле GUID или Global ID, необходимо также указать уникальное значение в этом поле. Подробнее см. Next_GlobalID.