Löschen von Werten in einer ST_Geometry-Spalte
Mit der SQL-Anweisung DELETE werden Datenzeilen aus einer bestimmten Tabelle oder Ansicht entfernt.
Schritte:
-
Nachfolgend finden Sie Beispielabfragen, die Daten für jede unterstützte Datenbank löschen:
- Im folgenden Beispiel werden Werte aus einer Geodatabase in Oracle unter Verwendung des räumlichen Datentyps basierend auf einem räumlichen Filter gelöscht:
DELETE FROM sensitive_areas WHERE names (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE sde.st_overlaps (sa.zone, sde.st_buffer (hs.location,.01)) = 1);
- Im folgenden Beispiel werden Werte aus einer Geodatabase in PostgreSQL unter Verwendung des räumlichen Datentyps basierend auf einem räumlichen Filter gelöscht:
DELETE FROM sensitive_areas WHERE names EXISTS (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) = 't');
- Verwenden Sie in IBM DB2 die folgende Anweisung:
DELETE FROM sensitive_areas WHERE names (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE db2gse.st_overlaps (sa.zone, db2gse.st_buffer (hs.location,.01)) = 1);
- Informix unterstützt keine Änderungen an Tabellen oder Ansichten, die in einer Unterabfrage verwendet werden. Teilen Sie die Abfrage daher in zwei Teile auf: Erstellen Sie eine temporäre Tabelle für die Auswahl, und führen Sie den Löschvorgang über diese temporäre Tabelle aus.
SELECT sa.name FROM sensitive_areas sa, hazardous_sites hs WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) INTO TEMP tempTable; DELETE FROM sensitive_areas WHERE name IN (select name from tempTable);
- Im folgenden Beispiel werden Werte aus einer Geodatabase in Oracle unter Verwendung des räumlichen Datentyps basierend auf einem räumlichen Filter gelöscht:
3/6/2012