Создание/добавление столбцов геометрического типа

Добавление столбца с геометрическим типом данных при создании таблицы выполняется с помощью стандартного SQL-оператора CREATE OR REPLACE TABLE.

В спецификации типа данных столбца задается один из допустимых геометрических типов:

POINT точка
LINESTRING[ (n) ] ломаная линия
POLYGON[ (n) ] многоугольник
MULTIPOINT[ (n) ] набор точек
MULTILINESTRING[ (n) ] набор ломаных линий
MULTIPOLYGON[ (n) ] набор многоугольников
BOX[ (n) ] прямоугольник
LINE прямая линия
CIRCLE круг
GEOMETRYCOLLECTION[ (n) ] набор геометрических объектов
GEOMETRY обобщенный геометрический тип (может содержать любой геометрический объект)

Синтаксические правила

  1. Формат хранения значений типа LINE совпадает с форматом LINESTRING, имеющим две точки.

  2. Все геометрические типы данных унаследованы от типа varbyte и имеют максимальную длину 4000 байт. В связи с этим для типов с переменной длиной значений (Linestring, Polygon, Multipoint, Multilinestring, Geometrycollection) установлено ограничение: по умолчанию размер значений перечисленных типов составляет 1024 байт. Для того чтобы создавать значения с большим размером, надо при создании таблицы явно указать этот размер, например:

    create or replace table LINESTRING_TEST(LS LINESTRING(4000));
  3. Тип данных BOX определяет прямоугольник. Две точки, которые являются вершинами прямоугольника, задают координаты диагонали. Данный формат автоматически преобразуется в формат POLYGON с пятью точками:

    конструкция BOX(1 1, 2 2) эквивалентна POLYGON (1 1,1 2,2 2,2 1,1 1).

  4. Тип данных LINE определяет прямую линию. Формат хранения этого типа эквивалентен формату хранения ломаной линии с двумя точками:

    конструкция LINE(1 1, 2 2) имеет то же WKB-представление (за исключением числа, задающего тип), что и LINESTRING (1 1, 2 2).

  5. Тип данных CIRCLE определяет круг: CIRCLE(1 1, 2) – круг с координатой центральной точки (1,1) и с радиусом 2.

  6. В столбец с типом данных GEOMETRYCOLLECTION можно загружать все типы геометрических данных, в столбец MULTIPOINT – данные типа POINT, в столбец MULTILINESTRING – данные типа LINESTRING, в столбец MULTIPOLYGON – данные типа POLYGON.

  7. Добавление столбца с геометрическим типом данных в уже существующую таблицу выполняется с помощью стандартного SQL-оператора ALTER TABLE ADD COLUMN:

    ALTER TABLE GEO_TEST ADD COLUMN PL POLYGON;
  8. Для столбца с обобщенным типом данных GEOMETRY может применяться любая геометрическая функция, однако, если хранящийся в таком столбце геометрический объект не является корректным для вызываемой функции, будет выдаваться соответствующий код завершения СУБД ЛИНТЕР.

  9. CHECK-условия запрещены для BLOB-столбцов с геометрическими типами данных.