ST_Raster はユーザー定義データ タイプです。オブジェクト タイプ ST_Raster はユーザー定義テーブルの 1 つの行の 1 つの列に格納されます。ST_Raster はラスター データへの SQL アクセスだけではなく、ジオデータベースの完全なサポートを提供します。これによって、ラスター操作とクエリにアクセスして使用できる SQL アプリケーションを作成できるようになります。
ST_Raster は Oracle、Microsoft SQL Server、および PostgreSQL データベースをサポートしています。SQL Server Express、Amazon Relational Database Service for SQL Server、Amazon Relational Database Service for PostgreSQL はサポートしていません。
ST_Raster タイプを使用するには、ジオデータベースで設定する必要があります。手順については、「Oracle での ST_Raster のインストール」、「PostgreSQL での ST_Raster のインストール」、または「SQL Server での ST_Raster のインストール」をご参照ください。
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 として定義されるテーブル列の各ラスターの一意な ID  | 
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 タイプ列内の各ラスター バンドの一意な ID  | 
sequence  | ラスター バンド コレクション内の各バンドの順序を管理します。指定したラスター バンド コレクションに対して、コレクション内の各バンドの順序の値は一意である必要があります。  | 
タイプ  | さまざまなラスター バンド メタデータの格納に使用されるビットマスク。ビットマスクに格納された個々の属性は SQL 関数を通じて検証され、割り当てられます。この属性値を直接変更してはいけません。  | 
width  | ラスター バンドのピクセル幅を定義します  | 
height  | ラスター バンドのピクセルの高さを定義します  | 
extent  | ラスター バンドの地理範囲  | 
block_origin  | ブロックの原点の地理座標を管理します  | 
block_width  | ラスター バンド タイルのピクセル幅を定義します  | 
block_height  | ラスター バンド タイルのピクセルの高さを定義します  | 
flags  | ラスター バンド メタデータのビットマスクを保持します。ビットマスクに格納された個々の属性は SQL 関数を通じてアクセスでき、割り当てることができます。この属性値を直接変更してはいけません。  | 
SE_RASTERPROPERTY および SE_RASTERPROPERTY_LIST
SE_RASTERPROPERTY_LIST タイプは次のように定義されます。
CREATE TYPE se_rasterproperty_list
  AS VARRAY(1048576) OF SE_RASTERPROPERTY;
SE_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  | オブジェクトの地理範囲  | 
タイプ  | さまざまなラスター メタデータの格納に使用されるビットマスク。ビットマスクに格納された個々の属性は SQL 関数を通じて検証され、割り当てられます。この属性値を直接変更してはいけません。  | 
data  | オブジェクトのピクセル値の配列  | 
mask  | オブジェクトの NoData ビットマスク 配列  |