Добавление значения в столбец 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.

Шаги:
  1. Если вы редактируете версионную таблицу, используя ArcGIS 10.1 или выше, то для этой таблицы в базе геоданных уже существует версионное представление. Имя представления будет иметь имя таблицы с добавлением _vw. Если версионного представления еще нет, то его можно создать в ArcGIS for Desktop. Инструкции см. в разделе Создание версионных представлений из ArcGIS for Desktop
  2. Откройте SQL редактор, например SQL*Plus.
  3. Подключитесь к базе данных, как пользователь с правами для редактирования таблицы.

    Если вы выполняете редактирование с помощью версионного представления, пользователь должен также иметь права на редактирование представления.

  4. Если сама таблица или таблица, на которой основано представление, содержит столбец ST_Geometry, создайте запрос к таблице ST_GEOMETRY_COLUMNS, чтобы найти её ID (SRID) пространственной привязки.
    SELECT srid 
    FROM sde.st_geometry_columns 
    WHERE table_name='MYTABLE'
    AND owner='USER22';
    

    SRID 
    ---------- 
    4

    Этот SRID должны использовать любые записи, которые вставляются в это представление или таблицу.

  5. Инструкции по использованию для редактирования версионных представлений см. в разделе Редактирование версионных данных в Oracle с помощью SQL.. Если вы редактируете неверсионную таблицу, перейдите к следующему шагу.
  6. При добавлении записи используйте утилиту 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)));
    
  7. По завершению редактирования примените внесенные изменения к базе данных.
9/11/2013