Kurzer Überblick über die mit den Datentypen 'ST_Geometry' und 'ST_Raster' verwendeten SQL-Funktionen

SQL (Structured Query Language) ist eine standardisierte Sprache zur Abfrage und Bearbeitung von Daten in Datenbankmanagementsystemen (DBMS). ArcSDE installiert bestimmte SQL-Funktionen und -Typen in Geodatabases in Oracle, PostgreSQL und Microsoft SQL Server. Sie können SQL und diese Funktionen und Typen verwenden, um Daten abzufragen und zu bearbeiten.

In diesem Modul des Hilfesystems werden die einzelnen Funktionen beschrieben, die mit dem räumlichen Datentyp "ST_Geometry" in einer ArcSDE-Geodatabase in Oracle und PostgreSQL und dem Datentyp "ST_Raster" in Oracle, PostgreSQL und SQL Server implementiert werden. Diese Funktionen sind im Schema des ArcSDE-Administrators (in der Regel der Benutzer "sde") gespeichert und können mit Geometrien verwendet werden sowie Informationen über Geometrien und Raster zurückgeben.

Die einzelnen Themen sind wie folgt aufgebaut:

HinweisHinweis:

In den Beispielen in diesem Abschnitt werden keine räumlichen Indizes zu den erstellten Tabellen erstellt. Wenn Sie einen räumlichen Index erstellen möchten, finden Sie entsprechende Anweisungen unter Erstellen von räumlichen Indizes für Tabellen mit einer ST_Geometry-Spalte".

Die IBM-Funktionsreferenzen für "ST_Geometry" finden Sie in Kapitel 8, "SQL Functions", des IBM Informix Spatial DataBlade Module User's Guide sowie in Kapitel 22, "Spatial functions: categories and uses", und in Kapitel 23, "Spatial functions: Syntax and parameters", im IBM DB2 Spatial Extender and Geodetic Extender User's Guide and Reference.

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.

Am schnellsten erreichen Sie dies, wenn Sie eine Feature-Class mit den gültigen Raumbezugswerten, die in ArcGIS Desktop verwendet werden sollen, laden oder 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.

HinweisHinweis:

Die SRID "0" ist ab ArcGIS 9.3 in ArcSDE-Geodatabases in Oracle enthalten.

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.

Liste der SQL-Funktionen

Klicken Sie auf die Links unten, um zu den Funktionen zu wechseln, die Sie mit "ST_Geometry" in Oracle and PostgreSQL and "ST_Raster" in Oracle, PostgreSQL und SQL Server verwenden können.

Ab Version ArcSDE 9.3 müssen Sie bei Verwendung dieser Funktionen in einer neuen Installation von ArcSDE for Oracle das Präfix sde. mit den Funktionen und Operatoren angeben. Beispiel: Bei "ST_Buffer" müssen Sie "sde.ST_Buffer" angeben. Am Präfix sde. erkennt die Software, dass die Funktion im Schema des Benutzers "sde" gespeichert ist. Dies ist erforderlich, da die öffentlichen Synonyme, die zum Zuweisen der Funktionen verwendet wurden, von Oracle nicht mehr unterstützt werden. Für aktualisierte Versionen von ArcSDE for Oracle 10g oder Oracle 9i sowie ArcSDE for PostgreSQL ist die Angabe optional, wird jedoch empfohlen.

Wenn Sie ST_Raster-Funktionen in allen Datenbanken verwenden, müssen Sie die Funktion mit dem Schema des ArcSDE-Administrators qualifizieren. In den meisten Fällen ist dies sde. In SQL Server-Datenbanken kann es jedoch dbo sein.

TippTipp:

Informationen zu den Funktionen, die von anderen räumlichen Datentypen als "ST_Geometry", wie dem PostGIS-Geometrietyp oder dem Oracle-Typ "SDO_Geometry", verwendet werden, finden Sie in der Dokumentation zu PostGIS bzw. Oracle Spatial. Die PostGIS-Dokumentation finden Sie unter www.postgis.org. Die Oracle-Dokumentation finden Sie auf der Oracle-Website.

Die Namen der Funktionen sind von der DBMS-Implementierung abhängig. In Oracle und SQL Server sind die Funktionen Elementmethoden des Objekts "ST_Raster" oder "ST_PixelData". In PostgreSQL sind es auf der PL/SQL-Paketebene implementierte SQL-Funktionen. Beachten Sie, dass Sie beim Verwenden der Funktionen mit SQL Server die angezeigte Schreibweise verwenden müssen. Bei Verwendung mit Oracle oder PostgreSQL macht es keinen Unterschied, ob Sie nur Kleinbuchstaben, nur Großbuchstaben oder eine gemischte Schreibweise verwenden.

Entsprechende Funktionen sind in der folgenden Tabelle dargestellt:


7/10/2012