ST_IsRing toma una serie lineal y devuelve 1 (TRUE) si es un anillo (es decir, la serie lineal está cerrada y es sencilla) y 0 (FALSE) si no es así.
Sintaxis
db2gse.ST_IsRing(c db2gse.ST_Curve)
Tipo devuelto
Entero
Ejemplos
La siguiente sentencia CREATE TABLE crea la tabla RING_LINESTRING, que tiene una sola columna de series lineales denominada LN1.
CREATE TABLE RING_LINESTRING (ln1 db2gse.ST_LineString)
Las siguientes sentencias INSERT insertan tres series lineales en la columna LN1. La primera fila contiene una serie lineal que no está cerrada y por lo tanto no es un anillo. La segunda fila contiene una serie lineal que está cerrada y es sencilla, por lo tanto es un anillo. La tercera fila contiene una serie lineal que está cerrada pero no es sencilla porque forma intersección con su propio interior, por lo tanto no es un anillo.
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)))
La siguiente sentencia SELECT y el conjunto de resultados correspondiente muestran los resultados de la función ST_IsRing. Las filas primera y tercera devuelven un 0. Esto se debe a que las series lineales no son anillos, mientras que la segunda fila devuelve un 1 porque es un anillo.
SELECT db2gse.ST_IsRing(ln1) "Is it ring" FROM RING_LINESTRING Is it ring ----------- 0 1 0 3 record(s) selected.