13 SDO_GEOR_UTLパッケージのリファレンス
SDO_GEOR_UTLパッケージには、GeoRasterに関連するユーティリティ操作を行うためのサブプログラム(ファンクションおよびプロシージャ)が含まれています。この章では、そのサブプログラムのリファレンス情報を、例を使用して説明します。
- SDO_GEOR_UTL.calcOptimizedBlockSize
- SDO_GEOR_UTL.calcRasterNominalSize
- SDO_GEOR_UTL.calcRasterStorageSize
- SDO_GEOR_UTL.calcSurfaceArea
- SDO_GEOR_UTL.clearReportTable
- SDO_GEOR_UTL.createDMLTrigger
- SDO_GEOR_UTL.createReportTable
- SDO_GEOR_UTL.disableReport
- SDO_GEOR_UTL.dropReportTable
- SDO_GEOR_UTL.emptyBlocks
- SDO_GEOR_UTL.enableReport
- SDO_GEOR_UTL.fillEmptyBlocks
- SDO_GEOR_UTL.generateColorRamp
- SDO_GEOR_UTL.generateGrayRamp
- SDO_GEOR_UTL.getAllStatusReport
- SDO_GEOR_UTL.getMaxMemSize
- SDO_GEOR_UTL.getReadBlockMemSize
- SDO_GEOR_UTL.getProgress
- SDO_GEOR_UTL.getStatusReport
- SDO_GEOR_UTL.getWriteBlockMemSize
- SDO_GEOR_UTL.isReporting
- SDO_GEOR_UTL.makeRDTNamesUnique
- SDO_GEOR_UTL.recreateDMLTriggers
- SDO_GEOR_UTL.renameRDT
- SDO_GEOR_UTL.setClientID
- SDO_GEOR_UTL.setMaxMemSize
- SDO_GEOR_UTL.setReadBlockMemSize
- SDO_GEOR_UTL.setSeqID
- SDO_GEOR_UTL.setWriteBlockMemSize
13.1 SDO_GEOR_UTL.calcOptimizedBlockSize
形式
SDO_GEOR_UTL.calcOptimizedBlockSize( dimensionSize IN SDO_NUMBER_ARRAY, blockSize IN OUT SDO_NUMBER_ARRAY, pyramidLevel IN number default 0);
説明
GeoRaster次元サイズおよびユーザー指定のブロック・サイズ値に基づいて、最適なblockSize
値を計算および設定することで、使用するGeoRasterオブジェクト記憶域の埋込みスペースが少なくなります。
パラメータ
使用上のノート
このプロシージャでは、適切なブロック・サイズ値(最適ではない場合があります)を提供して自動的にそれらを調整し、GeoRasterオブジェクト記憶域の埋込みスペースの容量を削減するために最も適した特定のGeoRaster次元サイズ配列のブロック・サイズ配列値を決定します。調整は、常にユーザー指定の値を基準に行われます。詳細は、「記憶域パラメータ」の表1-1のblocking
キーワードおよびblockSize
キーワードの説明を参照してください。
dimensionSize
およびblockSize
パラメータ値に、次元の値を行、列、バンドの順で指定します。
入力されたdimensionSize
パラメータまたはblockSize
パラメータに無効な値が含まれている場合、例外が発生します。
例
次の例では、指定した次元サイズ配列の(12371,11261,13)および指定したブロック・サイズ配列の(512,512,5)に基づいて、最適なブロック・サイズ値を計算して表示します。戻された最適なrowBlockSize
値は、元の値の512ではなく538であり、戻された最適なbandBlockSize
値は、元の値の5ではなく1であることに注意してください。
DECLARE dimensionSize sdo_number_array; blockSize sdo_number_array; BEGIN dimensionSize:=sdo_number_array(12371,11261,13); blockSize:=sdo_number_array(512,512,5); sdo_geor_utl.calcOptimizedBlockSize(dimensionSize,blockSize); dbms_output.put_line('Optimized rowBlockSize = '||blockSize(1)); dbms_output.put_line('Optimized colBlockSize = '||blockSize(2)); dbms_output.put_line('Optimized bandBlockSize = '||blockSize(3)); END; / Optimized rowBlockSize = 538 Optimized colBlockSize = 512 Optimized bandBlockSize = 1
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.2 SDO_GEOR_UTL.calcRasterNominalSize
形式
SDO_GEOR_UTL.calcRasterNominalSize( geor IN SDO_GEORASTER, padding IN VARCHAR2 DEFAULT 'TRUE', pyramid IN VARCHAR2 DEFAULT 'TRUE', bitmapMask IN VARCHAR2 DEFAULT 'TRUE' ) RETURN NUMBER;
説明
GeoRasterオブジェクトが圧縮されておらず空のラスター・ブロックが含まれていないものとして、GeoRasterオブジェクトのラスター・ブロックの合計長(バイト単位)を戻します。
パラメータ
- geor
-
GeoRasterオブジェクトを指定します。
- padding
-
文字列
TRUE
(デフォルト)を指定すると、ラスター・ブロック内の埋込みが考慮されます。文字列FALSE
を指定すると、ラスター・ブロック内の埋込みは考慮されません。 - pyramid
-
文字列
TRUE
(デフォルト)を指定すると、ピラミッドのサイズが考慮されます。文字列FALSE
を指定すると、ピラミッドのサイズは考慮されません。 - bitmapMask
-
文字列
TRUE
(デフォルト)を指定すると、関連付けられたビットマップ・マスクが考慮されます。文字列FALSE
を指定すると、関連付けられたビットマップ・マスクは考慮されません。ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。
使用上のノート
このファンクションでは、LOB記憶域のオーバーヘッドが考慮されないため、結果はGeoRasterオブジェクトに実際に必要な記憶域の近似値となります。
このファンクションの結果は、同じGeoRasterオブジェクトでのSDO_GEOR_UTL.calcRasterStorageSizeファンクションの結果と同じか、またはそれ以上の値になります。このファンクションによって、同じGeoRasterオブジェクトのSDO_GEOR_UTL.calcRasterStorageSizeファンクションより大きな値が戻された場合、これらの値の差は、圧縮または空のラスター・ブロック、あるいはその両方を使用することによって節約された領域を反映しています。
GeoRaster圧縮の詳細は、「圧縮と解凍」を参照してください。
例
次の例では、現行のブロック化方法に基づいて、GeoRasterオブジェクトの名目上のラスター・サイズ(バイト単位)を計算します。戻されるサイズには、(デフォルトで)ラスター・ブロック内の埋込み、関連付けられたビットマップ・マスクおよびピラミッドが含まれています。
SELECT SDO_GEOR_UTL.calcRasterNominalSize(georaster) nsize FROM georaster_table WHERE georid=1; NSIZE ---------- 289150
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.3 SDO_GEOR_UTL.calcRasterStorageSize
形式
SDO_GEOR_UTL.calcRasterStorageSize( geor IN SDO_GEORASTER ) RETURN NUMBER;
説明
GeoRasterオブジェクトのすべてのラスター・ブロックの実際の長さ(バイト単位)を戻します。
使用上のノート
このファンクションは、GeoRasterオブジェクトのすべてのラスター・ブロックの実際の長さを計算します。このファンクションでは、LOB記憶域のオーバーヘッドが考慮されないため、結果はGeoRasterオブジェクトの実際の記憶域サイズの近似値となります。基本的に、このファンクションは次の文を実行します。
EXECUTE IMMEDIATE 'SELECT SUM(DBMS_LOB.getLength(rasterBlock)) FROM ' || geor.rasterDataTable || ' WHERE rasterId=' || geor.rasterId;
このファンクションの結果は、同じGeoRasterオブジェクトのSDO_GEOR_UTL.calcRasterNominalSizeファンクションの結果と同じか、またはそれ以下の値になります。このファンクションによって、同じGeoRasterオブジェクトのSDO_GEOR_UTL.calcRasterNominalSizeファンクションより小さな値が戻された場合、これらの値の差は、圧縮または空のラスター・ブロック、あるいはその両方を使用することによって節約された領域を反映します。
例
次の例では、指定したGeoRasterオブジェクトの実際のサイズと名目上のサイズの比率を(小数として)計算します。この例では、実際のサイズは名目上のサイズの約20分の1(1/20)です。
SELECT SDO_GEOR_UTL.calcRasterStorageSize(georaster)/ SDO_GEOR_UTL.calcRasterNominalSize(georaster) ratio FROM georaster_table WHERE georid=1; RATIO ---------- .056198816
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.4 SDO_GEOR_UTL.calcSurfaceArea
形式
SDO_GEOR_UTL.calcSurfaceArea( georaster IN SDO_GEORASTER, window IN SDO_GEOMETRY, parallel IN NUMBER ) RETURN NUMBER;
説明
GeoRasterオブジェクトに格納される数値標高モデル(DEM)のデータで表される3次元(3D)の表面積を計算して戻します。
パラメータ
使用上のノート
このファンクションは、window
パラメータで指定した特定の領域に含まれているか接触しているすべてのセルを最初に検索し、各セルを2つの3D三角形に分割し、各三角形の3D表面積を計算し、結果としてこれらの領域の値の合計を戻します。ウィンドウ境界に交差している三角形の領域は、交差しているジオメトリに基づいて計算されるため、このファンクションは高い正確性とともに表面積を戻します。
parallel
パラメータが1未満の場合、1が使用されます(つまり、並列性なし)。
例
次の例では、DEMデータを使用してgeom
内の表面積を計算します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE geor SDO_GEORASTER; geom SDO_GEOMETRY; area number; BEGIN geom:=sdo_geometry(2003,82394, NULL, mdsys.sdo_elem_info_array(1, 1003, 1), mdsys.sdo_ordinate_array(20283.775, 1011087.9, 18783.775, 1008687.9, 21783.775, 1008687.9, 22683.775+0.001, 1009587.9, 20283.775, 1011087.9)); SELECT georaster INTO geor FROM georaster_table WHERE georid = 3; area:=SDO_GEOR_UTL.calcSurfaceArea(geor,geom,2); END; /
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.5 SDO_GEOR_UTL.clearReportTable
形式
SDO_GEOR_UTL.clearReportTable( client_id IN NUMBER DEFAULT NULL);
説明
GeoRaster操作のステータス情報を格納する表のレコードを削除します。
パラメータ
- client_id
-
削除するレコードを含むクライアントのIDを指定します。このパラメータを指定しない場合、表のすべてのレコードが削除されます。
(クライアントIDは、SDO_GEOR_UTL.setClientIDプロシージャを使用して設定できます。)
使用上のノート
このプロシージャは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。
例
次の例では、レポート表のすべてのレコードを削除します。
EXECUTE SDO_GEOR_UTL.clearReportTable;
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.6 SDO_GEOR_UTL.createDMLTrigger
形式
SDO_GEOR_UTL.createDMLTrigger( tableName IN VARCHAR2, columnName IN VARCHAR2);
説明
GeoRaster表のGeoRaster列に、必要な標準のGeoRasterデータ操作言語(DML)トリガーを作成します。これによって、そのDMLに関連付けられたトリガーが起動された際に、適切な操作が実行されます。
パラメータ
使用上のノート
ノート:
より便利なかわりの方法は、SDO_GEOR_UTL.recreateDMLTriggersプロシージャを使用することで、このプロシージャを1回コールすると、現在のユーザーがアクセス権を持っているすべてのGeoRaster列にDMLトリガーが再作成または作成されます。
「GeoRaster DMLトリガー」に示すとおり、GeoRasterの内部表とデータ構造の一貫性および整合性を保証するために、ユーザーがGeoRaster表(1つ以上のGeoRaster列を含む表)を作成すると、各GeoRaster列に対応する一意のDMLトリガーがGeoRasterにより自動的に作成されます。この場合、SDO_GEOR_UTL.createDMLTriggerプロシージャをコールして、追加した各GeoRaster列に対してDMLトリガーを作成する必要があります。
それ以外の場合、通常はこのプロシージャをコールする必要はありませんが、データベース・アップグレードやデータ移行などの一部の使用例では、DMLトリガーを再作成する場合に役立ちます。
例
次の例では、GEOR_COLという名前のGeoRaster列を含むXYZ_GEOR_TABという名前の表に、標準のGeoRaster DMLトリガーを作成します。
EXECUTE sdo_geor_utl.createDMLTrigger('XYZ_GEOR_TAB', 'GEOR_COL');
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.7 SDO_GEOR_UTL.createReportTable
形式
SDO_GEOR_UTL.createReportTable;
説明
GeoRaster操作のステータス情報を格納する表を作成します。
パラメータ
なし。
使用上のノート
このプロシージャは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。
例
次の例では、GeoRaster操作のステータス情報を格納する表を作成します。
EXECUTE SDO_GEOR_UTL.createReportTable;
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.8 SDO_GEOR_UTL.disableReport
形式
SDO_GEOR_UTL.disableReport;
説明
現在のセッションでGeoRaster操作のステータス・レポートを無効にします。
パラメータ
なし。
使用上のノート
このプロシージャは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。
例
次の例では、現在のセッションでGeoRaster操作のステータス・レポートを無効にします。
EXECUTE SDO_GEOR_UTL.disableReport;
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.9 SDO_GEOR_UTL.dropReportTable
形式
SDO_GEOR_UTL.dropReportTable;
説明
GeoRaster操作のステータス情報を格納する表を削除します。
パラメータ
なし。
使用上のノート
このプロシージャは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。
例
次の例では、GeoRaster操作のステータス情報を格納する表を削除します。
EXECUTE SDO_GEOR_UTL.dropReportTable;
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.10 SDO_GEOR_UTL.emptyBlocks
形式
SDO_GEOR_UTL.emptyBlocks( georaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY 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))。
使用上のノート
georaster
がNULLの場合、このプロシージャは処理を実行しません。
このプロシージャは、指定した背景値を使用してすべての空のブロックに入力する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パッケージのリファレンス
13.11 SDO_GEOR_UTL.enableReport
形式
SDO_GEOR_UTL.enableReport;
説明
現在のセッションでGeoRaster操作のステータス・レポートを有効にします。
パラメータ
なし。
使用上のノート
このプロシージャは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。
例
次の例では、現在のセッションでGeoRaster操作のステータス・レポートを有効にします。
EXECUTE SDO_GEOR_UTL.enableReport;
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.12 SDO_GEOR_UTL.fillEmptyBlocks
形式
SDO_GEOR_UTL.fillEmptyBlocks( georaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
説明
すべての空のブロックに、指定した背景値を入力します。
パラメータ
使用上のノート
georaster
がNULLの場合、このプロシージャは処理を実行しません。
georaster
にピラミッド・データが存在する場合、メタデータに格納されているピラミッド情報に基づいて、ピラミッドが再生成されます。
このプロシージャは、指定した背景値を持つブロックを空のブロックに変更するSDO_GEOR_UTL.emptyBlocksとは対照的です。
例
次の例では、背景値(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パッケージのリファレンス
13.13 SDO_GEOR_UTL.generateColorRamp
形式
SDO_GEOR_UTL.generateColorRamp( colorSeeds IN SDO_GEOR_COLORMAP, rampSteps IN SDO_NUMBER_ARRAY, cellValueType IN VARCHAR2 DEFAULT 'integer', interpoParam IN VARCHAR2 DEFAULT 'method=linear' ) RETURN SDO_GEOR_COLORMAP;
説明
シードとして入力された赤、緑、青およびアルファの値を内挿して、色ランプ(グラデーション)とともにSDO_GEOR_COLORMAPオブジェクトを生成します。
パラメータ
- colorSeeds
-
内挿の開始値と終了値として使用するシード値を含むSDO_GEOR_COLORMAPオブジェクト。それぞれにピクセル値およびRGBA値のセットを含む少なくとも2つのグループを含む必要があります。(RGBA = Red、Green、Blue、Alpha)
- rampSteps
-
各項目が色ランプの各セクションに生成される内挿された値の数を示す配列。各セクションに生成される値の数を示す少なくとも1つの整数値を含む必要があります。
- cellValueType
-
整数値または実値としてセル値を作成するかどうかを示す文字列。このパラメータの可能な値は、
integer
(デフォルト)またはreal
です。 - interpoParam
-
内挿メソッドを指定する文字列。可能な値は、
method=linear
(デフォルト)およびmethod=cosine
です。
使用上のノート
このファンクションは、SDO_GEOR_COLORMAP型のオブジェクトを戻します(「SDO_GEOR_COLORMAPオブジェクト型」を参照)。
色ランプは、各セクションに異なる長さの複数の異なるセクションが含まれる可能性があります。colorSeeds
で3つのRGBA値を指定すると、ファンクションは同じ色ランプの2つのセクションを生成します。各セクションの色レベルの数は、rampSteps
配列によって制御されます。生成されたカラーマップの色の合計数は、rampSteps配列の値と入力カラーマップ・シードの色数の合計です。個別のセクションを生成するには、colorSeeds
パラメータの新しい項目およびrampSteps
の新しい項目を挿入します。(rampSteps
の値0は、内挿された値をそのセクションで生成する必要がないことを示します。)
例
次の例では、緑から赤に線形に内挿された256色を含む色ランプを生成して適用します。(IDおよびRASTERという名前の列を含むRAMP_TESTという名前の表を仮定します。)
DECLARE gr sdo_georaster; cmp sdo_geor_colormap; BEGIN select raster into gr from ramp_test where id = 1 for update; cmp := sdo_geor_utl.generateColorRamp( colorSeeds => sdo_geor_colormap( sdo_number_array( 1,1000), sdo_number_array( 0, 255), sdo_number_array( 255, 0), sdo_number_array( 0, 0), sdo_number_array( 255, 255)), rampSteps => sdo_number_array( 254 ), cellValueType => 'integer', interpoParam => 'method=linear' ); sdo_geor.setColorMap( gr, 0, cmp ); update ramp_test set raster = gr where id = 1; commit; END;
次の例では、緑から青および青から赤に影付き部分を変更する色ランプを生成して適用します。(IDおよびRASTERという名前の列を含むRAMP_TESTという名前の表を仮定します。)2つのセクションは、colorSeeds
パラメータ値の2番目の項目の青色を共有します。
DECLARE gr sdo_georaster; cmp sdo_geor_colormap; BEGIN select raster into gr from ramp_test where id = 1 for update; cmp := sdo_geor_utl.generateColorRamp( colorSeeds => sdo_geor_colormap( sdo_number_array( 1, 500, 1000), sdo_number_array( 0, 0, 255), sdo_number_array( 255, 0, 0), sdo_number_array( 0, 255, 0), sdo_number_array( 255, 255, 255)), rampSteps => sdo_number_array( 126, 127 ), cellValueType => 'integer', interpoParam => 'method=linear' ); sdo_geor.setColorMap( gr, 0, cmp ); update ramp_test set raster = gr where id = 1; commit; END;
次の例では、緑から青に変更するセクションおよび白から赤に変更するセクションとともに256項目の色ランプを生成します。(IDおよびRASTERという名前の列を含むRAMP_TESTという名前の表を仮定します。)
DECLARE gr sdo_georaster; cmp sdo_geor_colormap; BEGIN select raster into gr from ramp_test where id = 1 for update; cmp := sdo_geor_utl.generateColorRamp( colorSeeds => sdo_geor_colormap( sdo_number_array( 1, 500, 500, 1000), sdo_number_array( 0, 0, 255, 255), sdo_number_array( 255, 0, 255, 0), sdo_number_array( 0, 255, 255, 0), sdo_number_array( 255, 255, 255, 255)), rampSteps => sdo_number_array( 126, 0, 126 ), cellValueType => 'integer', interpoParam => 'method=linear' ); sdo_geor.setColorMap( gr, 0, cmp ); update ramp_test set raster = gr where id = 1; commit; END;
rampSteps
配列(rampSteps => sdo_number_array( 126, 0, 126 );
)の値0は、内挿された値が2番目のセクションの生成に必要ないことを示します。
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.14 SDO_GEOR_UTL.generateGrayRamp
形式
SDO_GEOR_UTL.generateGrayRamp( graySeeds IN SDO_GEOR_GRAYSCALE, rampSteps IN SDO_NUMBER_ARRAY, cellValueType IN VARCHAR2 DEFAULT 'integer', interpoParam IN VARCHAR2 DEFAULT 'method=linear' ) RETURN SDO_GEOR_GRAYSCALE;
説明
シードとして入力された値を内挿して、グレースケール・ランプ(グラデーション)とともにSDO_GEOR_GRAYSCALEオブジェクトを生成します。
パラメータ
- graySeeds
-
内挿の開始値と終了値として使用するシード値を含むSDO_GEOR_GRAYSCALEオブジェクト。少なくとも2つのピクセル値/グレー値のペアを含む必要があります。
- rampSteps
-
各項目がグレー・ランプの各セクションに生成される内挿された値の数を示す配列。グレー・ランプの各セクションに生成される値の数を示す少なくとも1つの整数値を含む必要があります。
- cellValueType
-
整数値または実値としてセル値を作成するかどうかを示す文字列。このパラメータの可能な値は、
integer
(デフォルト)またはreal
です。 - interpoParam
-
内挿メソッドを指定する文字列。可能な値は、
method=linear
(デフォルト)およびmethod=cosine
です。
使用上のノート
このファンクションは、SDO_GEOR_GRAYSCALE型のオブジェクトを戻します(「SDO_GEOR_GRAYSCALEオブジェクト型」を参照)。
グレー・ランプは、各セクションに異なる長さの複数の異なるセクションが含まれる可能性があります。graySeeds
で3つの値を指定すると、ファンクションは同じグレー・ランプの2つのセクションを生成します。各セクションのグレー・レベルの数は、rampSteps
配列によって制御されます。生成されたグレースケールの合計数は、rampSteps
配列の値とgraySeeds
の値の数の合計です。個別のセクションを生成するには、graySeeds
パラメータの新しい項目およびrampSteps
の新しい項目を挿入します。(rampSteps
の値0は、内挿された値をそのセクションで生成する必要がないことを示します。)
例
次の例では、0から255に線形に内挿された102個のグレースケールを含むグレー・ランプを生成して適用します。(IDおよびRASTERという名前の列を含むRAMP_TESTという名前の表を仮定します。)
DECLARE gr sdo_georaster; gs sdo_geor_grayscale; BEGIN select raster into gr from ramp_test where id = 3 for update; gs := sdo_geor_utl.generateGrayRamp( graySeeds => sdo_geor_grayscale( sdo_number_array( 0, 1000), sdo_number_array( 0, 255)), rampSteps => sdo_number_array( 100 ), cellValueType => 'integer', interpoParam => 'method=linear' ); sdo_geor.setGrayScale( gr, 0, gs ); update ramp_test set raster = gr where id = 3; commit; END;
次の例では、-100から0の範囲の100個の内挿された値および0から1000の範囲の100個の内挿された値を持つ203個のグレースケール値のグレーランプを生成して適用します。(IDおよびRASTERという名前の列を含むRAMP_TESTという名前の表を仮定します。)
DECLARE gr sdo_georaster; gs sdo_geor_grayscale; BEGIN select raster into gr from ramp_test where id = 3 for update; gs := sdo_geor_utl.generateGrayRamp( graySeeds => sdo_geor_grayscale( sdo_number_array( -100, 0, 1000), sdo_number_array( 255, 0, 255)), rampSteps => sdo_number_array( 100, 100 ), cellValueType => 'real', interpoParam => 'method=linear' ); sdo_geor.setGrayScale( gr, 0, gs ); update ramp_test set raster = gr where id = 3; commit; END;
次の例では、-100から0の範囲の100個の内挿された値および0から1000の範囲の100個の内挿された値の204個のグレースケール値を持つグレーランプを生成して適用します。(IDおよびRASTERという名前の列を含むRAMP_TESTという名前の表を仮定します。)
DECLARE gr sdo_georaster; gs sdo_geor_grayscale; BEGIN select raster into gr from ramp_test where id = 3 for update; gs := sdo_geor_utl.generateGrayRamp( graySeeds => sdo_geor_grayscale( sdo_number_array( -100, 0, 100, 1000), sdo_number_array( 0, 10, 100, 200)), rampSteps => sdo_number_array( 100, 0, 100 ), cellValueType => 'real', interpoParam => 'method=linear' ); sdo_geor.setGrayScale( gr, 0, gs ); update ramp_test set raster = gr where id = 3; commit; END;
rampSteps
配列(rampSteps => sdo_number_array( 100, 0, 100 );
)の値0は、内挿された値が2番目のセクションの生成に必要ないことを示します。
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.15 SDO_GEOR_UTL.getAllStatusReport
形式
SDO_GEOR_UTL.getAllStatusReport() RETURN SDO_STRING2_ARRAYSET;
説明
ステータス表に含まれるすべてのクライアントのすべての操作に対応する現在のステータスを戻します。
パラメータ
なし。
使用上のノート
このファンクションは、ステータス情報のカンマ区切りリストを含む配列(<client_id>, <sequence_id>, <timestamp>, <operation name>, <RDT table name>, <Raster ID>, <progress>, <description>)を戻します。データ型はSDO_STRING2_ARRAYSETで、VARRAY(2147483647) OF SDO_STRING2_ARRAY
として定義されます。
ステータス表が作成されていない場合、ファンクションは'The report table does not exist'
を戻します。
このファンクションは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。
例
次の例では、すべてのクライアントのすべての操作に対応する現在のステータスを戻します。2つのSDO_STRING2_ARRAYオブジェクトが戻されます。
SELECT * from the (SELECT SDO_GEOR_UTL.getAllStatusReport FROM DUAL); COLUMN_VALUE ------------------------------------------------------------------------------- SDO_STRING2_ARRAY('Client:23', 'Sequence:1', '24-SEP-12 11.10.42.030169 AM', 'Mosaic', 'RDT:LANDSAT_MOSAIC_RDT', 'RID:1', '100% complete', NULL) SDO_STRING2_ARRAY('Client:1', 'Sequence:0', '24-SEP-12 11.10.42.379631 AM', 'GeneratePyramid', 'RDT:LANDSAT_MOSAIC_RDT', 'RID:1', '100% complete', 'operation completed') 2 rows selected.
次の例でも、すべてのクライアントのすべての操作に対応する現在のステータスを戻します。この場合、前述の例とは異なるSELECT文の形式を使用して、2つのSDO_STRING2_ARRAYオブジェクトを含む1つのSDO_STRING2_ARRAYSETオブジェクトを戻します。
set linesize 80 SELECT SDO_GEOR_UTL.getAllStatusReport FROM DUAL; SDO_GEOR_UTL.GETALLSTATUSREPORT() -------------------------------------------------------------------------------- SDO_STRING2_ARRAYSET(SDO_STRING2_ARRAY('Client:27', 'Sequence:1', '26-SEP-12 11. 31.03.473087 AM', 'Mosaic', 'RDT:LANDSAT_MOSAIC_RDT', 'RID:1', '100% complete', NULL), SDO_STRING2_ARRAY('Client:-1', 'Sequence:0', '26-SEP-12 11.31.03.962948 A M', 'GeneratePyramid', 'RDT:LANDSAT_MOSAIC_RDT', 'RID:1', '100% complete', 'oper ation completed')) 1 row selected.
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.16 SDO_GEOR_UTL.getMaxMemSize
形式
SDO_GEOR_UTL.getMaxMemSize RETURN NUMBER;
説明
GeoRasterバッファ・システムを使用してメモリーを管理するために使用できるメモリーの上限サイズを戻します。
パラメータ
(なし。)
使用上のノート
GeoRasterバッファリングのメモリーの管理は、関連パラメータの説明を含む概念および使用情報を示します。
例
次の例では、GeoRasterバッファ・システムを使用してメモリーを管理するために使用できるメモリーの現在の上限サイズを戻します。
SELECT sdo_geor_utl.getMaxMemSize FROM DUAL; GETMAXMEMSIZE ------------- 16777216
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.17 SDO_GEOR_UTL.getReadBlockMemSize
形式
SDO_GEOR_UTL.getReadBlockMemSize RETURN NUMBER;
説明
読取り専用操作のGeoRaster内部データ・ブロックのバイトのサイズを戻します。
パラメータ
(なし。)
使用上のノート
GeoRasterバッファリングのメモリーの管理は、関連パラメータの説明を含む概念および使用情報を示します。
例
次の例では、読取り専用操作のGeoRaster内部データ・ブロックのバイトの現在のサイズを戻します。
SELECT sdo_geor_utl.getReadBlockMemSize FROM DUAL; GETREADBLOCKMEMSIZE ------------------- 32768
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.18 SDO_GEOR_UTL.getProgress
形式
SDO_GEOR_UTL.getProgress( client_id IN NUMBER, seq_id IN NUMBER DEFAULT 0 ) RETURN NUMBER;
説明
指定したクライアント(セッション)の操作および指定した操作(オプション)の進行状況を戻します。戻される値は、完了の割合を示す0から1の間の浮動小数点数です。
使用上のノート
このファンクションは、client_id
およびseq_id
で識別される操作の最新の推定進行状況に相当する数値を戻します。必ず適切なclient_id
値とseq_id
値を使用してください。
ステータス表に特定のclient_id
およびseq_id
を持つ指定した操作のレコードが存在しない場合、NULLが戻されます。
ステータス表が作成されていない場合、ファンクションは'The report table does not exist'
を戻します。
このファンクションは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。
例
次の例では、クライアントIDが5で、操作順序IDが3の操作の進行状況を戻します。
SELECT sdo_geor_utl.getgetProgress(5, 3) progress FROM dual; PROGRESS -------- .305
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.19 SDO_GEOR_UTL.getStatusReport
形式
SDO_GEOR_UTL.getStatusReport( client_id IN NUMBER, seq_id IN NUMBER DEFAULT 0 ) RETURN SDO_STRING2_ARRAY;
説明
指定したクライアント(セッション)のステータス表に含まれる操作および指定した操作(オプション)の現在のステータスを戻します。
使用上のノート
このファンクションは、指定したセッション(client_id
)の現在のステータスを、ステータス情報のカンマ区切りリストの配列(<client_id>, <sequence_id>, <timestamp>, <operation name>, <RDT table name>, <Raster ID>, <progress>, <description>)で戻します。データ型はSDO_STRING2_ARRAYで、VARRAY(2147483647) OF VARCHAR2(4096)
として定義されます。
ステータス表が作成されていない場合、ファンクションは'The report table does not exist'
を戻します。
このファンクションは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。
例
次の例では、クライアントIDが5で、操作順序IDが3の操作のステータスを戻します。
SELECT sdo_geor_utl.getStatusReport(5, 3) FROM dual; SDO_GEOR_UTL.GETSTATUSREPORT(5,3) -------------------------------------------------------------------------------- SDO_STRING2_ARRAY('24-SEP-12 11.10.43.477804 AM', 'Mosaic', 'RDT:LANDSAT_MOSAIC_ RDT', 'RID:2', '100% complete', 'operation completed')
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.20 SDO_GEOR_UTL.getWriteBlockMemSize
形式
SDO_GEOR_UTL.getWriteBlockMemSize RETURN NUMBER;
説明
読取り/書込み操作のGeoRaster内部データ・ブロックのバイトのサイズを戻します。
パラメータ
(なし。)
使用上のノート
GeoRasterバッファリングのメモリーの管理は、関連パラメータの説明を含む概念および使用情報を示します。
例
次の例では、読取り/書込み操作のGeoRaster内部データ・ブロックのバイトの現在のサイズを戻します。
SELECT sdo_geor_utl.getWriteBlockMemSize FROM DUAL; GETWRITEBLOCKMEMSIZE -------------------- 65536
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.21 SDO_GEOR_UTL.isReporting
形式
SDO_GEOR_UTL.isReporting() RETURN NUMBER;
説明
いずれかのセッションのステータス・レポートが有効になっているかどうかをチェックします。
パラメータ
なし。
使用上のノート
このファンクションは、1つ以上のセッションのステータス・レポートが有効になっている場合は1を、どのセッションもステータス・レポートが有効になっていない場合は0を戻します。
このプロシージャは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。
例
次の例では、いずれかのセッションのステータス・レポートが有効になっているかどうかをチェックします。
SELECT SDO_GEOR_UTL.isReporting FROM DUAL; ISREPORTING ----------- 1
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.22 SDO_GEOR_UTL.makeRDTNamesUnique
形式
SDO_GEOR_UTL.makeRDTNamesUnique;
説明
名前が一意でない既存の登録済ラスター・データ表の名前を変更し、データベース内ですべてのラスター・データ表の名前が一意になるようにし、新しい名前が反映されるよう、GeoRasterシステム・データおよび影響を受けるGeoRasterのすべてのオブジェクトを更新します。
パラメータ
なし。
使用上のノート
1つ以上の登録済ラスター・データ表に(異なるスキーマで)同じ名前が定義されている場合は、このプロシージャか、SDO_GEOR_UTL.renameRDTプロシージャ、または両方を使用して重複を解消できます。
DBAロールでデータベースに接続する際に、このプロシージャを実行します。
このプロシージャはトランザクションではないため、結果はロールバックできません。
例
次の例では、名前が一意でない既存の登録済ラスター・データ表の名前を自動的に変更し、データベース内ですべての登録済ラスター・データ表の名前が一意になるようにし、新しい名前が反映されるよう、GeoRasterシステム・データおよび影響を受けるGeoRasterのすべてのオブジェクトを更新します。
EXECUTE sdo_geor_utl.makeRDTNamesUnique;
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.23 SDO_GEOR_UTL.recreateDMLTriggers
形式
SDO_GEOR_UTL.recreateDMLTriggers;
説明
現在のユーザーがアクセス権を持っているすべてのGeoRaster列に対して、必要な標準のGeoRasterデータ操作言語(DML)トリガーを再作成し、トリガーの起動時に適切な操作が実行されるようにします。
パラメータ
(なし)
使用上のノート
「GeoRaster DMLトリガー」に示すとおり、GeoRasterの内部表とデータ構造の一貫性および整合性を保証するために、ユーザーがGeoRaster表(1つ以上のGeoRaster列を含む表)を作成すると、各GeoRaster列に対応する一意のDMLトリガーがGeoRasterにより自動的に作成されます。この場合、これらの追加されたGeoRaster列に対してSDO_GEOR_UTL.createDMLTriggerプロシージャをコールするか、SDO_GEOR_UTL.recreateDMLTriggersプロシージャをコールしてすべてのGeoRaster列に対してDMLトリガーを再作成できます。
通常はこのプロシージャをコールする必要はありませんが、データベース・アップグレードやデータ移行などの一部の使用例では、DMLトリガーを再作成する場合に役立ちます。
例
次の例では、標準のGeoRaster DMLトリガーを再作成します。
EXECUTE sdo_geor_utl.recreateDMLTriggers;
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.24 SDO_GEOR_UTL.renameRDT
形式
SDO_GEOR_UTL.renameRDT( oldRDTs VARCHAR2, newRDTs VARCHAR2 DEFAULT NULL);
説明
現行ユーザーが所有する1つ以上の既存の登録済ラスター・データ表の名前を変更し、その新しい名前が反映されるように、GeoRasterシステム・データおよび影響を受けるGeoRasterのすべてのオブジェクトを更新します。
パラメータ
使用上のノート
別のユーザーが所有する1つ以上の登録済ラスター・データ表に同じ名前が定義されている場合は、このプロシージャか、SDO_GEOR_UTL.makeRDTNamesUniqueプロシージャ、または両方を使用して重複を解消できます。
このプロシージャを使用する前に、ラスター・データ表の所有者としてデータベースに接続する必要があります。このプロシージャでは、他のユーザーが所有しているラスター・データ表の名前を変更することはできません。
oldRDTs
のいずれの表もGeoRasterシステム・データに含まれていない場合、その表は無視されます。
newRDTs
のいずれかの表がGeoRasterシステム・データの名前と競合する場合、または現行ユーザーが所有している他のオブジェクトの名前と競合する場合は、例外が発生します。
このプロシージャはトランザクションではないため、結果はロールバックできません。
例
次の例では、登録済ラスター・データ表RDT_1およびRDT_2の名前を、それぞれST_RDT_1およびST_RDT_2に変更します。
EXECUTE sdo_geor_utl.renameRDT('RDT_1,RDT_2','ST_RDT_1,ST_RDT_2');
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.25 SDO_GEOR_UTL.setClientID
形式
SDO_GEOR_UTL.setClientID( client_id IN NUMBER);
説明
セッションのクライアントIDを設定します。
使用上のノート
このプロシージャを使用して、同じユーザーによる異なるセッションを識別できます。クライアントIDには、データベース・セッションIDか、中間層環境のクライアントIDを指定できます。
このプロシージャがコールされない場合、ステータス・レポートのクライアントIDは、デフォルトでデータベース・セッションIDに設定されます。
このプロシージャは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。
例
次の例では、クライアントIDを1に設定します。
EXECUTE SDO_GEOR_UTL.setClientID(1);
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.26 SDO_GEOR_UTL.setMaxMemSize
形式
SDO_GEOR_UTL.setMaxMemSize( maxMemSize IN NUMBER DEFAULT 16777216);
説明
GeoRasterバッファ・システムを使用してメモリーを管理するために使用できるメモリーの上限サイズを設定します。
使用上のノート
GeoRasterバッファリングのメモリーの管理は、関連パラメータの説明を含む概念および使用情報を示します。
例
次の例では、maxMemSize
値を1億バイト(約100MB)に設定します。
EXECUTE sdo_geor_utl.setMaxMemSize(100000000);
次の例では、maxMemSize
値をデフォルトのサイズ(16MB)に設定します。
EXECUTE sdo_geor_utl.setMaxMemSize();
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.27 SDO_GEOR_UTL.setReadBlockMemSize
形式
SDO_GEOR_UTL.setReadBlockMemSize( memBlockSize IN NUMBER DEFAULT 32768);
説明
読取り専用操作のGeoRaster内部データ・ブロックのサイズを設定します。
使用上のノート
GeoRasterバッファリングのメモリーの管理は、関連パラメータの説明を含む概念および使用情報を示します。
例
次の例では、memBlockSize
値を100万バイト(約1MB)に設定します。
EXECUTE sdo_geor_utl.setReadBlockMemSize(1000000);
次の例では、memBlockSize
値をデフォルト値(32KB)に設定します。
EXECUTE sdo_geor_utl.setReadBlockMemSize();
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.28 SDO_GEOR_UTL.setSeqID
形式
SDO_GEOR_UTL.setSeqID( seq_id IN NUMBER);
説明
セッションの順序IDを設定します。
使用上のノート
このプロシージャを使用して、同じセッションの異なる操作を識別できます。
このプロシージャがコールされない場合、ステータス・レポートの順序IDは、デフォルトで0に設定されます。
このプロシージャは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。
例
次の例では、順序IDを1に設定します。
EXECUTE SDO_GEOR_UTL.setSeqID(1);
親トピック: SDO_GEOR_UTLパッケージのリファレンス
13.29 SDO_GEOR_UTL.setWriteBlockMemSize
形式
SDO_GEOR_UTL.setWriteBlockMemSize( memBlockSize IN NUMBER);
説明
読取り/書込み操作のGeoRaster内部データ・ブロックのサイズを設定します。
使用上のノート
GeoRasterバッファリングのメモリーの管理は、関連パラメータの説明を含む概念および使用情報を示します。
例
次の例では、memBlockSize
値を100万バイト(約1MB)に設定します。
EXECUTE sdo_geor_utl.setWriteBlockMemSize(1000000);
次の例では、memBlockSize
値をデフォルト値(64KB)に設定します。
EXECUTE sdo_geor_utl.setWriteBlockMemSize();
親トピック: SDO_GEOR_UTLパッケージのリファレンス