Kurzer Überblick über die Verwendung von SQL mit den Datentypen "ST_Geometry" und "ST_Raster"
You can use the database management system's (DBMS) Structured Query Language (SQL), data types, and table formats to work with the information stored in a geodatabase. SQL is a database language that supports data definition and data manipulation commands.
Accessing the information in a geodatabase via SQL allows external applications to work with the tabular data managed by the geodatabase. These external applications can be nonspatial database applications or custom spatial applications developed in an environment other than ArcObjects.
You can issue SELECT statements against any of the supported DBMS types for geodatabases, as well as against file-based data sources. The topics About building a SQL expression and SQL reference provide you with information about building SELECT statements for different data sources.
Be aware that using SQL to access the geodatabase bypasses geodatabase functionality, such as versioning, topology, networks, terrains, feature-linked annotation, or other class or workspace extensions. It may be possible to use DBMS features such as triggers and stored procedures to maintain the relationships between tables needed for certain geodatabase functionality. However, executing SQL commands against the database without taking this extra functionality into account—for example, issuing INSERT statements to add records to a business table or adding a column to an existing feature class—will circumvent geodatabase functionality and possibly corrupt the relationships between data in your geodatabase.
In general, the following guidelines apply when using SQL to modify information in the geodatabase:
- 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 Multiversioned View 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 Annotations oder Topologie.
- 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.
The preceding guidelines apply to any attribute, spatial or nonspatial. This book of the help focuses on using SQL for spatial selections, altering data, and altering the properties of data stored in the ST_Geometry and ST_Raster data storage types.
Der Speichertyp "ST_Geometry"
The ST_Geometry SQL data type is used in geodatabases stored in DB2, Informix, Oracle, and PostgreSQL. This data type can be used within the geodatabase plus it provides SQL access to simple feature class geometry for third-party applications.
ST_Geometry implements the OGC and ISO SQL Multimedia Specification for Spatial. The OGC reference is OpenGIS Implementation Specification for Geographic information —Simple feature access—Part 2: SQL option, version 1.1.0. The ISO reference is ISO/IEC 13249-3 SQL multimedia and application packages—Part 3: Spatial.
For information on using SQL with the ST_Geomery type in DB2 or Informix, consult the IBM DB2 and Informix documentation. For information on using SQL with the ST_Geometry type in Oracle and PostgreSQL, see the subsequent section.
The "Using spatial types with SQL" section of this help does contain some examples for DB2 and Informix; however, for complete information on using ST_Geometry with these databases, read the IBM documentation.
Verwenden der SQL-Funktionen mit "ST_Geometry" in Oracle und PostgreSQL
Um mit SQL auf Daten zugreifen, sie analysieren und ändern zu können, müssen Sie die Funktionen verwenden, die mit ArcSDE installiert werden.
Diese Funktionen können nach Verwendung gruppiert werden.
-
Funktionen, die räumliche Beziehungen testen
Diese Funktionen verwenden Geometrien als Eingabe und ermitteln, ob eine bestimmte Beziehung zwischen den Geometrien besteht. Wenn die Bedingungen einer räumlichen Beziehung erfüllt sind, geben diese Funktionen den Wert "1" oder ein "t" für TRUE (Wahr) aus. Wenn die Bedingungen nicht erfüllt werden (d. h. keine Beziehung vorhanden ist), geben diese Funktionen "0" oder "f" für FALSE (Falsch) zurück. Eine Beschreibung der einzelnen Funktionen finden Sie unter Räumliche Beziehungen.
-
Funktionen, die räumliche Operationen ausführen
Diese Funktionen führen Analysen für räumliche Daten aus und geben neue räumliche Daten zurück. Eine Beschreibung dieser Funktionen finden Sie unter Räumliche Operationen.
-
Funktionen, die Eigenschaften einer Geometrie zurückgeben
Es gibt eine Vielzahl von Funktionen, die eine oder mehrere Geometrien als Eingabe verwenden und bestimmte Informationen über sie zurückgeben. Diese werden unter Geometrieeigenschaften beschrieben. Bei einigen dieser Funktion wird tatsächlich eine Überprüfung ausgeführt, um zu ermitteln, ob Features bestimmte Kriterien erfüllen. Wenn die Geometrie die Kriterien erfüllt, gibt die Funktion den Wert "1" oder "t" für TRUE (Wahr) zurück. Wenn die Geometrie die Kriterien nicht erfüllt, gibt die Funktion den Wert "0" oder "f" für FALSE (Falsch) zurück. Zu diesen Funktionen gehören die folgenden:ST_EqualSRS (nur PostgreSQL), ST_Is3d (nur Oracle), ST_IsClosed, ST_IsEmpty, ST_IsMeasured (nur Oracle), ST_IsRing, ST_IsSimple und ST_OrderingEquals.
-
Funktionen, die räumliche Daten erstellen oder räumliche Transformationen durchführen
Diese Funktionen verwenden einen Geometrietyp oder eine Geometriebeschreibung und geben eine Geometrie eines anderen Typs zurück. Bei einer dieser Funktionen, ST_Transform, wird der Raumbezug einer Geometrie in Oracle von einem Raumbezug im geographischen Datum in einen anderen Raumbezug im selben geographischen Datum geändert. Die Funktionen, mit denen eine Geometrie aus einem anderen Geometrietyp oder einer Textbeschreibung erstellt werden kann, sind in der nachfolgenden Tabelle aufgeführt:
ST_LineFromShape (nur PostgreSQL)
ST_MPolyFromShape (nur PostgreSQL)
ST_PointFromText (nur Oracle)
ST_LineFromText (nur Oracle)
ST_MPolyFromText (nur Oracle)
ST_Curve (nur Oracle)
ST_PolyFromShape (nur PostgreSQL)
ST_MultiCurve (nur Oracle)
ST_PolyFromText (nur Oracle)
ST_GeomCollFromShape (nur PostgreSQL)
ST_MLineFromShape (nur PostgreSQL)
ST_GeomCollFromWKB (nur PostgreSQL)
ST_MLineFromText (nur Oracle)
ST_Surface (nur Oracle)
ST_GeomFromShape (nur PostgreSQL)
ST_MPointFromShape (nur PostgreSQL)
ST_MultiSurface (nur Oracle)
ST_GeomFromText (nur Oracle)
ST_MPointFromText (nur Oracle)
ST_PointFromShape (nur PostgreSQL)
Der Speichertyp "ST_Raster"
Sie können den Datentyp "ST_Raster" in den ArcSDE-Geodatabases verwenden. Dieser Datentyp kann in der Geodatabase verwendet werden. Außerdem ermöglicht er Anwendungen von Drittanbietern den SQL-Zugriff auf die Raster-Daten.
Der Typ "ST_Raster" ist in ArcSDE-Geodatabases in Oracle, PostgreSQL und Microsoft SQL Server verfügbar.
Zwei verschiedene Kategorien von ST_Raster-Funktionen werden verwendet, um auf den Typ "ST_Raster" mit SQL zuzugreifen:
- ST_Raster-Methode und ST_PixelData-Methode
- Gespeicherte ST_RasterUtil-Prozeduren
ST_Raster-Funktion und ST_PixelData-Funktion
Dies sind Methoden, die das ST_Raster-Objekt instanziieren und damit arbeiten.
Dienstprogramme für gespeicherte ST_RasterUtil-Prozeduren
Die gespeicherten ST_RasterUtil-Prozeduren unterstützen die Erstellung und die Wartung des Typs ST_Raster". Die folgenden Optionen sind möglich:
ST_RasterUtil_checkLibraryVersion