使用與參考手冊

ST_IsValid

ST_IsValid 使用一個 ST_Geometry 並傳回 1 (TRUE) (若它有效),否則會傳回 0 (FALSE)。 插入 DB2 資料庫的幾何一定有效,因為 DB2 Spatial Extender 一定驗證它的空間資料之後才接受它。 不過其它 DBMS 供應商可能沒有驗證此輸入,但是會要求應用程式這麼做。

語法

db2gse.ST_IsValid(g db2gse.ST_Geometry)

回覆類型

Integer

範例

使用直欄 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.


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]