You are on page 1of 11

SDO_GEOMETRY Constructors

SDO_GEOMETRY objects can be created using different


overloaded constructors.
The constructor input can be either of the following:
SQL Multimedia (SQL/MM) Well-Known Text (WKT) string in
the character large object (CLOB) or VARCHAR2 format
SQL/MM Well-Known Binary (WKB) object in the binary large
object (BLOB) format

Constructors return an SDO_GEOMETRY object.

3 - 16

Copyright 2008, Oracle. All rights reserved.

Constructors for SDO_GEOMETRY


Constructor formats:
SDO_GEOMETRY(wkt CLOB, srid NUMBER DEFAULT NULL);
SDO_GEOMETRY(wkt VARCHAR2, srid NUMBER DEFAULT NULL);
SDO_GEOMETRY(wkb BLOB, srid NUMBER DEFAULT NULL);

3 - 17

Copyright 2008, Oracle. All rights reserved.

Constructors for SDO_GEOMETRY:


WKT Examples
SELECT SDO_GEOMETRY(
'POLYGON ((146.0 66.0, 148.0 66.0,
148.0 68.0, 146.0 68.0, 146.0 66.0))')
FROM dual;

SDO_GEOMETRY(2003, NULL, NULL,


SDO_ELEM_INFO_ARRAY(1, 1003, 1),
SDO_ORDINATE_ARRAY(146,66, 148,66, 148,68, 146,68, 146,66))
SELECT SDO_GEOMETRY(
'POLYGON ((146.0 66.0, 148.0 66.0,
148.0 68.0, 146.0 68.0, 146.0 66.0))', 8307)
FROM dual;
SDO_GEOMETRY(2003, 8307, NULL,
SDO_ELEM_INFO_ARRAY(1, 1003, 1),
SDO_ORDINATE_ARRAY(146,66, 148,66, 148,68, 146,68, 146,66))

3 - 18

Copyright 2008, Oracle. All rights reserved.

SDO_GEOMETRY Member Methods


The SDO_GEOMETRY object type has member methods that
retrieve information about a geometry object.
Tables must be aliased when accessing attributes or
member methods on object columns.

3 - 19

Copyright 2008, Oracle. All rights reserved.

GET_GTYPE()Method
The GET_GTYPE()method returns the geometry type of a
geometry object, as specified in its SDO_GTYPE value.
SELECT g.geom.get_gtype() state_gtype
FROM
geod_states g
WHERE g.state = 'Delaware';

STATE_GTYPE
----------3

In the preceding example, the GEOD_STATES table is


aliased. This enables access to the GET_GTYPE()method of
the SDO_GEOMETRY object.
3 - 20

Copyright 2008, Oracle. All rights reserved.

GET_DIMS()Method
Returns the number of dimensions of a geometry object, as
specified in its SDO_GTYPE value
SELECT s.geom.get_dims() state_dims
FROM geod_states s
WHERE s.state = 'Delaware';

STATE_DIMS
---------2

3 - 21

Copyright 2008, Oracle. All rights reserved.

Some More Member Methods for SDO_GEOMETRY


GET_WKB():
Returns the WKB format of the geometry

GET_WKT():
Returns the WKT format of the geometry

ST_CoordDim():
Returns the dimensionality of the geometry (same as the
GET_DIMS()method)

ST_IsValid():
Validates the geometry
Returns 1 if valid and 0 if not valid

3 - 22

Copyright 2008, Oracle. All rights reserved.

Using the SDO_GEOMETRY Member Methods:


Example
set long 500;
SELECT a.geom.GET_WKT()
FROM (SELECT SDO_GEOMETRY(2003, 8307, NULL,
SDO_ELEM_INFO_ARRAY(1, 1003, 1),
SDO_ORDINATE_ARRAY(146,66, 148,66,
148,68, 146,68,
146,66)) geom
FROM dual) a;

A.GEOM.GET_WKT()
---------------POLYGON ((146.0 66.0, 148.0 66.0, 148.0 68.0, 146.0
68.0, 146.0 66.0))

3 - 23

Copyright 2008, Oracle. All rights reserved.

Using the SDO_GEOMETRY Member Methods:


Examples
SELECT a.geom.ST_IsValid()
FROM (SELECT SDO_GEOMETRY(2003, 8307, NULL,
SDO_ELEM_INFO_ARRAY(1, 1003, 1),
SDO_ORDINATE_ARRAY(146,66, 148,66, 148,68,
146,68, 146,66)) geom
FROM dual) a;
1
SELECT a.geom.ST_COORDDIM()
FROM (SELECT SDO_GEOMETRY(2003, 8307, NULL,
SDO_ELEM_INFO_ARRAY(1, 1003, 1),
SDO_ORDINATE_ARRAY(146,66, 148,66, 148,68,
146,68, 146,66)) geom
FROM dual) a;
2
3 - 24

Copyright 2008, Oracle. All rights reserved.

Summary
In this lesson, you should have learned how to:
Construct collection geometries such as multipoints,
multilines, and multipolygons
Define an oriented point
Use SDO_GEOMETRY constructors and member methods

3 - 25

Copyright 2008, Oracle. All rights reserved.

Practice 3: Overview
This practice covers the following topics:
Inserting collection geometries
Using SDO_GEOMETRY constructors and methods

3 - 26

Copyright 2008, Oracle. All rights reserved.

You might also like