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

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

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

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

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

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

  2. Выполните запрос к таблице table_registry, чтобы узнать регистрационный ID (registration ID) и владельца таблицы, в которую вы хотите добавить строку.

    В этом примере получены значения столбцов registration_id и owner таблицы factories.

    SELECT owner,registration_id,table_name
    FROM sde.table_registry
    WHERE table_name='factories';
    
    owner    registration_id    table_name
    editor1         7           factories
    
  3. Войдите, чтобы выполнить функцию next_row_id и получить следующее доступное значение идентификатора строки.
  4. Выполните функцию next_row_id. Владельцем этой функции является пользователь sde.

    В данном примере, editor1 является владельцем таблицы, а 7 - это регистрационный идентификатор (registration ID) таблицы factories.

    EXECUTE FUNCTION "sde".next_row_id('editor1',7);
    
    ret_code 0
    err_msg
    rowid 18
    
    1 row(s) retrieved.
    

  5. Вернитесь в редактор SQL и добавьте запись в таблицу.
    INSERT INTO factories
    VALUES (
    18,
    'makem'
    ST_PolyFromText('POLYGON((52 18,66 23,73 9,48 6,52 18),(59 18,67 18,67 13,59 13,59 18))',101)
    );
    

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

9/11/2013