ST_Raster является определяемым пользователем типом данных. Он хранится в отдельной строке, в отдельном столбце объекта типа ST_Raster в определенной пользователем таблице. ST_Raster обеспечивает полную поддержку базы геоданных, а также SQL-доступ к растровым данным. Это позволяет создавать приложения SQL для доступа и работы с растровыми операциями и запросами.
ST_Raster поддерживается в базах данных Oracle, Microsoft SQL Server и PostgreSQL. ST_Raster не поддерживается в SQL Server Express, Amazon Relational Database Service for SQL Server или Amazon Relational Database Service for PostgreSQL.
Чтобы использовать тип ST_Raster, необходимо настроить его в базе геоданных. Инструкции см. в разделах Установка ST_Raster в Oracle, Установка ST_Raster в PostgreSQL или Установка ST_Raster в SQL Server.
Тип объекта ST_Raster определяется следующим образом:
CREATE TYPE ST_Raster AS OBJECT (
  raster_id			    INTEGER,
  type				        INTEGER,
  extent			       SE_EXTENT,
  properties			   SE_RASTERPROPERTY_LIST,
  rasterband_list	ST_RASTERBAND_LIST
	 data					       ST_PIXELDATA);
| Атрибут | Описание | 
|---|---|
| raster_id | Уникально идентифицирует каждый растр в столбце таблицы, определенном как ST_Raster | 
| type | В настоящее время зарезервирован только для внутреннего использования | 
| extent | Дополнительный атрибут, хранящий экстент поиска | 
| properties | Используется для хранения различных атрибутов, связанных с растром, но не с отдельными каналами растра | 
| rasterband_list | Коллекция каналов растра, которые хранят атрибуты, свойственные каналам | 
| data | Зарезервированное поле | 
Объект ST_Raster состоит из нескольких дочерних объектов.

ST_RASTERBAND и ST_RASTERBAND_LIST
Тип ST_RASTERBAND_LIST определяется следующим образом:
CREATE TYPE st_rasterband_list 
AS VARRAY(4096) OF ST_RASTERBAND;
Тип ST_RASTERBAND определяется следующим образом:
CREATE TYPE st_rasterband AS OBJECT (
  rasterband_id	INTEGER,
  sequence			   INTEGER,
  types			      INTEGER,
  width			      INTEGER,
  height			     INTEGER,
  extent			     SE_EXTENT,
  block_origin		SE_COORD,
  block_width		 INTEGER,
  block_height		INTEGER,
  flags			      INTEGER);
| Атрибут | Описание | 
|---|---|
| rasterband_id | Уникально идентифицирует каждый канал растра в столбце типа ST_Raster | 
| sequence | Поддерживает последовательность каждого канала в данной коллекции каналов растра, значение последовательности для каждого канала в коллекции должно быть уникальным. | 
| types | Побитовая маска, используемая для хранения различных метаданных канала растра; отдельные атрибуты, содержащиеся в побитовой маске, могут оцениваться и назначаться с помощью SQL-функций. Значение этого атрибута не должно изменяться напрямую. | 
| width | Определяет ширину канала растра в пикселях | 
| height | Определяет высоту канала растра в пикселах | 
| extent | Географический экстент канала растра | 
| block_origin | Поддерживает географическую координату блокового происхождения | 
| block_width | Определяет ширину листа канала растра в пикселах | 
| block_height | Определяет высоту листа канала растра в пикселах | 
| flags | Хранит побитовую маску метаданных каналов растров. Отдельные атрибуты, содержащиеся в побитовой маске, могут оцениваться и назначаться с помощью SQL-функций. Это значение данного атрибута не должно изменяться напрямую. | 
SE_RASTERPROPERTY и SE_RASTERPROPERTY_LIST
Тип ST_RASTERPROPERTY_LIST определяется следующим образом:
CREATE TYPE se_rasterproperty_list
  AS VARRAY(1048576) OF SE_RASTERPROPERTY;
Тип ST_RASTERPROPERTY определяется следующим образом:
CREATE TYPE se_rasterproperty AS OBJECT (
  name				 VARCHAR2(65),
  intvalue	INTEGER,
  strvalue	VARCHAR2(160));
| Атрибут | Описание | 
|---|---|
| name | Имя параметра свойства растра | 
| intvalue | Хранит целочисленное значение свойства растра | 
| strvalue | Хранит строковое значение свойства растра | 
SE_EXTENT
Тип SE_EXTENT определяется следующим образом:
CREATE TYPE se_extent AS OBJECT (
  minx				FLOAT(64),
  miny				FLOAT(64),
  maxx				FLOAT(64),
  maxy				FLOAT(64));
| Атрибут | Описание | 
|---|---|
| minx | Минимальное значение X-координаты | 
| miny | Минимальное значение Y-координаты | 
| maxx | Максимальное значение X-координаты | 
| maxy | Максимальное значение Y-координаты | 
SE_COORD
Тип SE_COORD определяется следующим образом:
CREATE TYPE se_coord AS OBJECT (
  x				FLOAT(64),
  y				FLOAT(64));
| Атрибут | Описание | 
|---|---|
| x | Значение X-координаты | 
| y | Значение Y-координаты | 
ST_PIXELDATA
Тип ST_PIXELDATA определяется следующим образом:
CREATE TYPE st_pixeldata AS OBJECT (
width    INTEGER,
height   INTEGER,
numbands INTEGER,
extent   SE_EXTENT,
types    INTEGER,
data     BLOB,
mask     BLOB);
| Атрибут | Описание | 
|---|---|
| width | Ширина объекта в пикселах. | 
| height | Высота объекта в пикселах | 
| numbands | Определяет число каналов для объекта | 
| extent | Географический экстент объекта | 
| types | Побитовая маска, используемая для хранения различных метаданных растра. Отдельные атрибуты, содержащиеся в побитовой маске, могут оцениваться и назначаться с помощью SQL-функций. Значение этого атрибута не должно изменяться напрямую. | 
| data | Массив значений пикселов для объекта | 
| mask | Побитовый массив NoData для объекта |