# ST_Boundary

Release 9.3
Note: This topic was updated for 9.3.1.

## Definition

ST_Boundary takes a geometry object and returns its combined boundary as a geometry object.

## Syntax

Oracle

``sde.st_boundary (g1 sde.st_geometry)``

PostgreSQL

``st_boundary (g1 st_geometry)``

ST_Geometry

## Example

In this example, the boundaries table is created with two columns: type, defined as a varchar, and geometry, defined as the superclass ST_Geometry. The subsequent INSERT statements add one record for each one of the subclass geometries. The ST_Boundary function retrieves the boundary of each subclass stored in the geometry column. Note that the dimension of the resulting geometry is always one less than the input geometry. Points and multipoints always result in a boundary that is an empty geometry, dimension –1. Linestrings and multilinestrings return a multipoint boundary, dimension 0. A polygon or multipolygon always returns a multilinestring boundary, dimension 1.

Oracle

``````CREATE TABLE boundaries (geotype varchar(20), geometry sde.st_geometry);
INSERT INTO boundaries VALUES (
'Point',
sde.st_pointfromtext ('point (10.02 20.01)', 0)
);
INSERT INTO boundaries VALUES (
'Linestring',
sde.st_linefromtext ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0)
);
INSERT INTO boundaries VALUES (
'Polygon',
sde.st_polyfromtext ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15, 19.15 33.94, 10.02 20.01))', 0)
);
INSERT INTO boundaries VALUES (
'Multipoint',
sde.st_mpointfromtext ('multipoint (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0)
);
INSERT INTO boundaries VALUES (
'Multilinestring',
sde.st_mlinefromtext ('multilinestring ((10.02 20.01, 10.32 23.98, 11.92 25.64), (9.55 23.75, 15.36 30.11))', 0)
);
INSERT INTO boundaries VALUES (
'Multipolygon',
sde.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)))', 0)
);
SELECT type, sde.st_astext (sde.st_boundary (geometry)) "The boundary"
FROM boundaries;
GEOTYPE            The boundary
Point              POINT EMPTY
Linestring         MULTIPOINT(10.02000000 20.01000000, 11.92000000 25.64000000)
Polygon            MULTILINESTRING ((10.02000000 20.01000000, 19.15000000 33.94000000,25.02000000 34.15000000, 11.92000000 35.64000000, 10.02000000 20.01000000))
Multipoint         POINT EMPTY
Multilinestring    MULTIPOINT (9.55000000 23.75000000, 10.02000000 20.01000000, 11.92000000 25.64000000, 15.36000000 30.11000000)
Multipolygon       MULTILINESTRING((51.71000000 21.73000000, 73.36000000 27.04000000, 71.52000000 32.87000000, 52.43000000 31.90000000, 51.71000000 21.73000000), (10.02000000 20.01000000, 19.15000000 33.94000000, 25.02000000 34.15000000, 11.92000000 35.64000000, 10.02000000 20.01000000))``````

PostgreSQL

``````CREATE TABLE boundaries (type varchar(20), geometry st_geometry);
INSERT INTO boundaries VALUES (
'Point',
st_point ('point (10.02 20.01)', 0)
);
INSERT INTO boundaries VALUES (
'Linestring',
st_linestring ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0)
);
INSERT INTO boundaries VALUES (
'Polygon',
st_polygon ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15, 19.15 33.94, 10.02 20.01))', 0)
);
INSERT INTO boundaries VALUES (
'Multipoint',
st_multipoint ('multipoint (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0)
);
INSERT INTO boundaries VALUES (
'Multilinestring',
st_multilinestring ('multilinestring ((10.02 20.01, 10.32 23.98, 11.92 25.64),
(9.55 23.75, 15.36 30.11))', 0)
);
INSERT INTO boundaries VALUES (
'Multipolygon',
st_multipolygon ('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)))', 0)
);
SELECT type, st_astext (st_boundary (geometry)) AS "The boundary"
FROM boundaries;
type              The boundary
Point              EMPTY
Linestring         MULTIPOINT(10.02000000 20.01000000, 11.92000000
25.64000000)
Polygon            LINESTRING ((10.02000000 20.01000000, 19.15000000
33.94000000,25.02000000 34.15000000, 11.92000000 35.64000000, 10.02000000
20.01000000))
Multipoint         EMPTY
Multilinestring    MULTIPOINT (9.55000000 23.75000000, 10.02000000
20.01000000, 11.92000000 25.64000000, 15.36000000 30.11000000)
Multipolygon       MULTILINESTRING((51.71000000 21.73000000, 73.36000000
27.04000000, 71.52000000 32.87000000, 52.43000000 31.90000000,
51.71000000 21.73000000), (10.02000000 20.01000000, 19.15000000
33.94000000, 25.02000000 34.15000000, 11.92000000 35.64000000,
10.02000000 20.01000000))``````