ST_IsValid toma un valor ST_Geometry y devuelve 1 (TRUE) si es válido y 0 (FALSE) si no lo es. Una geometría insertada en una base de datos DB2 siempre será válida porque DB2 Spatial Extender siempre valida sus datos espaciales antes de aceptarlos. Sin embargo, puede que otros proveedores de DBMS no validen la entrada, por lo que la aplicación debe hacerlo.
Sintaxis
db2gse.ST_IsValid(g db2gse.ST_Geometry)
Tipo devuelto
Entero
Ejemplos
La tabla valid_test se crea con las columnas geotype y g1. La columna geotype almacena el nombre de la subclase de geometría almacenada en la columna de geometría g1.
CREATE TABLE valid_test (geotype varchar(20), g1 db2gse.ST_Geometry)
Las sentencias INSERT insertan una subclase de ejemplo en la tabla valid_test.
INSERT INTO valid_test VALUES( 'Point', db2gse.ST_PointFromText('point (10.02 20.01)', db2gse.coordref()..srid(0)) ) INSERT INTO valid_test VALUES( 'Linestring', db2gse.ST_LineFromText('linestring (10.02 20.01,10.32 23.98,11.92 25.64)', db2gse.coordref()..srid(0)) ) INSERT INTO valid_test VALUES( 'Polygon', db2gse.ST_PolyFromText('polygon ((10.02 20.01,11.92 35.64, 25.02 34.15, 19.15 33.94,10.02 20.01))', db2gse.coordref()..srid(0)) ) INSERT INTO valid_test VALUES( 'Multipoint', db2gse.ST_MPointFromText('multipoint (10.02 20.01,10.32 23.98, 11.92 25.64)', db2gse.coordref()..srid(0)) ) INSERT INTO valid_test VALUES( 'Multilinestring', db2gse.ST_MLineFromText('multilinestring ((10.02 20.01, 10.32 23.98,11.92 25.64),(9.55 23.75,15.36 30.11))', db2gse.coordref()..srid(0)) ) INSERT INTO valid_test VALUES( 'Multipolygon', db2gse.ST_MPolyFromText('multipolygon (((10.02 20.01,11.92 35.64, 25.02 34.15,19.15 33.94,10.02 20.01)),((51.71 21.73,73.36 27.04,71.52 32.87, 52.43 31.90,51.71 21.73)))', db2gse.coordref()..srid(0)) )
La sentencia SELECT lista el nombre de subclase almacenado en la columna geotype con la dimensión de dicho tipo de geotype.
SELECT geotype, db2gse.ST_IsValid(g1) Valid FROM valid_test
GEOTYPE Valid -------------------- ------------- ST_Point 1 ST_Linestring 1 ST_Polygon 1 ST_Multipoint 1 ST_Multilinestring 1 ST_Multipolygon 1 6 record(s) selected.