Kurzer Überblick über die mit dem Datentyp "ST_Geometry" verwendete SQL
Sie können die Structured Query Language (SQL) des Datenbankmanagementsystems (DBMS), die Datentypen und die Tabellenformate verwenden, um mit den in einer Geodatabase oder Datenbank gespeicherten Informationen zu arbeiten, bei denen der Datentyp "ST_Geometry" installiert ist. SQL ist eine Datenbanksprache, die Befehle für die Datendefinition und die Datenbearbeitung unterstützt.
Erfolgt der Zugriff auf die Informationen in einer Geodatabase über SQL, können externe Anwendungen auf die Tabellendaten zugreifen, die von der Geodatabase verwaltet werden. Bei diesen externen Anwendungen kann es sich um nicht räumliche Datenbankanwendungen oder benutzerdefinierte räumliche Anwendungen handeln, die in einer anderen Umgebung als ArcObjects entwickelt wurden.

Wenn Sie über SQL auf die Geodatabase zugreifen, stehen jedoch nicht alle Geodatabase-Funktionen zur Verfügung, z. B. Versionierung, Topologie, Netzwerke, Terrains, Feature-bezogene Annotationen oder andere Klassen- bzw. Workspace-Erweiterungen. DBMS-Funktionen wie Trigger und gespeicherte Prozeduren können u. U. zur Verwaltung von Beziehungen zwischen Tabellen verwendet werden, die für bestimmte Geodatabase-Funktionen erforderlich sind. Wenn Sie die SQL-Befehle für die Datenbank ausführen, ohne diese zusätzliche Funktionalität zu berücksichtigen (z. B. wenn Sie mit INSERT-Anweisungen einer Business-Tabelle Datensätze hinzufügen oder eine Spalte in eine vorhandene Feature-Class einfügen), wird die Geodatabase-Funktionalität jedoch unterlaufen, und die Beziehungen zwischen den Daten in der Geodatabase können beschädigt werden.
Grundsätzlich gelten die folgenden Richtlinien, wenn Sie SQL zum Bearbeiten von räumlichen oder nicht räumlichen Daten in einer Geodatabase verwenden:
- Datensätze dürfen nicht mit SQL aktualisiert werden, nachdem die Daten versioniert wurden. Dies gilt allerdings nicht, wenn Sie SQL in Verbindung mit einer versionierten Sicht verwenden.
- Wenn nicht versionierte Daten mit SQL aktualisiert werden, dürfen keine Attribute geändert werden, die andere Objekte in der Datenbank durch Geodatabase-Verhalten beeinflussen, wie Beziehungsklassen, Feature-bezogene Annotationen, Topologie oder Netzwerke.
- Geben Sie eine COMMIT- oder ROLLBACK-Anweisung aus, nachdem die SQL-Anweisung ausgeführt wurde, um Änderungen entweder in die Datenbank zu übernehmen oder sie zu verwerfen. Dies gilt für Geodatabase- und Datenbankdaten.
Der Speichertyp "ST_Geometry"
Der SQL-Datentyp "ST_Geometry" wird in IBM DB2-, Informix-, Oracle- und PostgreSQL-Datenbanken verwendet. In der Datenbank kann eine Geodatabase enthalten sein.
Der Datentyp "ST_Geometry" kann für ArcGIS-Clients verwendet werden. Außerdem ermöglicht er Anwendungen von Drittanbietern den SQL-Zugriff auf die einfache Feature-Class-Geometrie.
"ST_Geometry" implementiert die OGC- und ISO-SQL-Multimediaspezifikation für Spatial. Die OGC-Referenz ist OpenGIS Implementation Specification for Geographic information – Simple feature access – Part 2: SQL option, version 1.1.0. Die ISO-Referenz ist ISO/IEC 13249-3 SQL multimedia and application packages – Part 3: Spatial.
Informationen zur Verwenden von SQL mit dem Typ "ST_Geomery" in DB2 oder Informix finden Sie in der IBM DB2- und Informix-Dokumentation. Weitere Informationen zur Verwendung von SQL mit dem Datentyp "ST_Geometry" in Oracle und PostgreSQL finden Sie in den Themen dieses Abschnitts in der ArcGIS-Benutzerhilfe.

Der Abschnitt "Verwenden räumlicher Datentypen mit SQL" dieser Hilfe enthält einige Beispiele für DB2 und Informix; für vollständige Informationen zur Verwendung von "ST_Geometry" mit diesen Datenbanken lesen Sie die IBM-Dokumentation.
Die Raumbezugs-ID
Bevor Sie eine Geometrie erstellen und in eine Tabelle einfügen können, benötigen Sie eine gültige Raumbezugs-ID (SRID). Für den räumlichen Datentyp für Oracle muss die SRID in der Tabelle "ST_SPATIAL_REFERENCES" enthalten sein und einen identischen Datensatz in der Tabelle "SDE.SPATIAL_REFERENCES" besitzen. Für den räumlichen Datentyp für PostgreSQL muss sie in der Tabelle "public.sde_spatial_references" enthalten sein. Ab ArcGIS 10.1 werden diese Tabellen mit Raumbezügen ausgefüllt.
Wenn Sie einen benutzerdefinierten Raumbezug benötigen, der nicht in der Tabelle vorhanden ist, besteht die einfachste Möglichkeit darin, mithilfe von ArcGIS for Desktop eine Feature-Class mit den gültigen Raumbezugswerten zu laden oder zu erstellen. Achten Sie darauf, dass die erstellte Feature-Class das Format "ST_Geometry" verwendet. Sie können eine leere Feature-Class mit den erforderlichen Raumbezugsinformationen als Vorlage erstellen. Dadurch wird in Oracle ein Datensatz in den Tabellen "SDE.SPATIAL_REFERENCES" und "ST_SPATIAL_REFERENCES" bzw. in PostgreSQL ein Datensatz in der Tabelle "public.sde_spatial_references" erstellt. Führen Sie eine Abfrage für die Tabelle "LAYERS" (Oracle) bzw. "sde_layers" (PostgreSQL) durch, um die SRID zu ermitteln, die dem Layer zugewiesen ist. Anschließend können Sie diese SRID zum Erstellen von Geometrietabellen und zum Einfügen von Daten mithilfe von SQL verwenden.
Damit die Beispiele in diesem Hilfesystem verwendet werden können, wurde den Tabellen "ST_SPATIAL_REFERENCES" und "sde_spatial_references" ein Datensatz hinzugefügt, der einen unbekannten Raumbezug angibt. Dieser Datensatz besitzt die SRID "0", die für die Beispiele in der Hilfe verwendet werden kann. Hierbei handelt es sich nicht um eine offizielle SRID – sie wurde lediglich zur Ausführung von SQL-Beispielcode angegeben. Es wird dringend davon abgeraten, diese SRID für die Produktionsdaten zu verwenden.
Wenn Sie für diese Beispiele einen anderen in der Datenbank enthaltenen SRID-Wert verwenden möchten, müssen Sie die Beispielkoordinaten entsprechend dem Raumbezug des verwendeten SRID-Wertes ändern.
Informationen zum Einfügen eines Raumbezugs in die Tabelle "ST_SPATIAL_REFERENCES" bzw. "sde_spatial_references" unter Verwendung von SQL finden Sie unter Erstellen von Raumbezügen mit SQL.