7.80 SDO_GEOR.getRasterBlockLocator

形式

SDO_GEOR.getRasterBlockLocator(
     georaster         IN SDO_GEORASTER, 
     pyramidLevel      IN NUMBER, 
     bandBlockNumber   IN NUMBER, 
     rowBlockNumber    IN NUMBER, 
     columnBlockNumber IN NUMBER, 
     loc               IN OUT NOCOPY BLOB, 
     isBitmapMask      IN VARCHAR2 DEFAULT NULL, 
     lock_for_write    IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.getRasterBlockLocator(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     rowNumber      IN NUMBER, 
     colNumber      IN NUMBER, 
     bandNumber     IN NUMBER, 
     offset         OUT NUMBER, 
     loc            IN OUT NOCOPY BLOB, 
     isBitmapMask   IN VARCHAR2 DEFAULT NULL, 
     lock_for_write IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.getRasterBlockLocator(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     ptGeom         IN SDO_GEOMETRY, 
     layerNumber    IN NUMBER, 
     offset         OUT NUMBER, 
     loc            IN OUT NOCOPY BLOB, 
     isBitmapMask   IN VARCHAR2 DEFAULT NULL, 
     lock_for_write IN VARCHAR2 DEFAULT NULL);

説明

このプロシージャには3つの構文があります。

  • 最初にリストされている構文は、pyramidLevelbandBlockNumberrowBlockNumberおよびcolumnBlockNumberパラメータの指定によってラスター・ブロックのLOBロケータを戻します。

  • 2番目と3番目にリストされている構文は、特定の単一セルを含むラスター・ブロックのLOBロケータおよびラスター・ブロック内のセルのオフセットを戻します。特定の単一セルは、pyramidLevelrowNumbercolumnNumberおよびbandNumberパラメータによって、またはセル座標空間かモデル座標空間の点ジオメトリ・パラメータ(ptGeom)によって識別されます。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

pyramidLevel

ブロックのピラミッド・レベルを指定します。

bandBlockNumber

ブロックのバンド番号を指定します。

bandNumber

セルのバンド番号を指定します。

rowBlockNumber

ブロックの行番号を指定します。

rowNumber

セルの行番号を指定します。

columnBlockNumber

ブロックの列番号を指定します。

columnNumber

セルの列番号を指定します。

ptGeom

セルの位置を特定する点ジオメトリを指定します。

layerNumber

値を戻すセルを含む論理レイヤーの番号を指定します。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの座標番号に1を足した値です。)

offset

検索されるラスター・ブロック内のセルのオフセット(バイト単位)を含める出力パラメータを指定します。ラスター・ブロックが圧縮される場合、それは常にブロックの解凍バージョンに含まれるセルのオフセットを示します。

loc

LOBロケータを指定します。

isBitmapMask

ビットマップ・マスク・ブロックにアクセスする場合は文字列TRUEを指定します。通常のラスター・ブロックにアクセスする場合は文字列FALSEを指定します。このパラメータを指定しない場合は、通常のラスター・ブロックにアクセスします。ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。

lockForWrite

文字列TRUEを指定すると、ラスター・データ表の行がロックされ、現行のトランザクションが終了するまで、他のユーザーはその行をロックしたり更新することができなくなります。文字列FALSEを指定すると、ラスター・データ表の行はロックされません。このパラメータを指定しない場合、行はロックされません。

使用上のノート

このプロシージャは、指定されたパラメータを使用してラスター・ブロック・ロケータ(および一部の構文ではオフセット)を取得します。LOBロケータはオープンされず、データの読取りや処理は行われません。LOBロケータのオープンおよびクローズ、LOBロケータからのデータの読取りおよびLOBロケータへのデータの書込みには、標準のLOB操作を使用する必要があります。

データの読取りまたは書込みが正しく行われるようにするには、ラスター・データの物理記憶域(「GeoRasterの物理記憶域」を参照)を理解しておく必要があります。また、必要に応じてラスター・データを圧縮および解凍する必要があります。

LOBロケータについては、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。

次の例では、2つのラスター・ブロックのLOBロケータを取得します。1つ目は通常のラスター・ブロックで、2つ目はビットマップ・マスク・ブロックです。SDO_GEOR.getRasterBlockLocatorプロシージャへのいずれのコールも、ラスター・データ表の行がロックされます。

DECLARE
  gr sdo_georaster;
  lb blob;
  offset number;
BEGIN
  select georaster into gr from georaster_table where georid=1;
  sdo_geor.getRasterBlockLocator(gr, 0, 0, 0, 0, offset,lb, null, 'TRUE');
  sdo_geor.getRasterBlockLocator(gr, 0, 0, 0, 0, offset,lb, 'TRUE', 'TRUE');
END;
/