Die Verwendung von Geodatabase-Systemtabellen zielt im Allgemeinen auf die Suche aller Elemente ab, die sich auf ein bestimmtes Element beziehen. Dies umfasst beispielsweise das Suchen nach den Inhalten eines Feature-Datasets, das Ermitteln der an einer Topologie oder einem geometrischen Netzwerk beteiligten Feature-Classes sowie das Suchen nach Datasets, die in einem Replikat enthalten sind. Da alle Elemente und Beziehungen in den gleichen Tabellen gespeichert werden, kann eine einzelne Abfrage für diese Fälle verwendet werden (mit Zeichenfolgenliteralen, anhand derer bestimmt wird, welches Element jeweils verwendet wird). Diese Abfrage kann mit folgenden Schritten ausgeführt werden:
- Suchen Sie die UUID des Ursprungselements (z. B. ein Feature-Dataset).
- Suchen Sie alle Beziehungen mit der UUID als Ursprungs-UUID.
- Suchen Sie für jede Ziel-UUID das entsprechende Element, und lösen Sie den Typ mithilfe der Tabelle "GDB_ItemTypes" auf.
Nachfolgend finden Sie eine SQL-Abfrage, die diese Schritte enthält. Um das jeweils abgefragte Element zu ändern, ändern Sie die beiden Zeichenfolgenvariablen, die am Anfang deklariert wurden.
--Queries a dbo-schema geodatabase in SQL Server
DECLARE @ORIGIN nvarchar(max);
DECLARE @ORIGIN_TYPE nvarchar(max);
SET @ORIGIN = 'Montgomery.Sasha.Landbase';
SET @ORIGIN_TYPE = 'Feature Dataset';
SELECT
DEST_ITEMS.Name AS "Name"
DEST_TYPES.Name AS "Type"
FROM
-- Get the unique ID of the origin item.
((((SELECT UUID, Type FROM dbo.GDB_ITEMS WHERE Name = @ORIGIN) AS src_items
INNER JOIN
(SELECT UUID FROM dbo.GDB_ITEMTYPES WHERE Name = @ORIGIN_TYPE) AS src_types
ON src_items.Type = src_types.UUID)
--Get the UUIDs of related items.
INNER JOIN
dbo.GDB_ITEMRELATIONSHIPS AS relationships
ON src_items.UUID = relationships.OriginID)
-- Resolve the names of the destination items.
INNER JOIN
dbo.GDB_ITEMS AS dest_items
ON relationships.DestID = dest_items.UUID)
-- Get the types as human-readable strings.
INNER JOIN
dbo.GDB_ITEMTYPES AS dest_types
ON dest_items.Type = dest_types.UUID
Im Falle eines Feature-Datasets gibt dies eine Liste mit einem ähnlichen Ergebnis wie beim Durchsuchen eines Feature-Datasets in ArcCatalog zurück. Diese kann Feature-Classes, Beziehungsklassen und Controller-Datasets wie Topologien, Netzwerk-Datasets und Parcel Fabrics enthalten. Darüber hinaus enthält sie möglicherweise einige Datasets, die nicht in ArcCatalog angezeigt werden, z. B. die von Topologien verwendeten Feature-Classes nicht überprüfter Bereiche.
Dies funktioniert zwar für Beziehungen wie Dataset in Feature-Dataset und Feature-Class in Topologie, allerdings ist eine geringfügige Änderung erforderlich, wenn Sie die Ursprungselemente von Beziehungen auf Grundlage eines bestimmten Zielelements suchen. Diese Art von Beziehungsnavigation kann verwendet werden, um herauszufinden, welche Datasets eine bestimmte Domäne verwenden, zu welchem Replikat ein Replikat-Dataset gehört oder an welchen Controller-Mitgliedschaften eine Feature-Class beteiligt ist. Nachfolgend finden Sie eine angepasste Version der vorherigen Abfrage, die so geändert wurde, dass in Beziehung stehende Elemente nach Zielelement statt nach Ursprungselement gesucht werden:
--Queries a dbo-schema geodatabase in SQL Server
DECLARE @DEST nvarchar(max);
DECLARE @DEST_TYPE nvarchar(max);
SET @DEST = 'Angle';
SET @DEST_TYPE = 'Range Domain';
SELECT
SRC_ITEMS.Name AS "Name",
SRC_TYPES.Name AS "Type"
FROM
-- Get the unique ID of the destination item.
((((SELECT UUID, Type FROM dbo.GDB_ITEMS WHERE Name = @DEST) AS dest_items
INNER JOIN
(SELECT UUID FROM dbo.GDB_ITEMTYPES WHERE Name = @DEST_TYPE) AS dest_types
ON dest_items.Type = dest_types.UUID)
-- Get the UUIDs of related items.
INNER JOIN
dbo.GDB_ITEMRELATIONSHIPS AS relationships
ON dest_items.UUID = relationships.DestID)
-- Resolve the names of the origin items.
INNER JOIN
dbo.GDB_ITEMS AS src_items
ON relationships.OriginID = src_items.UUID)
-- Get the types as human-readable strings.
INNER JOIN
dbo.GDB_ITEMTYPES AS src_types
ON src_items.Type = src_types.UUID
Informationen zu den in Oracle verwendeten Systemtabellen und Sichten finden Sie im Abschnitt Geodatabase-Systemtabellen.