ST_IsRing takes a linestring and returns 1 (TRUE) if it is a ring (namely, the linestring is closed and simple); otherwise, it returns 0 (FALSE).
Syntax
db2gse.ST_IsRing(c db2gse.ST_Curve)
Return type
Integer
Examples
The following CREATE TABLE statement creates the RING_LINESTRING table, which has a single linestring column that is called LN1.
CREATE TABLE RING_LINESTRING (ln1 db2gse.ST_LineString)
The following INSERT statements insert three linestrings into the LN1 column. The first row contains a linestring that is not closed and therefore is not a ring. The second row contains a linestring that is closed and is simple and therefore is a ring. The third row contains a linestring that is closed but is not simple because it intersects its own interior, and therefore is not a ring.
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)))
The following SELECT statement and the corresponding result set shows the results of the ST_IsRing function. The first and third rows return a 0. This is because the linestrings are not rings, while the second row returns a 1 because it is a ring.
SELECT db2gse.ST_IsRing(ln1) "Is it ring" FROM RING_LINESTRING
Is it ring
-----------
0
1
0
3 record(s) selected.