Чтение версионных данных в Oracle с использованием версионных представлений

Для доступа к версионным данным можно выполнять запросы SQL SELECT к версионным представлениям.

Версионные представления автоматически получают доступ к текущему состоянию версии DEFAULT. Если вы выполняете запросы SELECT к версионному представлению, оно будет обращаться к текущему состоянию DEFAULT. Если другие пользователи вносят изменения в версию DEFAULT, тем самым изменяя состояние, на которое ссылается версия DEFAULT, последующие запросы будут адресованы к последнему по времени состоянию и соответствующим изменениям.

Если вы хотите выполнить запрос к другой версии, отличной от DEFAULT, или не хотите, чтобы ваши запросы меняли состояние DEFAULT, выполните утилиту version_util.set_current_version. Эта утилита проверяет имя версии и задает соответствующее состояние непосредственно в базе данных. Запросы к версии, которые вы выполняете, всегда указывают на состояние, полученное при выполнении утилиты version_util.set_current_version.

Утилиту version_util.set_current_version можно выполнить непосредственно из клиента SQL. Синтаксис выглядит так:

EXEC sde.version_util.set_current_version('<version_name>')

Эту утилиту можно вызвать снова, чтобы переключиться на другие версии, также ее можно вызывать каждый раз при обновлении рабочей области, чтобы возвращать текущее состояние версионной таблицы вызывающему приложению.

Шаги:
  1. Убедитесь, что для версионного класса объектов или таблицы, к которой вы обращаетесь, имеется версионное представление.

    Начиная с ArcGIS 10.1, версионные представления создаются автоматически для всех версионных данных. Если данные зарегистрированы как версионные в более ранней версии, чем 10.1, можно создать версионное представление с помощью инструмента геообработки Создать версионное представление (Create Versioned View).

  2. В командной строке SQL выполните утилиту version_util.set_current_version, чтобы задать версию, к которой будет создаваться запрос.

    В данном примере для запросов выбирается версия version2 в базе геоданных master sde. Если вы запускаете утилиту для версии в базе геоданных с пользовательской схемой, перед утилитой следует ввести имя владельца базы геоданных.

    EXEC sde.version_util.set_current_version('version2')
    
  3. Выполнение выражения SELECT к версионному представлению для чтения версионных данных из базы геоданных.

    В этом примере версионное представление называется code_mv.

    SELECT violationID,codenum,propowner,insp_date 
    FROM code_mv 
    WHERE zip = '99999';
    

Если необходимо вернуть в запрос текущее состояние версии DEFAULT, выполните процедуру set_default.

EXEC sde.version_util.set_default();
Затем можно выполнить выражения SELECT для версионных представлений, тогда запросы получат последнее состояние версии DEFAULT.

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

5/25/2014