ST_IsRing は linestring を引き数とし、それがリングであれば (つまり閉じた単純な折れ線であれば)、1 (TRUE) を戻します。そうでなければ 0 (FALSE) を戻します。
構文
db2gse.ST_IsRing(c db2gse.ST_Curve)
戻りタイプ
整数
例
以下の CREATE TABLE ステートメントによって RING_LINESTRING 表が作成されます。この表には LN1 という 1 つの折れ線列があります。
CREATE TABLE RING_LINESTRING (ln1 db2gse.ST_LineString)
以下の INSERT ステートメントによって、3 つの折れ線が LN1 列に挿入されます。最初の行には、閉じていない、つまりリングでない折れ線が含まれています。 2 番目の行には、閉じた単純な折れ線、つまりリングである折れ線が含まれています。 3 番目の行には、閉じているものの単純ではない (自身の内部と交差している)、つまりリングではない折れ線が含まれています。
INSERT INTO RING_LINESTRING VALUES(db2gse.ST_LineFromText('linestring (10.02 20.01,10.32 23.98, 11.92 25.64)', db2gse.coordref()..srid(0))) INSERT INTO RING_LINESTRING VALUES(db2gse.ST_LineFromText('linestring (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 RING_LINESTRING VALUES(db2gse.ST_LineFromText('linestring (15.47 30.12,20.73 22.12,10.83 14.13, 16.45 17.24,21.56 13.37,11.23 22.56, 19.11 26.78,15.47 30.12)', db2gse.coordref()..srid(0)))
以下の SELECT ステートメントおよび対応する結果セットによって、 ST_IsRing 関数の出力が表示されます。最初の行と 3 番目の行は、0 を戻します。その理由は折れ線がリングではないからですが、 2 番目の行は折れ線がリングなので 1 を戻します。
SELECT db2gse.ST_IsRing(ln1) "Is it ring" FROM RING_LINESTRING Is it ring ----------- 0 1 0 3 record(s) selected.