プライマリ・コンテンツに移動
Oracle® Spatial and Graph GeoRaster開発者ガイド
12cリリース1 (12.1)
B72468-06
目次へ移動
目次
索引へ移動
索引

前
次

10 SDO_GEOR_UTLパッケージのリファレンス

SDO_GEOR_UTLパッケージには、GeoRasterに関連するユーティリティ操作を行うためのサブプログラム(ファンクションおよびプロシージャ)が含まれています。この章では、そのサブプログラムのリファレンス情報を、例を使用して説明します。

10.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オブジェクト記憶域の埋込みスペースが少なくなります。

パラメータ

dimensionSize

GeoRasterオブジェクトの次元サイズ配列。

blockSize

ブロック・サイズ配列。この配列には、ユーザー指定のブロック・サイズ値が格納され、プロシージャが調整された最適なブロック・サイズ値を出力します。

pyramidLevel

最大ピラミッド・レベル。デフォルト値は0(ゼロ)です。

使用上の注意

このプロシージャでは、適切なブロック・サイズ値(最適ではない場合があります)を提供して自動的にそれらを調整し、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

10.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

10.3 SDO_GEOR_UTL.calcRasterStorageSize

構文

SDO_GEOR_UTL.calcRasterStorageSize(
     geor  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

GeoRasterオブジェクトのすべてのラスター・ブロックの実際の長さ(バイト単位)を戻します。

パラメータ

geor

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 

10.4 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;

10.5 SDO_GEOR_UTL.createDMLTrigger

構文

SDO_GEOR_UTL.createDMLTrigger(
     tableName   VARCHAR2, 
     columnName  VARCHAR2);

説明

GeoRaster表のGeoRaster列に、必要な標準のGeoRasterデータ操作言語(DML)トリガーを作成します。これによって、そのDMLに関連付けられたトリガーが起動された際に、適切な操作が実行されます。

パラメータ

tableName

GeoRaster表(GeoRasterオブジェクト列が1列以上存在する行が含まれる表)の名前を指定します。

columnName

GeoRaster表内のSDO_GEORASTER型の列の名前を指定します。

使用上の注意

注意:

より便利なかわりの方法は、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');

10.6 SDO_GEOR_UTL.createReportTable

構文

SDO_GEOR_UTL.createReportTable;

説明

GeoRaster操作のステータス情報を格納する表を作成します。

パラメータ

なし。

使用上の注意

このプロシージャは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。

次の例では、GeoRaster操作のステータス情報を格納する表を作成します。

EXECUTE SDO_GEOR_UTL.createReportTable;

10.7 SDO_GEOR_UTL.disableReport

構文

SDO_GEOR_UTL.disableReport;

説明

現在のセッションでGeoRaster操作のステータス・レポートを無効にします。

パラメータ

なし。

使用上の注意

このプロシージャは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。

次の例では、現在のセッションでGeoRaster操作のステータス・レポートを無効にします。

EXECUTE SDO_GEOR_UTL.disableReport;

10.8 SDO_GEOR_UTL.dropReportTable

構文

SDO_GEOR_UTL.dropReportTable;

説明

GeoRaster操作のステータス情報を格納する表を削除します。

パラメータ

なし。

使用上の注意

このプロシージャは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。

次の例では、GeoRaster操作のステータス情報を格納する表を削除します。

EXECUTE SDO_GEOR_UTL.dropReportTable;

10.9 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;
/

10.10 SDO_GEOR_UTL.enableReport

構文

SDO_GEOR_UTL.enableReport;

説明

現在のセッションでGeoRaster操作のステータス・レポートを有効にします。

パラメータ

なし。

使用上の注意

このプロシージャは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。

次の例では、現在のセッションでGeoRaster操作のステータス・レポートを有効にします。

EXECUTE SDO_GEOR_UTL.enableReport;

10.11 SDO_GEOR_UTL.fillEmptyBlocks

構文

SDO_GEOR_UTL.fillEmptyBlocks(
     georaster IN OUT SDO_GEORASTER, 
     bgValues  IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

すべての空のブロックに、指定した背景値を入力します。

パラメータ

georaster

空のブロックに埋め込むGeoRasterオブジェクトを指定します。

bgValues

空のラスター・ブロックに入力する背景値を指定します。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。このパラメータがNULLの場合、bgValuesは0(ゼロ)になります。

使用上の注意

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;
/

10.12 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.

10.13 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値を使用してください。

ステータス表に特定の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

10.14 SDO_GEOR_UTL.getStatusReport

構文

SDO_GEOR_UTL.getStatusReport(
     client_id IN NUMBER, 
     seq_id    IN NUMBER DEFAULT 0 
     ) RETURN SDO_STRING2_ARRAY;

説明

指定したクライアント(セッション)のステータス表に含まれる操作および指定した操作(オプション)の現在のステータスを戻します。

パラメータ

client_id

セッションを識別する一意の数値を指定します。

seq_id

ステータス情報を戻す操作を識別する(指定したセッション内の)一意の数値を指定します。

使用上の注意

このファンクションは、指定したセッション(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')

10.15 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

10.16 SDO_GEOR_UTL.makeRDTNamesUnique

構文

SDO_GEOR_UTL.makeRDTNamesUnique;

説明

名前が一意でない既存の登録済ラスター・データ表の名前を変更し、データベース内ですべてのラスター・データ表の名前が一意になるようにし、新しい名前が反映されるよう、GeoRasterシステム・データおよび影響を受けるGeoRasterのすべてのオブジェクトを更新します。

パラメータ

なし。

使用上の注意

1つ以上の登録済ラスター・データ表に(異なるスキーマで)同じ名前が定義されている場合は、このプロシージャか、SDO_GEOR_UTL.renameRDTプロシージャ、または両方を使用して重複を解消できます。

DBAロールでデータベースに接続する際に、このプロシージャを実行します。

このプロシージャはトランザクションではないため、結果はロールバックできません。

次の例では、名前が一意でない既存の登録済ラスター・データ表の名前を自動的に変更し、データベース内ですべての登録済ラスター・データ表の名前が一意になるようにし、新しい名前が反映されるよう、GeoRasterシステム・データおよび影響を受けるGeoRasterのすべてのオブジェクトを更新します。

EXECUTE sdo_geor_utl.makeRDTNamesUnique;

10.17 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;

10.18 SDO_GEOR_UTL.renameRDT

構文

SDO_GEOR_UTL.renameRDT(
     oldRDTs  VARCHAR2, 
     newRDTs  VARCHAR2 DEFAULT NULL);

説明

現行ユーザーが所有する1つ以上の既存の登録済ラスター・データ表の名前を変更し、その新しい名前が反映されるように、GeoRasterシステム・データおよび影響を受けるGeoRasterのすべてのオブジェクトを更新します。

パラメータ

oldRDTs

名前を変更する登録済ラスター・データ表の名前を指定します。複数の表を指定する場合は、カンマ区切りリストを使用します。

newRDTs

oldRDTsで指定されたラスター・データ表に割り当てる新しい名前を指定します。複数の表を指定する場合は、カンマ区切りリストを使用します。指定する順序は、oldRDTsで指定した名前と正確に対応するようにします。このパラメータにNULLを指定すると、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');

10.19 SDO_GEOR_UTL.setClientID

構文

SDO_GEOR_UTL.setClientID(
     client_id  IN NUMBER);

説明

セッションのクライアントIDを設定します。

パラメータ

client_id

セッションを識別する一意のID値を指定します。

使用上の注意

このプロシージャを使用して、同じユーザーによる異なるセッションを識別できます。クライアントIDには、データベース・セッションIDか、中間層環境のクライアントIDを指定できます。

このプロシージャがコールされない場合、ステータス・レポートのクライアントIDは、デフォルトでデータベース・セッションIDに設定されます。

このプロシージャは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。

次の例では、クライアントIDを1に設定します。

EXECUTE SDO_GEOR_UTL.setClientID(1);

10.20 SDO_GEOR_UTL.setSeqID

構文

SDO_GEOR_UTL.setSeqID(
     seq_id  IN NUMBER);

説明

セッションの順序IDを設定します。

パラメータ

seq_id

セッションの操作を識別する一意のID値を指定します。

使用上の注意

このプロシージャを使用して、同じセッションの異なる操作を識別できます。

このプロシージャがコールされない場合、ステータス・レポートの順序IDは、デフォルトで0に設定されます。

このプロシージャは、GeoRaster操作の進行状況の監視およびレポートに使用できるサブプログラムの1つです。この機能の概要については、「GeoRasterでの操作の進行状況のレポート」を参照してください。

次の例では、順序IDを1に設定します。

EXECUTE SDO_GEOR_UTL.setSeqID(1);