Eliminar valores de una columna espacial ST_Geometry

La declaración SQL DELETE quita filas de datos de una tabla o vista específicas.

Pasos:
  1. A continuación se presentan consultas de ejemplo que eliminan datos para cada base de datos compatible:
    • Este ejemplo elimina valores de una geodatabase en Oracle con el tipo espacial basado en un filtro espacial:
      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);
    • Este ejemplo elimina valores de una geodatabase en PostgreSQL con el tipo espacial basado en un filtro espacial:
      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');
    • En IBM DB2, utilice la siguiente declaración:
      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 no admite la modificación de una tabla o vista que se usa en una subconsulta. Por consiguiente, divida la consulta en dos partes: seleccione una tabla temporal y elimine mediante esa tabla temporal.
      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);

7/11/2012