1 FUNCTION OGC_IsClosed(
2 g ST_Geometry)
3 RETURN Integer DETERMINISTIC IS
4 BEGIN
5 IF(nls_upper(OGC_GeometryType(g)) IN ('LINESTRING', 'ST_LINESTRING', 'ST_CIRCULARSTRING', 'ST_COMPOUNDCURVE')) THEN
6 RETURN TREAT(g AS ST_Curve).ST_IsClosed();
7 END IF;
8 IF(nls_upper(OGC_GeometryType(g)) IN ('MULTILINESTRING', 'ST_MULTILINESTRING', 'ST_MULTICURVE')) THEN
9 RETURN TREAT(g AS ST_MultiCurve).ST_IsClosed();
10 END IF;
11 RETURN NULL;
12 END OGC_IsClosed;