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

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

ПримечаниеПримечание:

Версионные представления не поддерживаются в базах данных IBM DB2 в операционных системах z.

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

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

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

CALL sde.setcurrentversion('<version_name>',?,?)

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

В следующих пошаговых инструкциях показано, как выполнить setcurrentversion для запроса к версии:

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

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

  2. Откройте клиент SQL и вызовите встроенную процедуру setcurrentversion, чтобы задать версию, к которой будет выполняться запрос.

    В этом примере, для запросов выбирается версия version2.

    CALL sde.setcurrentversion('version2',?,?)
    

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

  3. Выполнение выражения SELECT к версионному представлению для чтения версионных данных из базы геоданных.

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

    SELECT owner, site_address, region
    FROM code_mv
    WHERE region = 'b'
    

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

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

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

5/25/2014