Definición
ST_IsEmpty devuelve 1 (Oracle y SQLite) o t (PostgreSQL) si el objeto ST_Geometry está vacío; de lo contrario, devuelve 0 (Oracle y SQLite) o f (PostgreSQL).
Sintaxis
Oracle y PostgreSQL
sde.st_isempty (geometry1 sde.st_geometry)
SQLite
st_isempty (geometry1 geometryblob)
Tipo de devolución
Booleano
Ejemplo
La declaración CREATE TABLE que se muestra a continuación crea la tabla empty_test con geotipo, que almacena el tipo de datos de las subclases almacenadas en la columna g1.
Las declaraciones INSERT insertan dos registros para las subclases de geometría de punto, cadena de texto de líneas y polígono: uno que está vacío y otro que no lo está.
La consulta SELECT devuelve el tipo de geometría de la columna geotipo y los resultados de la función ST_IsEmpty.
Oracle
CREATE TABLE empty_test (
geotype varchar(20),
g1 sde.st_geometry
);
INSERT INTO EMPTY_TEST VALUES (
'Point',
sde.st_pointfromtext ('point (10.02 20.01)', 4326)
);
INSERT INTO EMPTY_TEST VALUES (
'Point',
sde.st_pointfromtext ('point empty', 4326)
);
INSERT INTO EMPTY_TEST VALUES (
'Linestring',
sde.st_linefromtext ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO EMPTY_TEST VALUES (
'Linestring',
sde.st_linefromtext ('linestring empty', 4326)
);
INSERT INTO EMPTY_TEST VALUES (
'Polygon',
sde.st_polyfromtext ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15,
19.15 33.94, 10.02 20.01))', 4326)
);
INSERT INTO EMPTY_TEST VALUES (
'Polygon',
sde.st_polyfromtext('polygon empty', 4326)
);
SELECT geotype, sde.st_isempty (g1) Is_it_empty
FROM EMPTY_TEST;
GEOTYPE Is_it_empty
Point 0
Point 1
Linestring 0
Linestring 1
Polygon 0
Polygon 1
PostgreSQL
CREATE TABLE empty_test (
geotype varchar(20),
g1 sde.st_geometry
);
INSERT INTO empty_test VALUES (
'Point',
sde.st_point ('point (10.02 20.01)', 4326)
);
INSERT INTO empty_test VALUES (
'Point',
sde.st_point ('point empty', 4326)
);
INSERT INTO empty_test VALUES (
'Linestring',
sde.st_linestring ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO empty_test VALUES (
'Linestring',
sde.st_linestring ('linestring empty', 4326)
);
INSERT INTO empty_test VALUES (
'Polygon',
sde.st_polygon ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15,
19.15 33.94, 10.02 20.01))', 4326)
);
INSERT INTO empty_test VALUES (
'Polygon',
sde.st_polygon ('polygon empty', 4326)
);
SELECT geotype, sde.st_isempty (g1)
AS Is_it_empty
FROM empty_test;
geotype is_it_empty
Point f
Point t
Linestring f
Linestring t
Polygon f
Polygon f
SQLite
CREATE TABLE empty_test (
geotype text(20)
);
SELECT AddGeometryColumn (
NULL,
'empty_test',
'g1',
4326,
'geometry',
'xy',
'null'
);
INSERT INTO empty_test VALUES (
'Point',
st_point ('point (10.02 20.01)', 4326)
);
INSERT INTO empty_test VALUES (
'Point',
st_point ('point empty', 4326)
);
INSERT INTO empty_test VALUES (
'Linestring',
st_linestring ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO empty_test VALUES (
'Linestring',
st_linestring ('linestring empty', 4326)
);
INSERT INTO empty_test VALUES (
'Polygon',
st_polygon ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15,
19.15 33.94, 10.02 20.01))', 4326)
);
INSERT INTO empty_test VALUES (
'Polygon',
st_polygon ('polygon empty', 4326)
);
SELECT geotype, st_isempty (g1)
AS "Is_it_empty"
FROM empty_test;
GEOTYPE Is_it_empty
Point 0
Point 1
Linestring 0
Linestring 1
Polygon 0
Polygon 1