示例:使用 SQL 查找子类型编码和描述

XML 列查询包含了一个在 SQL Server 中用 XPath 表达式从多个 XML 元素提取值以在编码值域中查找编码和值的示例。您可以使用类似方法在要素类中查找子类型名称和编码。Oracle 示例介绍了如何查询 gdb_items_vw 以提取子类型信息。

以下示例将查询 SQL Server 中的 dbo-schema 地理数据库 (Montgomery) 以获取由用户 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'

以下示例描述了查询 Oracle 中的 gdb_items_vw 以提取包含子类型编码和描述的字符串部分,并查找用户 Vlad 所有的 fittings 要素类的值。

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';

注注:

确保在提供文本值时,大小写与表内容一致。

9/15/2013