Пример: определение версионных наборов данных в базе геоданных

Можно создать запрос к столбцу определения таблицы GDB_Items (или представления GDB_Items_vw в Oracle), чтобы получить список классов объектов, у которых значение версионности установлено на true (или 1, в зависимости от базы данных).

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

Запросы из следующих примеров возвращают списки версионных классов объектов в базе геоданных, к которой они применены.

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

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

Убедитесь, что подключились к соответствующей базе данных перед выполнением запроса.

--Queries PostgreSQL
--Returns a list of versioned datasets in the specified geodatabase

SELECT name AS "Versioned feature class", 
FROM sde.gdb_items
WHERE (xpath('//Versioned/text()', definition))[1]::text = 'true';
--Queries a dbo-schema geodatabase in SQL Server
--Returns a list of versioned datasets in the specified geodatabase

SELECT NAME AS "Versioned feature class" 
FROM dbo.GDB_ITEMS
WHERE Definition.exist('(/*/Versioned)[1]') = 1
AND Definition.value('(/*/Versioned)[1]', 'nvarchar(4)') = 'true'
--Queries Oracle
--Returns a list of versioned datasets in the specified geodatabase

SELECT items.name AS Dataset,
	      itemtypes.name AS Dataset_Type
FROM sde.gdb_items_vw items,
	    sde.gdb_itemtypes itemtypes
WHERE	items.definition LIKE '%Versioned>true%'
	AND items.type = itemtypes.uuid;
5/25/2014