Добавление значения в столбец global ID или GUID в Oracle с использованием SQL
Типы данных global ID и GUID содержат реестр строк стилей (registry style strings), состоящий из 36 символов, заключенных в круглые скобки. Эти строки уникально определяют объект или запись таблицы внутри и вне базы геоданных. Global ID используются для поддержки уникальности записей в односторонней или двусторонней репликах базы геоданных. Идентификаторы GUID могут добавляться к любому слою.
Однако если таблица, которую вы хотите отредактировать, участвует в репликации или содержит столбец GUID, то вам необходимо вставить уникальное значение в столбец global ID или GUID, когда вы добавляете новую запись в таблицу, используя SQL. Чтобы сделать это, используйте утилиту sde.version_user_ddl.retrieve_guid. При редактировании неверсионной таблицы, вы можете добавлять идентификатор (ID) непосредственно в таблицу. При редактировании версионной таблицы, используйте утилиту sde.version_user_ddl.retrieve_guid для добавления значения в столбец GUID или Global ID, в версионном представлении таблицы с помощью SQL.

Глобальные идентификаторы (global ID) можно добавить в класс пространственных объектов в окне Каталог (Catalog), щелкнув правой кнопкой мыши на наборе данных и выбрав Добавить Global IDs (Add Global IDs). После этого база геоданных будет автоматически поддерживать эти значения при редактировании в ArcGIS.
- Если вы редактируете версионную таблицу, используя ArcGIS 10.1 или выше, то для этой таблицы в базе геоданных уже существует версионное представление. Имя представления будет иметь имя таблицы с добавлением _vw. Если версионного представления еще нет, то его можно создать в ArcGIS for Desktop. Инструкции см. в разделе Создание версионных представлений из ArcGIS for Desktop
- Откройте SQL редактор, например SQL*Plus.
-
Подключитесь к базе данных, как пользователь с правами для редактирования таблицы.
Если вы выполняете редактирование с помощью версионного представления, пользователь должен также иметь права на редактирование представления.
-
Если сама таблица или таблица, на которой основано представление, содержит столбец ST_Geometry, создайте запрос к таблице ST_GEOMETRY_COLUMNS, чтобы найти её ID (SRID) пространственной привязки.
SELECT srid FROM sde.st_geometry_columns WHERE table_name='MYTABLE' AND owner='USER22';
SRID ---------- 4
Этот SRID должны использовать любые записи, которые вставляются в это представление или таблицу.
- Инструкции по использованию для редактирования версионных представлений см. в разделе Редактирование версионных данных в Oracle с помощью SQL.. Если вы редактируете неверсионную таблицу, перейдите к следующему шагу.
-
При добавлении записи используйте утилиту sde.version_user_ddl.retrieve_guid для вставки следующего значения global ID или GUID.
В этом примере запись добавляется в версионное представление mytable_vw. Таблица содержит столбец ST_Geometry и использует SRID, полученный на шаге 4.
INSERT INTO mytable_vw (globalid,shape) VALUES (sde.version_user_ddl.retrieve_guid,(sde.st_polygon ('polygon ((10000 520000, 100008889 55000, 1045545983 234280934, 10000 520000))',4)));
- По завершению редактирования примените внесенные изменения к базе данных.