7.118 SDO_GEOR.setBitmapMask

形式

SDO_GEOR.setBitmapMask(
     georaster   IN OUT SDO_GEORASTER, 
     layerNumber IN NUMBER, 
     mask        IN SDO_GEORASTER, 
     NODATAMask  IN VARCHAR2 DEFAULT NULL);

説明

GeoRasterオブジェクトにビットマップ・マスクをアタッチするか、現行のビットマップ・マスクを置換または削除します。

パラメータ

georaster

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

layerNumber

ビットマップ・マスクを関連付けるレイヤーを指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

mask

GeoRasterオブジェクトにアタッチするビットマップ・マスクを指定します。このパラメータがNULLの場合は、指定したGeoRasterオブジェクト・レイヤーに関連付けられた既存のビットマップ・マスクがすべて削除されます。

NODATAMask

maskをNODATAマスクとして解釈するかどうかを指定します。文字列TRUEでは、maskはNODATAマスクとして解釈されますが、NULLを含む他の値では、maskはNODATAマスクとして解釈されません

使用上のノート

このプロシージャは、指定したGeoRasterオブジェクトまたはレイヤーにビットマップ・マスクがすでに関連付けられている場合、指定したマスクとの置換または削除(maskパラメータにNULL値が指定されている場合)を行います。

maskパラメータ値がNULLでない場合、ビットマップ・マスクは1つのバンドのみを持つ有効な1BITのGeoRasterオブジェクトであることが必要です。また、ビットマップ・マスクの行および列次元のサイズは、ターゲットのGeoRasterオブジェクトの行および列次元と同じであることが必要です。入力されたGeoRasterオブジェクト(georasterパラメータ)と同じGeoRasterオブジェクトは指定できません。

ターゲットのGeoRasterオブジェクトが空白のGeoRasterオブジェクトの場合、このプロシージャでは例外が発生します。

ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。

次の例では、GRTAB表にあるid=1のGeoRasterオブジェクトをビットマップ・マスクとして使用し、GEORASTER_TABLEにあるgeorid=1のGeoRasterオブジェクトの1番レイヤーにアタッチします。ビットマップ・マスクはNODATAマスクと解釈されます。

declare
  gr sdo_georaster;
  mk sdo_georaster;
begin
  select georaster into gr from georaster_table where georid=1 for update;
  select grobj into mk from grtab where id=1;
  sdo_geor.setBitmapMask(gr, 1, mk, 'true');
  update georaster_table set georaster=gr where georid=0;
  commit;
end;
/