ST_IsValid 接受 ST_Geometry,若 ST_Geometry 有效,则返回 1 (TRUE);否则,它返回 0 (FALSE)。 插入 DB2 数据库的几何图形将总是有效的, 因为 DB2 Spatial Extender 在接受它的 Spatial 数据之前总是验证它。 然而,其他 DBMS 供应商可能不验证输入,而是要求应用程序执行进行验证。
语法
db2gse.ST_IsValid(g db2gse.ST_Geometry)
返回类型
整数
示例
创建具有 geotype 和 g1 列的 valid_test 表。 geotype 列存储 g1 几何图形列中存储的几何图形子类的名称。
CREATE TABLE valid_test (geotype varchar(20), g1 db2gse.ST_Geometry)
下列 INSERT 语句将样本子类插入 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)) )
该 SELECT 语句列示 geotype 列中存储的子类名和该 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.