ST_IsValid´Â ST_Geometry¸¦ ÃëÇØ À¯È¿Çϸé 1(TRUE)À» ¸®ÅÏÇϰí, ±×·¸Áö ¾ÊÀ¸¸é 0(FALSE)À» ¸®ÅÏÇÕ´Ï´Ù. Spatial Extender´Â °ø°£ µ¥ÀÌÅ͸¦ ½ÂÀÎÇϱâ Àü¿¡ Ç×»ó À¯È¿¼ºÀ» °Ë»çÇϱ⠶§¹®¿¡ DB2 µ¥ÀÌÅͺ£À̽º¿¡ »ðÀÔµÈ ±âÇÏÇÐÀº Ç×»ó À¯È¿ÇÒ °ÍÀÔ´Ï´Ù. ±×·¯³ª, ´Ù¸¥ DBMS º¥´õµéÀº ÀÔ·ÂÀÇ À¯È¿¼ºÀ» °Ë»çÇÏÁö ¾ÊÀ» ¼öµµ ÀÖÀ¸¹Ç·Î ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ ´ë½Å ±× ÀÛ¾÷À» ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.
±¸¹®
db2gse.ST_IsValid(g db2gse.ST_Geometry)
¸®ÅÏ À¯Çü
Integer
¿¹
valid_test Å×À̺íÀº Ä÷³ geotype ¹× g1À¸·Î ÀÛ¼ºµË´Ï´Ù. 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.