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';
Achten Sie bei der Angabe von Literalwerten darauf, dass die Groß- und Kleinschreibung mit den Inhalten der Tabelle übereinstimmt.