示例:使用 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