Создание/добавление столбцов геометрического типа
Добавление столбца с геометрическим типом данных при создании
таблицы выполняется с помощью стандартного SQL-оператора CREATE OR
REPLACE TABLE
.
В спецификации типа данных столбца задается один из допустимых геометрических типов:
POINT |
точка |
LINESTRING[ (n) ] |
ломаная линия |
POLYGON[ (n) ] |
многоугольник |
MULTIPOINT[ (n) ] |
набор точек |
MULTILINESTRING[ (n) ] |
набор ломаных линий |
MULTIPOLYGON[ (n) ] |
набор многоугольников |
BOX[ (n) ] |
прямоугольник |
LINE |
прямая линия |
CIRCLE |
круг |
GEOMETRYCOLLECTION[ (n) ] |
набор геометрических объектов |
GEOMETRY |
обобщенный геометрический тип (может содержать любой геометрический объект) |
Синтаксические правила
-
Формат хранения значений типа LINE совпадает с форматом LINESTRING, имеющим две точки.
-
Все геометрические типы данных унаследованы от типа varbyte и имеют максимальную длину 4000 байт. В связи с этим для типов с переменной длиной значений (Linestring, Polygon, Multipoint, Multilinestring, Geometrycollection) установлено ограничение: по умолчанию размер значений перечисленных типов составляет 1024 байт. Для того чтобы создавать значения с большим размером, надо при создании таблицы явно указать этот размер, например:
create or replace table LINESTRING_TEST(LS LINESTRING(4000));
-
Тип данных BOX определяет прямоугольник. Две точки, которые являются вершинами прямоугольника, задают координаты диагонали. Данный формат автоматически преобразуется в формат POLYGON с пятью точками:
конструкция
BOX(1 1, 2 2)
эквивалентнаPOLYGON (1 1,1 2,2 2,2 1,1 1)
. -
Тип данных LINE определяет прямую линию. Формат хранения этого типа эквивалентен формату хранения ломаной линии с двумя точками:
конструкция
LINE(1 1, 2 2)
имеет то же WKB-представление (за исключением числа, задающего тип), что иLINESTRING (1 1, 2 2)
. -
Тип данных CIRCLE определяет круг:
CIRCLE(1 1, 2)
– круг с координатой центральной точки (1,1) и с радиусом 2. -
В столбец с типом данных GEOMETRYCOLLECTION можно загружать все типы геометрических данных, в столбец MULTIPOINT – данные типа POINT, в столбец MULTILINESTRING – данные типа LINESTRING, в столбец MULTIPOLYGON – данные типа POLYGON.
-
Добавление столбца с геометрическим типом данных в уже существующую таблицу выполняется с помощью стандартного SQL-оператора
ALTER TABLE ADD COLUMN
:ALTER TABLE GEO_TEST ADD COLUMN PL POLYGON;
-
Для столбца с обобщенным типом данных GEOMETRY может применяться любая геометрическая функция, однако, если хранящийся в таком столбце геометрический объект не является корректным для вызываемой функции, будет выдаваться соответствующий код завершения СУБД ЛИНТЕР.
-
CHECK-условия запрещены для BLOB-столбцов с геометрическими типами данных.