Beispiel: Suchen von Subtype-Codes und Beschreibungen mit SQL

XML-Spaltenabfragen bieten ein Beispiel für das Extrahieren der Werte aus mehreren XML-Elementen mit einem XPath-Ausdruck in SQL Server, um die Codes und die Werte von einer Domäne mit codierten Werten zu erhalten. Eine ähnliche Vorgehensweise kann verwendet werden, um die Subtype-Namen und die Codes für eine Feature-Class zu suchen. Das Oracle-Beispiel zeigt, wie Sie eine Abfrage von gdb_items_vw durchführen können, um die Subtype-Informationen zu extrahieren.

Im folgenden Beispiel wird eine DBO-Schema-Geodatabase (Montgomery) in SQL Server abgefragt, um die Subtype-Namen und Codes für die Feature-Class "Parcels" von Besitzer "Jake" zu erhalten:

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'

In diesem Beispiel wird eine Abfrage von gdb_items_vw in Oracle durchgeführt wird, um den Teil der Zeichenfolge herauszuziehen, der den Subtype-Code und die Beschreibung enthält. Die Abfrage findet außerdem die Werte für eine Feature-Class mit Anschlüssen des Besitzers 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';

HinweisHinweis:

Achten Sie bei der Angabe von Literalwerten darauf, dass die Groß- und Kleinschreibung mit den Inhalten der Tabelle übereinstimmt.


3/6/2012