Пример: Определение кодов подтипов и описаний с помощью SQL

Запросы столбцов XML содержат пример извлечения значений из нескольких элементов XML в выражении XPath в SQL Server для поиска кодов и значений из домена кодированных значений. Аналогичный подход можно использовать для поиска имен подтипов и кодов из класса объектов. Пример Oracle показывает возможности запроса элементов gdb_items_vw для извлечения информации подтипов.

В следующем примере в SQL Server запрашивается база геоданных dbo-schema (Montgomery) для получения имен и кодов подтипов для класса объектов parcels пользователя Jake:

SELECT subtype.value('SubtypeName[1]', 'nvarchar(max)') AS "Description", 
subtype.value('SubtypeCode[1]', 'int') AS "Code"
 FROM dbo.GDB_ITEMS AS items INNER JOIN dbo.GDB_ITEMTYPES AS itemtypes
 ON items.Type = itemtypes.UUID
 CROSS APPLY 
  items.Definition.nodes('/DEFeatureClassInfo/Subtypes/Subtype') AS Subtypes(subtype)
 WHERE items.Name = 'Montgomery.Jake.Parcels'

В этом примере отправляется запрос gdb_items_vw в Oracle для извлечения части строки, содержащей код и описание подтипа, и определяются значения класса объектов fittings пользователя Vlad.

SELECT	EXTRACTVALUE(fields.column_value, '/Subtype/SubtypeName') AS Description,
	EXTRACTVALUE(fields.column_value, '/Subtype/SubtypeCode') AS Code
FROM
	 sde.gdb_items_vw,
	TABLE(XMLSEQUENCE(XMLType(Definition).Extract('/DEFeatureClassInfo/Subtypes/Subtype'))) fields
WHERE Name = 'VLAD.Fittings';

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

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

5/25/2014