13.10 SDO_GEOR_UTL.emptyBlocks
形式
SDO_GEOR_UTL.emptyBlocks(
georaster IN OUT SDO_GEORASTER,
bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL,
parallelParam IN VARCHAR2 DEFAULT NULL);
説明
指定した背景値のみを含むすべてのブロックを空のLOBに切り捨てて、それらを空のブロックにします。GeoRaster記憶域に必要とされるディスク領域を削減するために使用できます。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- bgValues
-
ブロックを空のラスター・ブロックにするかどうかを決定する背景値を指定します。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのレイヤーに同じ入力値を使用)またはレイヤー次元のサイズ(各レイヤーにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のレイヤーに1を、2番目のレイヤーに5を、3番目のレイヤーに10を含むブロックが空のブロックになります。このパラメータがNULLの場合、
bgValues
がデフォルト値になります(単一要素のSDO_NUMBER_ARRAY(0))。 - parallelParam
-
操作の並列度を指定します。指定する場合、
parallel=n
という形式である必要があります(ここでのn
は1
より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。詳細は、GeoRasterでのパラレル処理を参照してください。
使用上のノート
georaster
がNULLの場合、このプロシージャは処理を実行しません。
このプロシージャの実行後、次のようにALTER TABLE
文を使用してLOB記憶域を縮小できます。
ALTER TABLE <rdt_table_name> MODIFY LOB (rasterblock)(SHRINK SPACE);
詳細は、Oracle Database SQL言語リファレンスのALTER TABLEを参照してください。
このプロシージャは、指定した背景値を使用してすべての空のブロックに入力するSDO_GEOR_UTL.fillEmptyBlocksとは対照的です。
例
次の例では、セル値が背景値(255,0,0)であるブロックを空にします。
DECLARE geor SDO_GEORASTER; BEGIN SELECT georaster INTO geor FROM georaster_table WHERE georid = 3 FOR UPDATE; SDO_GEOR_UTL.emptyBlocks(geor, SDO_NUMBER_ARRAY(255,0,0)); UPDATE georaster_table SET georaster = geor WHERE georid = 3; COMMIT; END; /
親トピック: SDO_GEOR_UTLパッケージのリファレンス